diff --git a/dev/android/sweetblue/LICENSE b/dev/android/sweetblue/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..6b156fe1db9c5cd21ca1c68b7025bae40d0c5764 --- /dev/null +++ b/dev/android/sweetblue/LICENSE @@ -0,0 +1,675 @@ +GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<http://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<http://www.gnu.org/philosophy/why-not-lgpl.html>. + diff --git a/dev/android/sweetblue/README.md b/dev/android/sweetblue/README.md new file mode 100644 index 0000000000000000000000000000000000000000..62df8ef1e7f16fc0a40d2e7cb07d06ce8b974303 --- /dev/null +++ b/dev/android/sweetblue/README.md @@ -0,0 +1,240 @@ +<b>|</b> <a href='#why'>Why?</a> +<b>|</b> <a href='#features'>Features</a> +<b>|</b> <a href='#getting-started'>Getting Started</a> +<b>|</b> <a href='#licensing'>Licensing</a> +<b>|</b> <a href="https://github.com/iDevicesInc/SweetBlue/wiki">Wiki</a> +<b>|</b> +<a href="https://travis-ci.org/iDevicesInc/SweetBlue"> + <img align="right" src="https://img.shields.io/badge/version-2.51.58-blue.svg" /> + <img align="right" src="https://travis-ci.org/iDevicesInc/SweetBlue.svg?branch=master"/> +</a> +<p align="center"> + <br> + <a href="https://idevicesinc.com/sweetblue"> + <img src="https://github.com/iDevicesInc/SweetBlue/blob/master/scripts/assets/sweetblue_logo.png" /> + </a> +</p> +Why? +==== + +Android's BLE stack has some...issues... + +* https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues +* https://code.google.com/p/android/issues/detail?id=58381 +* http://androidcommunity.com/nike-blames-ble-for-their-shunning-of-android-20131202/ +* http://stackoverflow.com/questions/17870189/android-4-3-bluetooth-low-energy-unstable + +SweetBlue is a blanket abstraction that shoves all that troublesome behavior behind a clean interface and gracefully degrades when the underlying stack becomes too unstable for even it to handle. + +It’s built on the hard-earned experience of several commercial BLE projects and provides so many transparent workarounds to issues both annoying and fatal that it’s frankly impossible to imagine writing an app without it. It also supports many higher-level constructs, things like atomic transactions for coordinating authentication handshakes and firmware updates, flexible scanning configurations, read polling, transparent retries for transient failure conditions, and, well, the list goes on. The API is dead simple, with usage dependence on a few plain old Java objects and link dependence on standard Android classes. It offers conveniences for debugging and analytics and error handling that will save you months of work - last mile stuff you didn't even know you had to worry about. + +Features +======== + +* Full-coverage API documentation: http://idevicesinc.com/sweetblue/docs/api +* Sample applications. +* Battle-tested in commercial apps. +* Plain old Java with zero API-level dependencies. +* Rich, queryable state tracking that makes UI integration a breeze. +* Automatic service discovery. +* Full support for server role including advertising. +* Built-in time series database for easily storing and querying historical data from past reads and notifications. +* Easy RSSI tracking with built-in polling and caching, including distance and friendly signal strength calculations. +* Highly configurable scanning with min/max time limits, periodic bursts, advanced filtering, and more. +* Continuous scanning mode that saves battery and defers to more important operations by stopping and starting as needed under the hood. +* Atomic transactions for easily coordinating authentication handshakes, initialization, and firmware updates. +* Automatic striping of characteristic writes greater than [MTU](http://en.wikipedia.org/wiki/Maximum_transmission_unit) size of 20 bytes. (Coming in a future version). +* Undiscovery based on last time seen. +* Clean leakage of underlying native stack objects in case of emergency. +* Wraps Android API level checks that gate certain methods. +* Verbose [logging](https://github.com/iDevicesInc/SweetBlue/wiki/Logging) that outputs human-readable thread IDs, UUIDs, status codes and states instead of alphabet soup. +* Wrangles a big bowl of thread spaghetti behind a nice asynchronous API - make a call on main thread, get a callback on main thread a short time later. +* Internal priority job queue that ensures serialization of all operations so native stack doesn’t get overloaded and important stuff gets done first. +* Optimal coordination of the BLE stack when connected to multiple devices. +* Detection and correction of dozens of BLE failure conditions. +* Numerous manufacturer-specific workarounds and hacks all hidden from you. +* Built-in polling for read characteristics with optional change-tracking to simulate notifications. +* Transparent retries for transient failure conditions related to connecting, getting services, and scanning. +* Comprehensive callback system with clear enumerated reasons when something goes wrong like connection or read/write failures. +* Distills dozens of lines of boilerplate, booby-trapped, native API usages into single method calls. +* Transparently falls back to Bluetooth Classic for certain BLE failure conditions. +* On-the-fly-configurable reconnection loops started automatically when random disconnects occur, e.g. from going out of range. +* Retention and automatic reconnection of devices after BLE off->on cycle or even complete app reboot. +* One convenient method to completely unwind and reset the Bluetooth stack. +* Detection and reporting of BLE failure conditions that user should take action on, such as restarting the Bluetooth stack or even the entire phone. +* Runtime analytics for tracking average operation times, total elapsed times, and time estimates for long-running operations like firmware updates. + + +Getting Started +=============== +1. If using **Android Studio** or **Gradle**... + 1. [Download](http://idevicesinc.com/sweetblue/#tryit) the latest release to a subfolder of your project such as `MyApp/src/main/lib/`. This ZIP contains several samples, precompiled JARS, and API docs and is preferable to downloading from GitHub, which only contains the raw source. + 2. Open the app module's `build.gradle` file. + 3. If building with source, your gradle file should look something like this: + + ```gradle + + android { + compileSdkVersion 23 + buildToolsVersion '23.0.2' + + defaultConfig { + minSdkVersion 18 + targetSdkVersion 23 + ... + } + + sourceSets { + main.java.srcDirs += 'src/main/lib/sweetblue/src' + main.res.srcDirs += 'src/main/lib/sweetblue/res' + ... + } + ... + } + + ``` + + 4. If you're building with source from github, the sourceSet path is a bit different: + + ```gradle + + android { + compileSdkVersion 23 + buildToolsVersion '23.0.2' + + defaultConfig { + minSdkVersion 18 + targetSdkVersion 23 + ... + } + + sourceSets { + main.java.srcDirs += 'src/main/lib/sweetblue/app/src/main/java' + main.res.srcDirs += 'src/main/lib/sweetblue/app/src/main/res' + ... + } + ... + } + + ``` + + 5. Else if building with JAR, it should look something like this: + + ```gradle + + android { + compileSdkVersion 23 + buildToolsVersion '23.0.2' + + defaultConfig { + minSdkVersion 18 + targetSdkVersion 23 + ... + } + + dependencies { + compile fileTree(dir: 'libs', include: '*.jar') + ... + } + ... + } + + ``` + +2. Else if using **Eclipse**... + 1. [Download](http://idevicesinc.com/sweetblue/#tryit) the latest release to a subfolder of your project such as `MyApp/libs/`. This ZIP contains several samples, precompiled JARS, and API docs and is preferable to downloading from GitHub, which only contains the raw source. + 2. Open the `Package Explorer` view. + 3. Expand `MyApp/libs/sweetblue/`. + 4. If building with source... + 1. Right-click on the `src` folder. + 2. Hover over `Build Path->`. + 3. Click `Use as Source Folder`. + 5. Else if building with JAR... + 1. Expand the `jars` folder. + 2. Right click on `sweetblue_{version}.jar`. + 3. Hover over `Build Path->`. + 4. Click `Add to Build Path`. +3. Now add these to the root of `MyApp/AndroidManifest.xml`: + + ```xml + <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="23" /> + <uses-feature android:name="android.hardware.bluetooth_le" android:required="true" /> + <uses-permission android:name="android.permission.BLUETOOTH" /> + <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> + <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" /> + <uses-permission android:name="android.permission.WAKE_LOCK" /> + <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> + + <!-- NOTE: Location is a new requirement for scanning in Android M. --> + <!-- You may use ACCESS_FINE_LOCATION also or instead. --> + ``` + +4. From your `Activity` or `Service` or `Application` instance, this is all it takes to discover a device, connect to it, and read a characteristic: + ```java + // A ScanFilter decides whether a BleDevice instance will be created from a + // BLE advertisement and passed to the DiscoveryListener implementation below. + final ScanFilter scanFilter = new ScanFilter() + { + @Override public Please onEvent(ScanEvent e) + { + return Please.acknowledgeIf(e.name_normalized().contains("my_device")) + .thenStopScan(); + } + }; + + // New BleDevice instances are provided through this listener. + // Nested listeners then listen for connection and read results. + // Obviously you will want to structure your actual code a little better. + // The deep nesting simply demonstrates the async-callback-based nature of the API. + final DiscoveryListener discoveryListener = new DiscoveryListener() + { + @Override public void onEvent(DiscoveryEvent e) + { + if( e.was(LifeCycle.DISCOVERED) ) + { + e.device().connect(new StateListener() + { + @Override public void onEvent(StateEvent e) + { + if( e.didEnter(BleDeviceState.INITIALIZED) ) + { + e.device().read(Uuids.BATTERY_LEVEL, new ReadWriteListener() + { + @Override public void onEvent(ReadWriteEvent e) + { + if( e.wasSuccess() ) + { + Log.i("", "Battery level is " + e.data_byte() + "%"); + } + } + }); + } + } + }); + } + } +}; + + // This class helps you navigate the treacherous waters of Android M Location requirements for scanning. + // First it enables bluetooth itself, then location permissions, then location services. The latter two + // are only needed in Android M. + BluetoothEnabler.start(this, new DefaultBluetoothEnablerFilter() + { + @Override public Please onEvent(BluetoothEnablerEvent e) + { + if( e.isDone() ) + { + e.bleManager().startScan(scanFilter, discoveryListener); + } + + return super.onEvent(e); + } + }); + ``` + + +Licensing +========= + +SweetBlue is released here under the [GPLv3](http://www.gnu.org/copyleft/gpl.html). Please visit http://idevicesinc.com/sweetblue for proprietary licensing options. In a nutshell, if you're developing a for-profit commercial app you may use this library for free for evaluation purposes, but most likely your use case will require purchasing a proprietary license before you can release your app to the public. See the [FAQ](https://github.com/iDevicesInc/SweetBlue/wiki/FAQ) for more details and https://tldrlegal.com/license/gnu-general-public-license-v3-%28gpl-3%29 for a general overview of the GPL. +<p align="center"><a href="https://idevicesinc.com/sweetblue"><img src="https://github.com/iDevicesInc/SweetBlue/blob/master/scripts/assets/sweetblue_logo.png" /></a></p> diff --git a/dev/android/sweetblue/docs/api/allclasses-frame.html b/dev/android/sweetblue/docs/api/allclasses-frame.html new file mode 100644 index 0000000000000000000000000000000000000000..0edcafcae0b2e96330153dccf8e83f3363a1c972 --- /dev/null +++ b/dev/android/sweetblue/docs/api/allclasses-frame.html @@ -0,0 +1,237 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>All Classes (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="doc_style.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +</head> +<body> +<h1 class="bar">All Classes</h1> +<div class="indexContainer"> +<ul> +<li><a href="com/idevicesinc/sweetblue/annotations/Advanced.html" title="annotation in com.idevicesinc.sweetblue.annotations" target="classFrame">Advanced</a></li> +<li><a href="com/idevicesinc/sweetblue/annotations/Alpha.html" title="annotation in com.idevicesinc.sweetblue.annotations" target="classFrame">Alpha</a></li> +<li><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical" target="classFrame"><span class="interfaceName">Backend_HistoricalDatabase</span></a></li> +<li><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical" target="classFrame">Backend_HistoricalDatabase_Default</a></li> +<li><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical" target="classFrame"><span class="interfaceName">Backend_HistoricalDataList</span></a></li> +<li><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html" title="interface in com.idevicesinc.sweetblue.backend.historical" target="classFrame"><span class="interfaceName">Backend_HistoricalDataList.AsyncLoadCallback</span></a></li> +<li><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical" target="classFrame">Backend_HistoricalDataList_Default</a></li> +<li><a href="com/idevicesinc/sweetblue/backend/Backend_Modules.html" title="class in com.idevicesinc.sweetblue.backend" target="classFrame">Backend_Modules</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">BasicUuidNameMap</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">BitwiseEnum</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleAdvertisingPacket</a></li> +<li><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleAdvertisingPacket.Option</a></li> +<li><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleAdvertisingSettings</a></li> +<li><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleAdvertisingSettings.BleAdvertisingMode</a></li> +<li><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleAdvertisingSettings.BleTransmissionPower</a></li> +<li><a href="com/idevicesinc/sweetblue/BleCharacteristic.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleCharacteristic</a></li> +<li><a href="com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleCharacteristicPermission</a></li> +<li><a href="com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleCharacteristicProperty</a></li> +<li><a href="com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleConnectionPriority</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDescriptor</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDescriptorPermission</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDevice</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleDevice.BondListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDevice.BondListener.BondEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDevice.BondListener.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleDevice.ConnectionFailListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDevice.ConnectionFailListener.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDevice.ConnectionFailListener.Timing</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDevice.DefaultConnectionFailListener</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleDevice.ReadWriteListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDevice.ReadWriteListener.ReadWriteEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDevice.ReadWriteListener.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDevice.ReadWriteListener.Target</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDevice.ReadWriteListener.Type</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleDevice.StateListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDevice.StateListener.StateEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDevice.WriteBuilder</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDeviceConfig</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleDeviceConfig.BondFilter</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDeviceConfig.BondFilter.CharacteristicEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDeviceConfig.BondFilter.CharacteristicEventType</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDeviceConfig.BondFilter.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDeviceConfig.BondFilter.StateChangeEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDeviceConfig.DefaultBondFilter</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDeviceIterator</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDeviceOrigin</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDeviceState</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManager</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleManager.AssertListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManager.AssertListener.AssertEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleManager.DiscoveryListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManager.DiscoveryListener.DiscoveryEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleManager.DiscoveryListener.LifeCycle</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.NativeStateListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleManager.NativeStateListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManager.NativeStateListener.NativeStateEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.ResetListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleManager.ResetListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleManager.ResetListener.Progress</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManager.ResetListener.ResetEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleManager.StateListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManager.StateListener.StateEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleManager.UhOhListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleManager.UhOhListener.Remedy</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleManager.UhOhListener.UhOh</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManager.UhOhListener.UhOhEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManagerConfig</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManagerConfig.DefaultScanFilter</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManagerConfig.DeviceNameComparator</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleManagerConfig.ScanFilter</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManagerConfig.ScanFilter.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManagerConfig.ScanFilter.ScanEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleManagerState</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNode</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleNode.ConnectionFailListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleNode.ConnectionFailListener.AutoConnectUsage</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNode.ConnectionFailListener.ConnectionFailEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNode.ConnectionFailListener.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleNode.HistoricalDataLoadListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleNode.HistoricalDataLoadListener.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleNode.HistoricalDataQueryListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleNode.HistoricalDataQueryListener.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.DefaultHistoricalDataLogFilter</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.DefaultReconnectFilter</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.DefaultTaskTimeoutRequestFilter</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleNodeConfig.HistoricalDataFactory</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleNodeConfig.HistoricalDataLogFilter</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.HistoricalDataLogFilter.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.HistoricalDataLogFilter.Source</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleNodeConfig.ReconnectFilter</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.ReconnectFilter.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.ReconnectFilter.ReconnectEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.ReconnectFilter.Type</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleNodeConfig.TaskTimeoutRequestFilter</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.TaskTimeoutRequestFilter.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">BleScanInfo</a></li> +<li><a href="com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleScanMode</a></li> +<li><a href="com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleScanPower</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleServer.AdvertisingListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer.AdvertisingListener.AdvertisingEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleServer.AdvertisingListener.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleServer.ConnectionFailListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer.ConnectionFailListener.ConnectionFailEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleServer.ConnectionFailListener.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer.DefaultConnectionFailListener</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleServer.ExchangeListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer.ExchangeListener.ExchangeEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleServer.ExchangeListener.Target</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleServer.ExchangeListener.Type</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleServer.IncomingListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer.IncomingListener.IncomingEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer.IncomingListener.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleServer.OutgoingListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer.OutgoingListener.OutgoingEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleServer.OutgoingListener.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleServer.ServiceAddListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer.ServiceAddListener.ServiceAddEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleServer.ServiceAddListener.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleServer.StateListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer.StateListener.StateEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleServerState</a></li> +<li><a href="com/idevicesinc/sweetblue/BleService.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleService</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServices.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServices</a></li> +<li><a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleStatuses</a></li> +<li><a href="com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleTask</a></li> +<li><a href="com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleTransaction</a></li> +<li><a href="com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleTransaction.Auth</a></li> +<li><a href="com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleTransaction.EndReason</a></li> +<li><a href="com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleTransaction.Init</a></li> +<li><a href="com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleTransaction.Ota</a></li> +<li><a href="com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleWriteTransaction</a></li> +<li><a href="com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleWriteTransaction.FailListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleWriteTransaction.FailListener.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleWriteTransaction.WriteQueueListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleWriteTransaction.WriteQueueListener.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">BluetoothEnabler</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">BluetoothEnabler.BluetoothEnablerFilter</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">BluetoothEnabler.BluetoothEnablerFilter.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils" target="classFrame">BluetoothEnabler.BluetoothEnablerFilter.Stage</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils" target="classFrame">BluetoothEnabler.BluetoothEnablerFilter.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">BluetoothEnabler.DefaultBluetoothEnablerFilter</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">DebugLogger</a></li> +<li><a href="com/idevicesinc/sweetblue/DefaultLogger.html" title="class in com.idevicesinc.sweetblue" target="classFrame">DefaultLogger</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Distance</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">EmptyCursor</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">EmptyIterator</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">EpochTime</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">EpochTimeRange</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Event</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/EventQueue.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">EventQueue</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">ForEach_Breakable</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">ForEach_Breakable.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">ForEach_Returning</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">ForEach_Void</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">FutureData</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">GenericListener_Void</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalData</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataColumn</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">HistoricalDataCursor</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery.Part</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery.Part_AllowsFrom</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery.Part_AllowsSelectColumn</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery.Part_ClauseColumn</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_From.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery.Part_From</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery.Part_Function</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery.Part_Select</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery.Part_SelectColumn</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery.Part_Where</a></li> +<li><a href="com/idevicesinc/sweetblue/annotations/Immutable.html" title="annotation in com.idevicesinc.sweetblue.annotations" target="classFrame">Immutable</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Interval</a></li> +<li><a href="com/idevicesinc/sweetblue/compat/K_Util.html" title="class in com.idevicesinc.sweetblue.compat" target="classFrame">K_Util</a></li> +<li><a href="com/idevicesinc/sweetblue/compat/L_Util.html" title="class in com.idevicesinc.sweetblue.compat" target="classFrame">L_Util</a></li> +<li><a href="com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat" target="classFrame"><span class="interfaceName">L_Util.ScanCallback</span></a></li> +<li><a href="com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat" target="classFrame">L_Util.ScanResult</a></li> +<li><a href="com/idevicesinc/sweetblue/annotations/Lambda.html" title="annotation in com.idevicesinc.sweetblue.annotations" target="classFrame">Lambda</a></li> +<li><a href="com/idevicesinc/sweetblue/compat/M_Util.html" title="class in com.idevicesinc.sweetblue.compat" target="classFrame">M_Util</a></li> +<li><a href="com/idevicesinc/sweetblue/annotations/Nullable.html" title="annotation in com.idevicesinc.sweetblue.annotations" target="classFrame">Nullable</a></li> +<li><a href="com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations" target="classFrame">Nullable.Prevalence</a></li> +<li><a href="com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue" target="classFrame">P_StringHandler</a></li> +<li><a href="com/idevicesinc/sweetblue/P_Task_BatteryLevel.html" title="class in com.idevicesinc.sweetblue" target="classFrame">P_Task_BatteryLevel</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Percent</a></li> +<li><a href="com/idevicesinc/sweetblue/PI_BleScanner.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">PI_BleScanner</span></a></li> +<li><a href="com/idevicesinc/sweetblue/PI_BleStatusHelper.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">PI_BleStatusHelper</span></a></li> +<li><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">PI_UpdateLoop</span></a></li> +<li><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">PI_UpdateLoop.Callback</span></a></li> +<li><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" title="class in com.idevicesinc.sweetblue" target="classFrame">PI_UpdateLoop.DefaultUpdateLoopFactory</a></li> +<li><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">PI_UpdateLoop.IUpdateLoopFactory</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Pointer</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/PresentData.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">PresentData</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">ReflectionUuidNameMap</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">SingleElementIterator</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">State</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">State.ChangeEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils" target="classFrame">State.ChangeIntent</a></li> +<li><a href="com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">SweetLogger</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">TimeEstimator</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Unit</a></li> +<li><a href="com/idevicesinc/sweetblue/annotations/UnitTest.html" title="annotation in com.idevicesinc.sweetblue.annotations" target="classFrame">UnitTest</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">UpdateLoop</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">UsesCustomNull</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Utils</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Utils_Byte</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Utils_Reflection.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Utils_Reflection</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Utils_Rssi.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Utils_Rssi</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Utils_ScanRecord</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Utils_State.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Utils_State</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Utils_String</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Utils_Time.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Utils_Time</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">UuidNameMap</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">UuidNameMap_ListWrapper</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Uuids</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/WrongThreadError.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">WrongThreadError</a></li> +</ul> +</div> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/allclasses-noframe.html b/dev/android/sweetblue/docs/api/allclasses-noframe.html new file mode 100644 index 0000000000000000000000000000000000000000..2621f05aa7f11fa9f9c7fcad8fb9722000f42889 --- /dev/null +++ b/dev/android/sweetblue/docs/api/allclasses-noframe.html @@ -0,0 +1,237 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>All Classes (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="doc_style.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +</head> +<body> +<h1 class="bar">All Classes</h1> +<div class="indexContainer"> +<ul> +<li><a href="com/idevicesinc/sweetblue/annotations/Advanced.html" title="annotation in com.idevicesinc.sweetblue.annotations">Advanced</a></li> +<li><a href="com/idevicesinc/sweetblue/annotations/Alpha.html" title="annotation in com.idevicesinc.sweetblue.annotations">Alpha</a></li> +<li><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="interfaceName">Backend_HistoricalDatabase</span></a></li> +<li><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></li> +<li><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="interfaceName">Backend_HistoricalDataList</span></a></li> +<li><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="interfaceName">Backend_HistoricalDataList.AsyncLoadCallback</span></a></li> +<li><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></li> +<li><a href="com/idevicesinc/sweetblue/backend/Backend_Modules.html" title="class in com.idevicesinc.sweetblue.backend">Backend_Modules</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils">BasicUuidNameMap</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="interfaceName">BitwiseEnum</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></li> +<li><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a></li> +<li><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingSettings</a></li> +<li><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a></li> +<li><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a></li> +<li><a href="com/idevicesinc/sweetblue/BleCharacteristic.html" title="class in com.idevicesinc.sweetblue">BleCharacteristic</a></li> +<li><a href="com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a></li> +<li><a href="com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a></li> +<li><a href="com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue">BleDescriptor</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleDevice.BondListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleDevice.ConnectionFailListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleDevice.DefaultConnectionFailListener</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleDevice.ReadWriteListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleDevice.StateListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.StateListener.StateEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleDeviceConfig.BondFilter</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEventType</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.StateChangeEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.DefaultBondFilter</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue">BleDeviceIterator</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue">BleDeviceOrigin</a></li> +<li><a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleManager.AssertListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.AssertListener.AssertEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleManager.DiscoveryListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.DiscoveryEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.NativeStateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleManager.NativeStateListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.NativeStateListener.NativeStateEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.ResetListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleManager.ResetListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue">BleManager.ResetListener.Progress</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.ResetListener.ResetEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleManager.StateListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.StateListener.StateEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleManager.UhOhListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOhEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.DefaultScanFilter</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.DeviceNameComparator</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleManagerConfig.ScanFilter</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleNode.ConnectionFailListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.ConnectionFailEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleNode.HistoricalDataLoadListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleNode.HistoricalDataQueryListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultHistoricalDataLogFilter</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultReconnectFilter</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultTaskTimeoutRequestFilter</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleNodeConfig.HistoricalDataFactory</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleNodeConfig.HistoricalDataLogFilter</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleNodeConfig.ReconnectFilter</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleNodeConfig.TaskTimeoutRequestFilter</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a></li> +<li><a href="com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a></li> +<li><a href="com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleServer.AdvertisingListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleServer.ConnectionFailListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleServer.DefaultConnectionFailListener</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleServer.ExchangeListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Target</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleServer.IncomingListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.IncomingEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleServer.OutgoingListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleServer.ServiceAddListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.ServiceAddEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleServer.StateListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.StateListener.StateEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a></li> +<li><a href="com/idevicesinc/sweetblue/BleService.html" title="class in com.idevicesinc.sweetblue">BleService</a></li> +<li><a href="com/idevicesinc/sweetblue/BleServices.html" title="class in com.idevicesinc.sweetblue">BleServices</a></li> +<li><a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></li> +<li><a href="com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a></li> +<li><a href="com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></li> +<li><a href="com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a></li> +<li><a href="com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a></li> +<li><a href="com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a></li> +<li><a href="com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Ota</a></li> +<li><a href="com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a></li> +<li><a href="com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleWriteTransaction.FailListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">BleWriteTransaction.WriteQueueListener</span></a></li> +<li><a href="com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.WriteQueueListener.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="interfaceName">BluetoothEnabler.BluetoothEnablerFilter</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.DefaultBluetoothEnablerFilter</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils">DebugLogger</a></li> +<li><a href="com/idevicesinc/sweetblue/DefaultLogger.html" title="class in com.idevicesinc.sweetblue">DefaultLogger</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="class in com.idevicesinc.sweetblue.utils">EmptyIterator</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/EventQueue.html" title="class in com.idevicesinc.sweetblue.utils">EventQueue</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="interfaceName">ForEach_Breakable</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils">ForEach_Breakable.Please</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="interfaceName">ForEach_Returning</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="interfaceName">ForEach_Void</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="interfaceName">FutureData</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="interfaceName">GenericListener_Void</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="interfaceName">HistoricalDataCursor</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsFrom</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsSelectColumn</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_ClauseColumn</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_From.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_From</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Function</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Select</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_SelectColumn</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Where</a></li> +<li><a href="com/idevicesinc/sweetblue/annotations/Immutable.html" title="annotation in com.idevicesinc.sweetblue.annotations">Immutable</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></li> +<li><a href="com/idevicesinc/sweetblue/compat/K_Util.html" title="class in com.idevicesinc.sweetblue.compat">K_Util</a></li> +<li><a href="com/idevicesinc/sweetblue/compat/L_Util.html" title="class in com.idevicesinc.sweetblue.compat">L_Util</a></li> +<li><a href="com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat"><span class="interfaceName">L_Util.ScanCallback</span></a></li> +<li><a href="com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat">L_Util.ScanResult</a></li> +<li><a href="com/idevicesinc/sweetblue/annotations/Lambda.html" title="annotation in com.idevicesinc.sweetblue.annotations">Lambda</a></li> +<li><a href="com/idevicesinc/sweetblue/compat/M_Util.html" title="class in com.idevicesinc.sweetblue.compat">M_Util</a></li> +<li><a href="com/idevicesinc/sweetblue/annotations/Nullable.html" title="annotation in com.idevicesinc.sweetblue.annotations">Nullable</a></li> +<li><a href="com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations">Nullable.Prevalence</a></li> +<li><a href="com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue">P_StringHandler</a></li> +<li><a href="com/idevicesinc/sweetblue/P_Task_BatteryLevel.html" title="class in com.idevicesinc.sweetblue">P_Task_BatteryLevel</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></li> +<li><a href="com/idevicesinc/sweetblue/PI_BleScanner.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">PI_BleScanner</span></a></li> +<li><a href="com/idevicesinc/sweetblue/PI_BleStatusHelper.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">PI_BleStatusHelper</span></a></li> +<li><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">PI_UpdateLoop</span></a></li> +<li><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">PI_UpdateLoop.Callback</span></a></li> +<li><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" title="class in com.idevicesinc.sweetblue">PI_UpdateLoop.DefaultUpdateLoopFactory</a></li> +<li><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">PI_UpdateLoop.IUpdateLoopFactory</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils">Pointer</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/PresentData.html" title="class in com.idevicesinc.sweetblue.utils">PresentData</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils">ReflectionUuidNameMap</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="class in com.idevicesinc.sweetblue.utils">SingleElementIterator</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="interfaceName">State</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a></li> +<li><a href="com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue"><span class="interfaceName">SweetLogger</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils">TimeEstimator</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></li> +<li><a href="com/idevicesinc/sweetblue/annotations/UnitTest.html" title="annotation in com.idevicesinc.sweetblue.annotations">UnitTest</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="interfaceName">UsesCustomNull</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Utils_Reflection.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Reflection</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Utils_Rssi.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Rssi</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html" title="class in com.idevicesinc.sweetblue.utils">Utils_ScanRecord</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Utils_State.html" title="class in com.idevicesinc.sweetblue.utils">Utils_State</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils">Utils_String</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Utils_Time.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Time</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="interfaceName">UuidNameMap</span></a></li> +<li><a href="com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html" title="class in com.idevicesinc.sweetblue.utils">UuidNameMap_ListWrapper</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/WrongThreadError.html" title="class in com.idevicesinc.sweetblue.utils">WrongThreadError</a></li> +</ul> +</div> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html new file mode 100644 index 0000000000000000000000000000000000000000..a27a1f157650b53deaee6ff25d7e04f9547937d5 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html @@ -0,0 +1,461 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleAdvertisingPacket.Option (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleAdvertisingPacket.Option (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":9,"i6":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" target="_top">Frames</a></li> +<li><a href="BleAdvertisingPacket.Option.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleAdvertisingPacket.Option" class="title">Enum BleAdvertisingPacket.Option</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleAdvertisingPacket.Option</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleAdvertisingPacket.Option</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></pre> +<div class="block">Enumeration for advertising options</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE">CONNECTABLE</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME">INCLUDE_NAME</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_TX_POWER">INCLUDE_TX_POWER</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#bit--">bit</a></span>()</code> +<div class="block">Returns the bit (0x1, 0x2, 0x4, etc.) this enum represents based on the <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--"><code>BitwiseEnum.ordinal()</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#getFlags-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option:A-">getFlags</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>[] options)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a> state)</code> +<div class="block">Does a bitwise OR for this state and the given state.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#or-int-">or</a></span>(int bits)</code> +<div class="block">Does a bitwise OR for this state and the given bits.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#overlaps-int-">overlaps</a></span>(int mask)</code> +<div class="block">Convenience method for checking if <code>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--"><code>BitwiseEnum.bit()</code></a> & mask) != 0x0</code>.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.BitwiseEnum"> +<!-- --> +</a> +<h3>Methods inherited from interface com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#name--">name</a>, <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--">ordinal</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="CONNECTABLE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CONNECTABLE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a> CONNECTABLE</pre> +</li> +</ul> +<a name="INCLUDE_NAME"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>INCLUDE_NAME</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a> INCLUDE_NAME</pre> +</li> +</ul> +<a name="INCLUDE_TX_POWER"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>INCLUDE_TX_POWER</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a> INCLUDE_TX_POWER</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleAdvertisingPacket.Option c : BleAdvertisingPacket.Option.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="getFlags-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getFlags</h4> +<pre>public static int getFlags(<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>[] options)</pre> +</li> +</ul> +<a name="or-com.idevicesinc.sweetblue.utils.BitwiseEnum-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>or</h4> +<pre>public int or(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a> state)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">BitwiseEnum</a></code></span></div> +<div class="block">Does a bitwise OR for this state and the given state.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="or-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>or</h4> +<pre>public int or(int bits)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-int-">BitwiseEnum</a></code></span></div> +<div class="block">Does a bitwise OR for this state and the given bits.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-int-">or</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="bit--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bit</h4> +<pre>public int bit()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--">BitwiseEnum</a></code></span></div> +<div class="block">Returns the bit (0x1, 0x2, 0x4, etc.) this enum represents based on the <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--"><code>BitwiseEnum.ordinal()</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--">bit</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="overlaps-int-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>overlaps</h4> +<pre>public boolean overlaps(int mask)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#overlaps-int-">BitwiseEnum</a></code></span></div> +<div class="block">Convenience method for checking if <code>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--"><code>BitwiseEnum.bit()</code></a> & mask) != 0x0</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#overlaps-int-">overlaps</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" target="_top">Frames</a></li> +<li><a href="BleAdvertisingPacket.Option.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleAdvertisingPacket.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleAdvertisingPacket.html new file mode 100644 index 0000000000000000000000000000000000000000..6cc17308a1d3ecf19ea5db8bd0cb74499f58ae51 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleAdvertisingPacket.html @@ -0,0 +1,898 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleAdvertisingPacket (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleAdvertisingPacket (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev Class</li> +<li><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleAdvertisingPacket.html" target="_top">Frames</a></li> +<li><a href="BleAdvertisingPacket.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleAdvertisingPacket" class="title">Class BleAdvertisingPacket</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleAdvertisingPacket</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">BleAdvertisingPacket</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Class to used for advertising Bluetooth services, used with <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a></div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Class and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a></span></code> +<div class="block">Enumeration for advertising options</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-int-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + int manufacturerId)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-int-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + int manufacturerId, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-int-byte:A-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + int manufacturerId, + byte[] manufacturerData)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-int-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + int manufacturerId, + byte[] manufacturerData, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + <a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> serviceData, + int options, + int manufacturerId, + byte[] manufacturerData)</code> +<div class="block">Base constructor which all other constructors in this class overload.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.UUID-byte:A-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceDataUuid, + byte[] serviceData)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceDataUuid, + byte[] serviceData, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-byte:A-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceDataUuid, + byte[] serviceData)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceDataUuid, + byte[] serviceData, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-byte:A-int-byte:A-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceDataUuid, + byte[] serviceData, + int manufacturerId, + byte[] manufacturerData)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-byte:A-int-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceDataUuid, + byte[] serviceData, + int manufacturerId, + byte[] manufacturerData, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-int-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + int manufacturerId)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-int-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + int manufacturerId, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-int-byte:A-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + int manufacturerId, + byte[] manufacturerData)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-int-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + int manufacturerId, + byte[] manufacturerData, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-java.util.Map-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> serviceUuidsAndData)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-java.util.Map-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> serviceUuidsAndData, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-java.util.Map-int-byte:A-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> serviceUuidsAndData, + int manufacturerId, + byte[] manufacturerData)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-java.util.Map-int-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> serviceUuidsAndData, + int manufacturerId, + byte[] manufacturerData, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-java.util.UUID-byte:A-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceDataUuid, + byte[] serviceData)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceDataUuid, + byte[] serviceData, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#getManufacturerData--">getManufacturerData</a></span>()</code> +<div class="block">Returns the manufacturer data</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#getManufacturerId--">getManufacturerId</a></span>()</code> +<div class="block">Returns the manufacturer Id being used</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#getServiceData--">getServiceData</a></span>()</code> +<div class="block">Returns a Map of 16bit service UUIDs, along with the associated byte arrays.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#getUuids--">getUuids</a></span>()</code> +<div class="block">Returns a HashSet of UUIDS that will be advertised</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#hasUuid-java.util.UUID-">hasUuid</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> +<div class="block">Returns true if this advertising packet contains the uuid given.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#includeDeviceName--">includeDeviceName</a></span>()</code> +<div class="block">Whether or not this advertisement includes the device name</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#includeTxPowerLevel--">includeTxPowerLevel</a></span>()</code> +<div class="block">Whether or not this advertisement includes the Tx power level in the packet</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#isConnectable--">isConnectable</a></span>()</code> +<div class="block">Whether or not this advertisement is connectable</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + <a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> serviceData, + int options, + int manufacturerId, + byte[] manufacturerData)</pre> +<div class="block">Base constructor which all other constructors in this class overload. This sets all the packet information to be included + in your advertisement.</div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + int manufacturerId)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID-int-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + int manufacturerId, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID-int-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + int manufacturerId, + byte[] manufacturerData)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID-int-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + int manufacturerId, + byte[] manufacturerData, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID:A-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + int manufacturerId)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID:A-int-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + int manufacturerId, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID:A-int-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + int manufacturerId, + byte[] manufacturerData)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID:A-int-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + int manufacturerId, + byte[] manufacturerData, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID-java.util.UUID-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceDataUuid, + byte[] serviceData)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceDataUuid, + byte[] serviceData, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID:A-java.util.UUID-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceDataUuid, + byte[] serviceData)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID:A-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceDataUuid, + byte[] serviceData, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID-java.util.Map-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> serviceUuidsAndData)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID-java.util.Map-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> serviceUuidsAndData, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID-java.util.Map-int-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> serviceUuidsAndData, + int manufacturerId, + byte[] manufacturerData)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID-java.util.Map-int-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> serviceUuidsAndData, + int manufacturerId, + byte[] manufacturerData, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceDataUuid, + byte[] serviceData)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceDataUuid, + byte[] serviceData, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID-byte:A-int-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceDataUuid, + byte[] serviceData, + int manufacturerId, + byte[] manufacturerData)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</li> +</ul> +<a name="BleAdvertisingPacket-java.util.UUID-byte:A-int-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BleAdvertisingPacket</h4> +<pre>public BleAdvertisingPacket(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceDataUuid, + byte[] serviceData, + int manufacturerId, + byte[] manufacturerData, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="getManufacturerId--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getManufacturerId</h4> +<pre>public int getManufacturerId()</pre> +<div class="block">Returns the manufacturer Id being used</div> +</li> +</ul> +<a name="getManufacturerData--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getManufacturerData</h4> +<pre>public byte[] getManufacturerData()</pre> +<div class="block">Returns the manufacturer data</div> +</li> +</ul> +<a name="isConnectable--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isConnectable</h4> +<pre>public boolean isConnectable()</pre> +<div class="block">Whether or not this advertisement is connectable</div> +</li> +</ul> +<a name="includeDeviceName--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>includeDeviceName</h4> +<pre>public boolean includeDeviceName()</pre> +<div class="block">Whether or not this advertisement includes the device name</div> +</li> +</ul> +<a name="includeTxPowerLevel--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>includeTxPowerLevel</h4> +<pre>public boolean includeTxPowerLevel()</pre> +<div class="block">Whether or not this advertisement includes the Tx power level in the packet</div> +</li> +</ul> +<a name="hasUuid-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasUuid</h4> +<pre>public boolean hasUuid(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<div class="block">Returns true if this advertising packet contains the uuid given.</div> +</li> +</ul> +<a name="getUuids--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getUuids</h4> +<pre>public <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] getUuids()</pre> +<div class="block">Returns a HashSet of UUIDS that will be advertised</div> +</li> +</ul> +<a name="getServiceData--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getServiceData</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> getServiceData()</pre> +<div class="block">Returns a Map of 16bit service UUIDs, along with the associated byte arrays.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev Class</li> +<li><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleAdvertisingPacket.html" target="_top">Frames</a></li> +<li><a href="BleAdvertisingPacket.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html new file mode 100644 index 0000000000000000000000000000000000000000..31f9e75564e621e967331730a46551cc3fbe1fe5 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html @@ -0,0 +1,399 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleAdvertisingSettings.BleAdvertisingMode (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleAdvertisingSettings.BleAdvertisingMode (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9,"i2":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" target="_top">Frames</a></li> +<li><a href="BleAdvertisingSettings.BleAdvertisingMode.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleAdvertisingSettings.BleAdvertisingMode" class="title">Enum BleAdvertisingSettings.BleAdvertisingMode</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a>></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingSettings</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleAdvertisingSettings.BleAdvertisingMode</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a>></pre> +<div class="block">Type-safe parallel of static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings</code></a>. + This is only applicable for Android >= 5.0 OS levels.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#AUTO">AUTO</a></span></code> +<div class="block">This option is recommended and will let SweetBlue automatically choose what advertising mode to use + based on whether the app is backgrounded, and if we're doing a continuous, or short-term advertisement</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#HIGH_FREQUENCY">HIGH_FREQUENCY</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true#ADVERTISE_MODE_LOW_LATENCY" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings.ADVERTISE_MODE_LOW_LATENCY</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#LOW_FREQUENCY">LOW_FREQUENCY</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true#ADVERTISE_MODE_LOW_POWER" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings.ADVERTISE_MODE_LOW_POWER</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#MEDIUM_FREQUENCY">MEDIUM_FREQUENCY</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true#ADVERTISE_MODE_BALANCED" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings.ADVERTISE_MODE_BALANCED</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#getNativeMode--">getNativeMode</a></span>()</code> +<div class="block">Returns one of the static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings</code></a>, or -1 for <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#AUTO"><code>AUTO</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="AUTO"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>AUTO</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a> AUTO</pre> +<div class="block">This option is recommended and will let SweetBlue automatically choose what advertising mode to use + based on whether the app is backgrounded, and if we're doing a continuous, or short-term advertisement</div> +</li> +</ul> +<a name="LOW_FREQUENCY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>LOW_FREQUENCY</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a> LOW_FREQUENCY</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true#ADVERTISE_MODE_LOW_POWER" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings.ADVERTISE_MODE_LOW_POWER</code></a>.</div> +</li> +</ul> +<a name="MEDIUM_FREQUENCY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>MEDIUM_FREQUENCY</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a> MEDIUM_FREQUENCY</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true#ADVERTISE_MODE_BALANCED" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings.ADVERTISE_MODE_BALANCED</code></a>.</div> +</li> +</ul> +<a name="HIGH_FREQUENCY"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>HIGH_FREQUENCY</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a> HIGH_FREQUENCY</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true#ADVERTISE_MODE_LOW_LATENCY" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings.ADVERTISE_MODE_LOW_LATENCY</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleAdvertisingSettings.BleAdvertisingMode c : BleAdvertisingSettings.BleAdvertisingMode.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="getNativeMode--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getNativeMode</h4> +<pre>public int getNativeMode()</pre> +<div class="block">Returns one of the static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings</code></a>, or -1 for <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#AUTO"><code>AUTO</code></a>.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" target="_top">Frames</a></li> +<li><a href="BleAdvertisingSettings.BleAdvertisingMode.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html new file mode 100644 index 0000000000000000000000000000000000000000..9633a59e8b978172c10c1d7426293e5d1f7a7e1b --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html @@ -0,0 +1,397 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleAdvertisingSettings.BleTransmissionPower (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleAdvertisingSettings.BleTransmissionPower (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9,"i2":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleCharacteristic.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" target="_top">Frames</a></li> +<li><a href="BleAdvertisingSettings.BleTransmissionPower.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleAdvertisingSettings.BleTransmissionPower" class="title">Enum BleAdvertisingSettings.BleTransmissionPower</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a>></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingSettings</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleAdvertisingSettings.BleTransmissionPower</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a>></pre> +<div class="block">Type-safe parallel of static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings</code></a>. + This is only applicable for Android >= 5.0 OS levels.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html#HIGH">HIGH</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true#ADVERTISE_TX_POWER_HIGH" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings.ADVERTISE_TX_POWER_HIGH</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html#LOW">LOW</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true#ADVERTISE_TX_POWER_LOW" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings.ADVERTISE_TX_POWER_LOW</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html#MEDIUM">MEDIUM</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true#ADVERTISE_TX_POWER_MEDIUM" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings.ADVERTISE_TX_POWER_MEDIUM</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html#ULTRA_LOW">ULTRA_LOW</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true#ADVERTISE_TX_POWER_ULTRA_LOW" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings.ADVERTISE_TX_POWER_ULTRA_LOW</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html#getNativeMode--">getNativeMode</a></span>()</code> +<div class="block">Returns one of the static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings</code></a></div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="ULTRA_LOW"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ULTRA_LOW</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a> ULTRA_LOW</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true#ADVERTISE_TX_POWER_ULTRA_LOW" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings.ADVERTISE_TX_POWER_ULTRA_LOW</code></a>.</div> +</li> +</ul> +<a name="LOW"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>LOW</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a> LOW</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true#ADVERTISE_TX_POWER_LOW" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings.ADVERTISE_TX_POWER_LOW</code></a>.</div> +</li> +</ul> +<a name="MEDIUM"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>MEDIUM</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a> MEDIUM</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true#ADVERTISE_TX_POWER_MEDIUM" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings.ADVERTISE_TX_POWER_MEDIUM</code></a>.</div> +</li> +</ul> +<a name="HIGH"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>HIGH</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a> HIGH</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true#ADVERTISE_TX_POWER_HIGH" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings.ADVERTISE_TX_POWER_HIGH</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleAdvertisingSettings.BleTransmissionPower c : BleAdvertisingSettings.BleTransmissionPower.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="getNativeMode--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getNativeMode</h4> +<pre>public int getNativeMode()</pre> +<div class="block">Returns one of the static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings</code></a></div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleCharacteristic.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" target="_top">Frames</a></li> +<li><a href="BleAdvertisingSettings.BleTransmissionPower.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleAdvertisingSettings.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleAdvertisingSettings.html new file mode 100644 index 0000000000000000000000000000000000000000..d0073541a365adce516169c4c457b66e22ebe0e6 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleAdvertisingSettings.html @@ -0,0 +1,417 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleAdvertisingSettings (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleAdvertisingSettings (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleAdvertisingSettings.html" target="_top">Frames</a></li> +<li><a href="BleAdvertisingSettings.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleAdvertisingSettings" class="title">Class BleAdvertisingSettings</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleAdvertisingSettings</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">BleAdvertisingSettings</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Class used specify Ble Advertising settings.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Class and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a></span></code> +<div class="block">Type-safe parallel of static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a></span></code> +<div class="block">Type-safe parallel of static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings--">BleAdvertisingSettings</a></span>()</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-com.idevicesinc.sweetblue.utils.Interval-"><code>BleAdvertisingSettings(BleAdvertisingMode, BleTransmissionPower, Interval)</code></a>, which sets + the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleAdvertisingMode</code></a> to <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#AUTO"><code>BleAdvertisingSettings.BleAdvertisingMode.AUTO</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleTransmissionPower</code></a> to <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html#MEDIUM"><code>BleAdvertisingSettings.BleTransmissionPower.MEDIUM</code></a>, + and the timeout to <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#ZERO"><code>Interval.ZERO</code></a> (no timeout).</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-com.idevicesinc.sweetblue.utils.Interval-">BleAdvertisingSettings</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a> mode, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a> power, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> timeout)</code> +<div class="block">Base constructor which sets all relevant Ble advertising settings</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-">BleAdvertisingSettings</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a> power)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-com.idevicesinc.sweetblue.utils.Interval-"><code>BleAdvertisingSettings(BleAdvertisingMode, BleTransmissionPower, Interval)</code></a>, which sets the + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleAdvertisingMode</code></a> to <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#AUTO"><code>BleAdvertisingSettings.BleAdvertisingMode.AUTO</code></a>, + and the timeout to <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#ZERO"><code>Interval.ZERO</code></a> (no timeout).</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-com.idevicesinc.sweetblue.utils.Interval-">BleAdvertisingSettings</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a> power, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> timeout)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-com.idevicesinc.sweetblue.utils.Interval-"><code>BleAdvertisingSettings(BleAdvertisingMode, BleTransmissionPower, Interval)</code></a>, which sets the + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleAdvertisingMode</code></a> to <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#AUTO"><code>BleAdvertisingSettings.BleAdvertisingMode.AUTO</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.utils.Interval-">BleAdvertisingSettings</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> timeout)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-com.idevicesinc.sweetblue.utils.Interval-"><code>BleAdvertisingSettings(BleAdvertisingMode, BleTransmissionPower, Interval)</code></a>, which sets the + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleAdvertisingMode</code></a> to <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#AUTO"><code>BleAdvertisingSettings.BleAdvertisingMode.AUTO</code></a>, and + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleTransmissionPower</code></a> to <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html#MEDIUM"><code>BleAdvertisingSettings.BleTransmissionPower.MEDIUM</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html#getAdvertisingMode--">getAdvertisingMode</a></span>()</code> +<div class="block">Returns the advertising mode specified with <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleAdvertisingMode</code></a></div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html#getTimeout--">getTimeout</a></span>()</code> +<div class="block">Returns the timeout period.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html#getTransmissionPower--">getTransmissionPower</a></span>()</code> +<div class="block">Returns the advertising transmission power specified with <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleTransmissionPower</code></a></div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingSettings</h4> +<pre>public BleAdvertisingSettings(<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a> mode, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a> power, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> timeout)</pre> +<div class="block">Base constructor which sets all relevant Ble advertising settings</div> +</li> +</ul> +<a name="BleAdvertisingSettings--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingSettings</h4> +<pre>public BleAdvertisingSettings()</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-com.idevicesinc.sweetblue.utils.Interval-"><code>BleAdvertisingSettings(BleAdvertisingMode, BleTransmissionPower, Interval)</code></a>, which sets + the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleAdvertisingMode</code></a> to <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#AUTO"><code>BleAdvertisingSettings.BleAdvertisingMode.AUTO</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleTransmissionPower</code></a> to <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html#MEDIUM"><code>BleAdvertisingSettings.BleTransmissionPower.MEDIUM</code></a>, + and the timeout to <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#ZERO"><code>Interval.ZERO</code></a> (no timeout).</div> +</li> +</ul> +<a name="BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingSettings</h4> +<pre>public BleAdvertisingSettings(<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a> power, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> timeout)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-com.idevicesinc.sweetblue.utils.Interval-"><code>BleAdvertisingSettings(BleAdvertisingMode, BleTransmissionPower, Interval)</code></a>, which sets the + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleAdvertisingMode</code></a> to <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#AUTO"><code>BleAdvertisingSettings.BleAdvertisingMode.AUTO</code></a>.</div> +</li> +</ul> +<a name="BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleAdvertisingSettings</h4> +<pre>public BleAdvertisingSettings(<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a> power)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-com.idevicesinc.sweetblue.utils.Interval-"><code>BleAdvertisingSettings(BleAdvertisingMode, BleTransmissionPower, Interval)</code></a>, which sets the + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleAdvertisingMode</code></a> to <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#AUTO"><code>BleAdvertisingSettings.BleAdvertisingMode.AUTO</code></a>, + and the timeout to <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#ZERO"><code>Interval.ZERO</code></a> (no timeout).</div> +</li> +</ul> +<a name="BleAdvertisingSettings-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BleAdvertisingSettings</h4> +<pre>public BleAdvertisingSettings(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> timeout)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-com.idevicesinc.sweetblue.utils.Interval-"><code>BleAdvertisingSettings(BleAdvertisingMode, BleTransmissionPower, Interval)</code></a>, which sets the + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleAdvertisingMode</code></a> to <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#AUTO"><code>BleAdvertisingSettings.BleAdvertisingMode.AUTO</code></a>, and + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleTransmissionPower</code></a> to <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html#MEDIUM"><code>BleAdvertisingSettings.BleTransmissionPower.MEDIUM</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="getAdvertisingMode--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getAdvertisingMode</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a> getAdvertisingMode()</pre> +<div class="block">Returns the advertising mode specified with <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleAdvertisingMode</code></a></div> +</li> +</ul> +<a name="getTransmissionPower--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getTransmissionPower</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a> getTransmissionPower()</pre> +<div class="block">Returns the advertising transmission power specified with <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleTransmissionPower</code></a></div> +</li> +</ul> +<a name="getTimeout--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getTimeout</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> getTimeout()</pre> +<div class="block">Returns the timeout period.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleAdvertisingSettings.html" target="_top">Frames</a></li> +<li><a href="BleAdvertisingSettings.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleCharacteristic.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleCharacteristic.html new file mode 100644 index 0000000000000000000000000000000000000000..e80d27c0ade7f7463fd58b0afe9aa9083f2c0dbf --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleCharacteristic.html @@ -0,0 +1,319 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleCharacteristic (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleCharacteristic (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleCharacteristic.html" target="_top">Frames</a></li> +<li><a href="BleCharacteristic.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleCharacteristic" class="title">Class BleCharacteristic</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleCharacteristic</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">BleCharacteristic</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Proxy of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic</code></a> to force stricter compile-time checks and order of operations + when creating characteristics for <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServices.html" title="class in com.idevicesinc.sweetblue"><code>BleServices</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristic.html#BleCharacteristic-java.util.UUID-com.idevicesinc.sweetblue.BleCharacteristicPermission-com.idevicesinc.sweetblue.BleCharacteristicProperty-com.idevicesinc.sweetblue.BleDescriptor...-">BleCharacteristic</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a> permission, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a> property, + <a href="../../../com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue">BleDescriptor</a>... descriptors)</code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristic.html#BleCharacteristic-java.util.UUID-com.idevicesinc.sweetblue.BleCharacteristicProperty:A-com.idevicesinc.sweetblue.BleCharacteristicPermission:A-com.idevicesinc.sweetblue.BleDescriptor...-">BleCharacteristic</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a>[] properties, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a>[] permissions, + <a href="../../../com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue">BleDescriptor</a>... descriptors)</code> </td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristic.html#BleCharacteristic-java.util.UUID-com.idevicesinc.sweetblue.BleCharacteristicProperty-com.idevicesinc.sweetblue.BleCharacteristicPermission-com.idevicesinc.sweetblue.BleDescriptor...-">BleCharacteristic</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a> property, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a> permission, + <a href="../../../com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue">BleDescriptor</a>... descriptors)</code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristic.html#BleCharacteristic-java.util.UUID-com.idevicesinc.sweetblue.BleDescriptor-com.idevicesinc.sweetblue.BleCharacteristicPermission-com.idevicesinc.sweetblue.BleCharacteristicProperty...-">BleCharacteristic</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue">BleDescriptor</a> descriptor, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a> permission, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a>... properties)</code> </td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristic.html#BleCharacteristic-java.util.UUID-com.idevicesinc.sweetblue.BleDescriptor-com.idevicesinc.sweetblue.BleCharacteristicProperty-com.idevicesinc.sweetblue.BleCharacteristicPermission...-">BleCharacteristic</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue">BleDescriptor</a> descriptor, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a> property, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a>... permissions)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="BleCharacteristic-java.util.UUID-com.idevicesinc.sweetblue.BleCharacteristicProperty-com.idevicesinc.sweetblue.BleCharacteristicPermission-com.idevicesinc.sweetblue.BleDescriptor...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleCharacteristic</h4> +<pre>public BleCharacteristic(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a> property, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a> permission, + <a href="../../../com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue">BleDescriptor</a>... descriptors)</pre> +</li> +</ul> +<a name="BleCharacteristic-java.util.UUID-com.idevicesinc.sweetblue.BleDescriptor-com.idevicesinc.sweetblue.BleCharacteristicPermission-com.idevicesinc.sweetblue.BleCharacteristicProperty...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleCharacteristic</h4> +<pre>public BleCharacteristic(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue">BleDescriptor</a> descriptor, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a> permission, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a>... properties)</pre> +</li> +</ul> +<a name="BleCharacteristic-java.util.UUID-com.idevicesinc.sweetblue.BleDescriptor-com.idevicesinc.sweetblue.BleCharacteristicProperty-com.idevicesinc.sweetblue.BleCharacteristicPermission...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleCharacteristic</h4> +<pre>public BleCharacteristic(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue">BleDescriptor</a> descriptor, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a> property, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a>... permissions)</pre> +</li> +</ul> +<a name="BleCharacteristic-java.util.UUID-com.idevicesinc.sweetblue.BleCharacteristicPermission-com.idevicesinc.sweetblue.BleCharacteristicProperty-com.idevicesinc.sweetblue.BleDescriptor...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleCharacteristic</h4> +<pre>public BleCharacteristic(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a> permission, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a> property, + <a href="../../../com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue">BleDescriptor</a>... descriptors)</pre> +</li> +</ul> +<a name="BleCharacteristic-java.util.UUID-com.idevicesinc.sweetblue.BleCharacteristicProperty:A-com.idevicesinc.sweetblue.BleCharacteristicPermission:A-com.idevicesinc.sweetblue.BleDescriptor...-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BleCharacteristic</h4> +<pre>public BleCharacteristic(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a>[] properties, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a>[] permissions, + <a href="../../../com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue">BleDescriptor</a>... descriptors)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleCharacteristic.html" target="_top">Frames</a></li> +<li><a href="BleCharacteristic.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleCharacteristicPermission.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleCharacteristicPermission.html new file mode 100644 index 0000000000000000000000000000000000000000..d2affd52b476985e8fa754c922689564050cb1e6 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleCharacteristicPermission.html @@ -0,0 +1,529 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleCharacteristicPermission (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleCharacteristicPermission (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleCharacteristic.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleCharacteristicPermission.html" target="_top">Frames</a></li> +<li><a href="BleCharacteristicPermission.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleCharacteristicPermission" class="title">Enum BleCharacteristicPermission</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleCharacteristicPermission</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a>></dd> +</dl> +<hr> +<br> +<pre>public enum <span class="typeNameLabel">BleCharacteristicPermission</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></pre> +<div class="block">This enum enforces compile-time constraints over various public static int PERMISSION_ members + of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html#READ">READ</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PERMISSION_READ" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PERMISSION_READ</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html#READ_ENCRYPTED">READ_ENCRYPTED</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PERMISSION_READ_ENCRYPTED" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html#READ_ENCRYPTED_MITM">READ_ENCRYPTED_MITM</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PERMISSION_READ_ENCRYPTED_MITM" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED_MITM</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html#WRITE">WRITE</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PERMISSION_WRITE" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PERMISSION_WRITE</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html#WRITE_ENCRYPTED">WRITE_ENCRYPTED</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PERMISSION_WRITE_ENCRYPTED" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html#WRITE_ENCRYPTED_MITM">WRITE_ENCRYPTED_MITM</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PERMISSION_WRITE_ENCRYPTED_MITM" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED_MITM</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html#WRITE_SIGNED">WRITE_SIGNED</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PERMISSION_WRITE_SIGNED" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PERMISSION_WRITE_SIGNED</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html#WRITE_SIGNED_MITM">WRITE_SIGNED_MITM</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PERMISSION_WRITE_SIGNED_MITM" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PERMISSION_WRITE_SIGNED_MITM</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html#bit--">bit</a></span>()</code> +<div class="block">Returns the bit (0x1, 0x2, 0x4, etc.) this enum represents based on the <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--"><code>BitwiseEnum.ordinal()</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a> state)</code> +<div class="block">Does a bitwise OR for this state and the given state.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html#or-int-">or</a></span>(int bits)</code> +<div class="block">Does a bitwise OR for this state and the given bits.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html#overlaps-int-">overlaps</a></span>(int mask)</code> +<div class="block">Convenience method for checking if <code>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--"><code>BitwiseEnum.bit()</code></a> & mask) != 0x0</code>.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.BitwiseEnum"> +<!-- --> +</a> +<h3>Methods inherited from interface com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#name--">name</a>, <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--">ordinal</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="READ"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>READ</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a> READ</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PERMISSION_READ" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PERMISSION_READ</code></a>.</div> +</li> +</ul> +<a name="READ_ENCRYPTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>READ_ENCRYPTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a> READ_ENCRYPTED</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PERMISSION_READ_ENCRYPTED" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED</code></a>.</div> +</li> +</ul> +<a name="READ_ENCRYPTED_MITM"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>READ_ENCRYPTED_MITM</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a> READ_ENCRYPTED_MITM</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PERMISSION_READ_ENCRYPTED_MITM" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED_MITM</code></a>.</div> +</li> +</ul> +<a name="WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WRITE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a> WRITE</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PERMISSION_WRITE" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PERMISSION_WRITE</code></a>.</div> +</li> +</ul> +<a name="WRITE_ENCRYPTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WRITE_ENCRYPTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a> WRITE_ENCRYPTED</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PERMISSION_WRITE_ENCRYPTED" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED</code></a>.</div> +</li> +</ul> +<a name="WRITE_ENCRYPTED_MITM"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WRITE_ENCRYPTED_MITM</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a> WRITE_ENCRYPTED_MITM</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PERMISSION_WRITE_ENCRYPTED_MITM" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED_MITM</code></a>.</div> +</li> +</ul> +<a name="WRITE_SIGNED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WRITE_SIGNED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a> WRITE_SIGNED</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PERMISSION_WRITE_SIGNED" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PERMISSION_WRITE_SIGNED</code></a>.</div> +</li> +</ul> +<a name="WRITE_SIGNED_MITM"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>WRITE_SIGNED_MITM</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a> WRITE_SIGNED_MITM</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PERMISSION_WRITE_SIGNED_MITM" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PERMISSION_WRITE_SIGNED_MITM</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleCharacteristicPermission c : BleCharacteristicPermission.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="or-com.idevicesinc.sweetblue.utils.BitwiseEnum-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>or</h4> +<pre>public int or(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a> state)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">BitwiseEnum</a></code></span></div> +<div class="block">Does a bitwise OR for this state and the given state.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="or-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>or</h4> +<pre>public int or(int bits)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-int-">BitwiseEnum</a></code></span></div> +<div class="block">Does a bitwise OR for this state and the given bits.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-int-">or</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="bit--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bit</h4> +<pre>public int bit()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--">BitwiseEnum</a></code></span></div> +<div class="block">Returns the bit (0x1, 0x2, 0x4, etc.) this enum represents based on the <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--"><code>BitwiseEnum.ordinal()</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--">bit</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="overlaps-int-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>overlaps</h4> +<pre>public boolean overlaps(int mask)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#overlaps-int-">BitwiseEnum</a></code></span></div> +<div class="block">Convenience method for checking if <code>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--"><code>BitwiseEnum.bit()</code></a> & mask) != 0x0</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#overlaps-int-">overlaps</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleCharacteristic.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleCharacteristicPermission.html" target="_top">Frames</a></li> +<li><a href="BleCharacteristicPermission.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleCharacteristicProperty.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleCharacteristicProperty.html new file mode 100644 index 0000000000000000000000000000000000000000..fdacde03a6566ae72909a1e5b5b01628f83f1b36 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleCharacteristicProperty.html @@ -0,0 +1,529 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleCharacteristicProperty (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleCharacteristicProperty (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleCharacteristicProperty.html" target="_top">Frames</a></li> +<li><a href="BleCharacteristicProperty.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleCharacteristicProperty" class="title">Enum BleCharacteristicProperty</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleCharacteristicProperty</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a>></dd> +</dl> +<hr> +<br> +<pre>public enum <span class="typeNameLabel">BleCharacteristicProperty</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></pre> +<div class="block">This enum enforces compile-time constraints over various public static int PROPERTY_ members + of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html#BROADCAST">BROADCAST</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PROPERTY_BROADCAST" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PROPERTY_BROADCAST</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html#EXTENDED_PROPS">EXTENDED_PROPS</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PROPERTY_EXTENDED_PROPS" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PROPERTY_EXTENDED_PROPS</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html#INDICATE">INDICATE</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PROPERTY_INDICATE" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PROPERTY_INDICATE</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html#NOTIFY">NOTIFY</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PROPERTY_NOTIFY" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PROPERTY_NOTIFY</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html#READ">READ</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PROPERTY_READ" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PROPERTY_READ</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html#SIGNED_WRITE">SIGNED_WRITE</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PROPERTY_SIGNED_WRITE" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PROPERTY_SIGNED_WRITE</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html#WRITE">WRITE</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PROPERTY_WRITE" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PROPERTY_WRITE</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html#WRITE_NO_RESPONSE">WRITE_NO_RESPONSE</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PROPERTY_WRITE_NO_RESPONSE" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html#bit--">bit</a></span>()</code> +<div class="block">Returns the bit (0x1, 0x2, 0x4, etc.) this enum represents based on the <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--"><code>BitwiseEnum.ordinal()</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a> state)</code> +<div class="block">Does a bitwise OR for this state and the given state.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html#or-int-">or</a></span>(int bits)</code> +<div class="block">Does a bitwise OR for this state and the given bits.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html#overlaps-int-">overlaps</a></span>(int mask)</code> +<div class="block">Convenience method for checking if <code>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--"><code>BitwiseEnum.bit()</code></a> & mask) != 0x0</code>.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.BitwiseEnum"> +<!-- --> +</a> +<h3>Methods inherited from interface com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#name--">name</a>, <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--">ordinal</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="BROADCAST"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BROADCAST</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a> BROADCAST</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PROPERTY_BROADCAST" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PROPERTY_BROADCAST</code></a>.</div> +</li> +</ul> +<a name="READ"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>READ</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a> READ</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PROPERTY_READ" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PROPERTY_READ</code></a>.</div> +</li> +</ul> +<a name="WRITE_NO_RESPONSE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WRITE_NO_RESPONSE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a> WRITE_NO_RESPONSE</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PROPERTY_WRITE_NO_RESPONSE" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE</code></a>.</div> +</li> +</ul> +<a name="WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WRITE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a> WRITE</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PROPERTY_WRITE" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PROPERTY_WRITE</code></a>.</div> +</li> +</ul> +<a name="NOTIFY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NOTIFY</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a> NOTIFY</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PROPERTY_NOTIFY" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PROPERTY_NOTIFY</code></a>.</div> +</li> +</ul> +<a name="INDICATE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>INDICATE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a> INDICATE</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PROPERTY_INDICATE" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PROPERTY_INDICATE</code></a>.</div> +</li> +</ul> +<a name="SIGNED_WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SIGNED_WRITE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a> SIGNED_WRITE</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PROPERTY_SIGNED_WRITE" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PROPERTY_SIGNED_WRITE</code></a>.</div> +</li> +</ul> +<a name="EXTENDED_PROPS"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>EXTENDED_PROPS</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a> EXTENDED_PROPS</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PROPERTY_EXTENDED_PROPS" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PROPERTY_EXTENDED_PROPS</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleCharacteristicProperty c : BleCharacteristicProperty.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="or-com.idevicesinc.sweetblue.utils.BitwiseEnum-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>or</h4> +<pre>public int or(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a> state)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">BitwiseEnum</a></code></span></div> +<div class="block">Does a bitwise OR for this state and the given state.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="or-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>or</h4> +<pre>public int or(int bits)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-int-">BitwiseEnum</a></code></span></div> +<div class="block">Does a bitwise OR for this state and the given bits.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-int-">or</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="bit--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bit</h4> +<pre>public int bit()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--">BitwiseEnum</a></code></span></div> +<div class="block">Returns the bit (0x1, 0x2, 0x4, etc.) this enum represents based on the <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--"><code>BitwiseEnum.ordinal()</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--">bit</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="overlaps-int-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>overlaps</h4> +<pre>public boolean overlaps(int mask)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#overlaps-int-">BitwiseEnum</a></code></span></div> +<div class="block">Convenience method for checking if <code>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--"><code>BitwiseEnum.bit()</code></a> & mask) != 0x0</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#overlaps-int-">overlaps</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleCharacteristicProperty.html" target="_top">Frames</a></li> +<li><a href="BleCharacteristicProperty.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleConnectionPriority.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleConnectionPriority.html new file mode 100644 index 0000000000000000000000000000000000000000..3e0cb44f664e0b0812174852a49ee725e815a185 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleConnectionPriority.html @@ -0,0 +1,379 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleConnectionPriority (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleConnectionPriority (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9,"i2":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleConnectionPriority.html" target="_top">Frames</a></li> +<li><a href="BleConnectionPriority.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleConnectionPriority" class="title">Enum BleConnectionPriority</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleConnectionPriority</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a>></dd> +</dl> +<hr> +<br> +<pre>public enum <span class="typeNameLabel">BleConnectionPriority</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a>></pre> +<div class="block">This enum enforces compile-time constraints over various public static int CONNECTION_PRIORITY_* members + of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGatt</code></a> and is passed to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setConnectionPriority(BleConnectionPriority, BleDevice.ReadWriteListener)</code></a> + and returned from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getConnectionPriority--"><code>BleDevice.getConnectionPriority()</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html#HIGH">HIGH</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#CONNECTION_PRIORITY_HIGH" title="class or interface in android.bluetooth"><code>BluetoothGatt.CONNECTION_PRIORITY_HIGH</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html#LOW">LOW</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#CONNECTION_PRIORITY_LOW_POWER" title="class or interface in android.bluetooth"><code>BluetoothGatt.CONNECTION_PRIORITY_LOW_POWER</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html#MEDIUM">MEDIUM</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#CONNECTION_PRIORITY_BALANCED" title="class or interface in android.bluetooth"><code>BluetoothGatt.CONNECTION_PRIORITY_BALANCED</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html#getNativeMode--">getNativeMode</a></span>()</code> +<div class="block">Returns one of the static final int members of <a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue"><code>BleConnectionPriority</code></a> whose name starts with CONNECTION_PRIORITY_.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="LOW"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>LOW</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a> LOW</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#CONNECTION_PRIORITY_LOW_POWER" title="class or interface in android.bluetooth"><code>BluetoothGatt.CONNECTION_PRIORITY_LOW_POWER</code></a>.</div> +</li> +</ul> +<a name="MEDIUM"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>MEDIUM</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a> MEDIUM</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#CONNECTION_PRIORITY_BALANCED" title="class or interface in android.bluetooth"><code>BluetoothGatt.CONNECTION_PRIORITY_BALANCED</code></a>.</div> +</li> +</ul> +<a name="HIGH"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>HIGH</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a> HIGH</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#CONNECTION_PRIORITY_HIGH" title="class or interface in android.bluetooth"><code>BluetoothGatt.CONNECTION_PRIORITY_HIGH</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleConnectionPriority c : BleConnectionPriority.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="getNativeMode--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getNativeMode</h4> +<pre>public int getNativeMode()</pre> +<div class="block">Returns one of the static final int members of <a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue"><code>BleConnectionPriority</code></a> whose name starts with CONNECTION_PRIORITY_.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleConnectionPriority.html" target="_top">Frames</a></li> +<li><a href="BleConnectionPriority.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDescriptor.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDescriptor.html new file mode 100644 index 0000000000000000000000000000000000000000..9f1eb58c3968efcdb3e20c417e1b0e4c2bda1ddb --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDescriptor.html @@ -0,0 +1,257 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleDescriptor (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDescriptor (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDescriptor.html" target="_top">Frames</a></li> +<li><a href="BleDescriptor.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleDescriptor" class="title">Class BleDescriptor</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDescriptor</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">BleDescriptor</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Proxy of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor</code></a> to force stricter compile-time checks and order of operations + when creating descriptors for <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServices.html" title="class in com.idevicesinc.sweetblue"><code>BleServices</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDescriptor.html#BleDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDescriptorPermission...-">BleDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a>... permissions)</code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDescriptor.html#BleDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDescriptorPermission-">BleDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a> permission)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="BleDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDescriptorPermission-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleDescriptor</h4> +<pre>public BleDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a> permission)</pre> +</li> +</ul> +<a name="BleDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDescriptorPermission...-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BleDescriptor</h4> +<pre>public BleDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a>... permissions)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDescriptor.html" target="_top">Frames</a></li> +<li><a href="BleDescriptor.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDescriptorPermission.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDescriptorPermission.html new file mode 100644 index 0000000000000000000000000000000000000000..f30f3b2a06a6c8e22d403d0e33283eec5b25b528 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDescriptorPermission.html @@ -0,0 +1,529 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleDescriptorPermission (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDescriptorPermission (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDescriptorPermission.html" target="_top">Frames</a></li> +<li><a href="BleDescriptorPermission.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleDescriptorPermission" class="title">Enum BleDescriptorPermission</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDescriptorPermission</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a>></dd> +</dl> +<hr> +<br> +<pre>public enum <span class="typeNameLabel">BleDescriptorPermission</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></pre> +<div class="block">This enum enforces compile-time constraints over various public static int PERMISSION_ members + of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html#READ">READ</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true#PERMISSION_READ" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor.PERMISSION_READ</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html#READ_ENCRYPTED">READ_ENCRYPTED</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true#PERMISSION_READ_ENCRYPTED" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor.PERMISSION_READ_ENCRYPTED</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html#READ_ENCRYPTED_MITM">READ_ENCRYPTED_MITM</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true#PERMISSION_READ_ENCRYPTED_MITM" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor.PERMISSION_READ_ENCRYPTED_MITM</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html#WRITE">WRITE</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true#PERMISSION_WRITE" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor.PERMISSION_WRITE</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html#WRITE_ENCRYPTED">WRITE_ENCRYPTED</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true#PERMISSION_WRITE_ENCRYPTED" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor.PERMISSION_WRITE_ENCRYPTED</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html#WRITE_ENCRYPTED_MITM">WRITE_ENCRYPTED_MITM</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true#PERMISSION_WRITE_ENCRYPTED_MITM" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor.PERMISSION_WRITE_ENCRYPTED_MITM</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html#WRITE_SIGNED">WRITE_SIGNED</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true#PERMISSION_WRITE_SIGNED" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor.PERMISSION_WRITE_SIGNED</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html#WRITE_SIGNED_MITM">WRITE_SIGNED_MITM</a></span></code> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true#PERMISSION_WRITE_SIGNED_MITM" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor.PERMISSION_WRITE_SIGNED_MITM</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html#bit--">bit</a></span>()</code> +<div class="block">Returns the bit (0x1, 0x2, 0x4, etc.) this enum represents based on the <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--"><code>BitwiseEnum.ordinal()</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a> state)</code> +<div class="block">Does a bitwise OR for this state and the given state.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html#or-int-">or</a></span>(int bits)</code> +<div class="block">Does a bitwise OR for this state and the given bits.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html#overlaps-int-">overlaps</a></span>(int mask)</code> +<div class="block">Convenience method for checking if <code>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--"><code>BitwiseEnum.bit()</code></a> & mask) != 0x0</code>.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.BitwiseEnum"> +<!-- --> +</a> +<h3>Methods inherited from interface com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#name--">name</a>, <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--">ordinal</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="READ"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>READ</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a> READ</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true#PERMISSION_READ" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor.PERMISSION_READ</code></a>.</div> +</li> +</ul> +<a name="READ_ENCRYPTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>READ_ENCRYPTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a> READ_ENCRYPTED</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true#PERMISSION_READ_ENCRYPTED" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor.PERMISSION_READ_ENCRYPTED</code></a>.</div> +</li> +</ul> +<a name="READ_ENCRYPTED_MITM"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>READ_ENCRYPTED_MITM</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a> READ_ENCRYPTED_MITM</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true#PERMISSION_READ_ENCRYPTED_MITM" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor.PERMISSION_READ_ENCRYPTED_MITM</code></a>.</div> +</li> +</ul> +<a name="WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WRITE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a> WRITE</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true#PERMISSION_WRITE" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor.PERMISSION_WRITE</code></a>.</div> +</li> +</ul> +<a name="WRITE_ENCRYPTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WRITE_ENCRYPTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a> WRITE_ENCRYPTED</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true#PERMISSION_WRITE_ENCRYPTED" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor.PERMISSION_WRITE_ENCRYPTED</code></a>.</div> +</li> +</ul> +<a name="WRITE_ENCRYPTED_MITM"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WRITE_ENCRYPTED_MITM</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a> WRITE_ENCRYPTED_MITM</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true#PERMISSION_WRITE_ENCRYPTED_MITM" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor.PERMISSION_WRITE_ENCRYPTED_MITM</code></a>.</div> +</li> +</ul> +<a name="WRITE_SIGNED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WRITE_SIGNED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a> WRITE_SIGNED</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true#PERMISSION_WRITE_SIGNED" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor.PERMISSION_WRITE_SIGNED</code></a>.</div> +</li> +</ul> +<a name="WRITE_SIGNED_MITM"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>WRITE_SIGNED_MITM</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a> WRITE_SIGNED_MITM</pre> +<div class="block">Strict typing for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true#PERMISSION_WRITE_SIGNED_MITM" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor.PERMISSION_WRITE_SIGNED_MITM</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleDescriptorPermission c : BleDescriptorPermission.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="or-com.idevicesinc.sweetblue.utils.BitwiseEnum-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>or</h4> +<pre>public int or(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a> state)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">BitwiseEnum</a></code></span></div> +<div class="block">Does a bitwise OR for this state and the given state.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="or-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>or</h4> +<pre>public int or(int bits)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-int-">BitwiseEnum</a></code></span></div> +<div class="block">Does a bitwise OR for this state and the given bits.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-int-">or</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="bit--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bit</h4> +<pre>public int bit()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--">BitwiseEnum</a></code></span></div> +<div class="block">Returns the bit (0x1, 0x2, 0x4, etc.) this enum represents based on the <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--"><code>BitwiseEnum.ordinal()</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--">bit</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="overlaps-int-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>overlaps</h4> +<pre>public boolean overlaps(int mask)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#overlaps-int-">BitwiseEnum</a></code></span></div> +<div class="block">Convenience method for checking if <code>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--"><code>BitwiseEnum.bit()</code></a> & mask) != 0x0</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#overlaps-int-">overlaps</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDescriptorPermission.html" target="_top">Frames</a></li> +<li><a href="BleDescriptorPermission.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..f870993555250f7424a519693c2426212f090962 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html @@ -0,0 +1,402 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleDevice.BondListener.BondEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDevice.BondListener.BondEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" target="_top">Frames</a></li> +<li><a href="BleDevice.BondListener.BondEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleDevice.BondListener.BondEvent" class="title">Class BleDevice.BondListener.BondEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDevice.BondListener.BondEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.BondListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleDevice.BondListener.BondEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.BondListener.BondEvent-"><code>BleDevice.BondListener.onEvent(BondEvent)</code></a> to provide more information about a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>BleDevice.bond()</code></a> attempt.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#device--">device</a></span>()</code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> that attempted to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>BleDevice.bond()</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#failReason--">failReason</a></span>()</code> +<div class="block">If <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#status--"><code>status()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#FAILED_EVENTUALLY"><code>BleDevice.BondListener.Status.FAILED_EVENTUALLY</code></a>, this integer will + be one of the values enumerated in <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothDevice</code></a> that start with <code>UNBOND_REASON</code> such as + <a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_AUTH_FAILED"><code>BleStatuses.UNBOND_REASON_AUTH_FAILED</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#intent--">intent</a></span>()</code> +<div class="block">Tells whether the bond was created through an explicit call through SweetBlue, or otherwise.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#macAddress--">macAddress</a></span>()</code> +<div class="block">Convience to return the mac address of <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#device--"><code>device()</code></a>.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#status--">status</a></span>()</code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener.Status</code></a> associated with this event.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#wasCancelled--">wasCancelled</a></span>()</code> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#wasCancelled--"><code>BleDevice.ConnectionFailListener.Status.wasCancelled()</code></a>.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#wasSuccess--">wasSuccess</a></span>()</code> +<div class="block">Shortcut for checking if <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#status--"><code>status()</code></a> == <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#SUCCESS"><code>BleDevice.BondListener.Status.SUCCESS</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="device--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>device</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device()</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> that attempted to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>BleDevice.bond()</code></a>.</div> +</li> +</ul> +<a name="macAddress--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>macAddress</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress()</pre> +<div class="block">Convience to return the mac address of <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#device--"><code>device()</code></a>.</div> +</li> +</ul> +<a name="status--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>status</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a> status()</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener.Status</code></a> associated with this event.</div> +</li> +</ul> +<a name="failReason--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>failReason</h4> +<pre>public int failReason()</pre> +<div class="block">If <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#status--"><code>status()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#FAILED_EVENTUALLY"><code>BleDevice.BondListener.Status.FAILED_EVENTUALLY</code></a>, this integer will + be one of the values enumerated in <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothDevice</code></a> that start with <code>UNBOND_REASON</code> such as + <a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_AUTH_FAILED"><code>BleStatuses.UNBOND_REASON_AUTH_FAILED</code></a>. Otherwise it will be equal to <a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#BOND_FAIL_REASON_NOT_APPLICABLE"><code>BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE</code></a>. + See also a publically accessible list in <a href="../../../com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue"><code>BleStatuses</code></a>.</div> +</li> +</ul> +<a name="intent--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>intent</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a> intent()</pre> +<div class="block">Tells whether the bond was created through an explicit call through SweetBlue, or otherwise. If + <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#INTENTIONAL"><code>State.ChangeIntent.INTENTIONAL</code></a>, then <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>BleDevice.bond()</code></a> (or overloads) were called. If <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#UNINTENTIONAL"><code>State.ChangeIntent.UNINTENTIONAL</code></a>, + then the bond was created "spontaneously" as far as SweetBlue is concerned, whether through another app, the OS Bluetooth + settings, or maybe from a request by the remote BLE device itself.</div> +</li> +</ul> +<a name="wasSuccess--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>wasSuccess</h4> +<pre>public boolean wasSuccess()</pre> +<div class="block">Shortcut for checking if <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#status--"><code>status()</code></a> == <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#SUCCESS"><code>BleDevice.BondListener.Status.SUCCESS</code></a>.</div> +</li> +</ul> +<a name="wasCancelled--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>wasCancelled</h4> +<pre>public boolean wasCancelled()</pre> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#wasCancelled--"><code>BleDevice.ConnectionFailListener.Status.wasCancelled()</code></a>.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">UsesCustomNull</a></code></span></div> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" target="_top">Frames</a></li> +<li><a href="BleDevice.BondListener.BondEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html new file mode 100644 index 0000000000000000000000000000000000000000..9754b531a64fe94a82a5513731a70b94f5f78302 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html @@ -0,0 +1,505 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleDevice.BondListener.Status (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDevice.BondListener.Status (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9,"i2":9,"i3":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" target="_top">Frames</a></li> +<li><a href="BleDevice.BondListener.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleDevice.BondListener.Status" class="title">Enum BleDevice.BondListener.Status</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDevice.BondListener.Status</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.BondListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleDevice.BondListener.Status</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">Used on <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#status--"><code>BleDevice.BondListener.BondEvent.status()</code></a> to roughly enumerate success or failure.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#ALREADY_BONDING_OR_BONDED">ALREADY_BONDING_OR_BONDED</a></span></code> +<div class="block">Already <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDED"><code>BleDeviceState.BONDED</code></a> or in the process of <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDING"><code>BleDeviceState.BONDING</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#CANCELLED_FROM_BLE_TURNING_OFF">CANCELLED_FROM_BLE_TURNING_OFF</a></span></code> +<div class="block">Cancelled from <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> going <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#TURNING_OFF"><code>BleManagerState.TURNING_OFF</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>, probably from calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#CANCELLED_FROM_UNBOND">CANCELLED_FROM_UNBOND</a></span></code> +<div class="block">A call was made to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#unbond--"><code>BleDevice.unbond()</code></a> at some point during the bonding process.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#FAILED_EVENTUALLY">FAILED_EVENTUALLY</a></span></code> +<div class="block">We received a <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#ACTION_BOND_STATE_CHANGED" title="class or interface in android.bluetooth"><code>BluetoothDevice.ACTION_BOND_STATE_CHANGED</code></a> through our internal <a href="http://d.android.com/reference/android/content/BroadcastReceiver.html?is-external=true" title="class or interface in android.content"><code>BroadcastReceiver</code></a> that we went from + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDING"><code>BleDeviceState.BONDING</code></a> back to <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#UNBONDED"><code>BleDeviceState.UNBONDED</code></a>, which means the attempt failed.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#FAILED_IMMEDIATELY">FAILED_IMMEDIATELY</a></span></code> +<div class="block">The call to <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#createBond--" title="class or interface in android.bluetooth"><code>BluetoothDevice.createBond()</code></a> returned <code>false</code> and thus failed immediately.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#NULL">NULL</a></span></code> +<div class="block">Fulfills soft contract of <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#NULL_DEVICE">NULL_DEVICE</a></span></code> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond-com.idevicesinc.sweetblue.BleDevice.BondListener-"><code>BleDevice.bond(BondListener)</code></a> (or overloads) was called on <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#SUCCESS">SUCCESS</a></span></code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>BleDevice.bond()</code></a> call succeeded.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#TIMED_OUT">TIMED_OUT</a></span></code> +<div class="block">The bond operation took longer than the time set in <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter"><code>BleNodeConfig.taskTimeoutRequestFilter</code></a> so we cut it loose.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#wasCancelled--">wasCancelled</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a> NULL</pre> +<div class="block">Fulfills soft contract of <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#isNull--"><code>isNull().</code></a></dd> +</dl> +</li> +</ul> +<a name="SUCCESS"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SUCCESS</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a> SUCCESS</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>BleDevice.bond()</code></a> call succeeded.</div> +</li> +</ul> +<a name="NULL_DEVICE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL_DEVICE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a> NULL_DEVICE</pre> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond-com.idevicesinc.sweetblue.BleDevice.BondListener-"><code>BleDevice.bond(BondListener)</code></a> (or overloads) was called on <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a>.</div> +</li> +</ul> +<a name="ALREADY_BONDING_OR_BONDED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ALREADY_BONDING_OR_BONDED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a> ALREADY_BONDING_OR_BONDED</pre> +<div class="block">Already <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDED"><code>BleDeviceState.BONDED</code></a> or in the process of <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDING"><code>BleDeviceState.BONDING</code></a>.</div> +</li> +</ul> +<a name="FAILED_IMMEDIATELY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>FAILED_IMMEDIATELY</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a> FAILED_IMMEDIATELY</pre> +<div class="block">The call to <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#createBond--" title="class or interface in android.bluetooth"><code>BluetoothDevice.createBond()</code></a> returned <code>false</code> and thus failed immediately.</div> +</li> +</ul> +<a name="FAILED_EVENTUALLY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>FAILED_EVENTUALLY</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a> FAILED_EVENTUALLY</pre> +<div class="block">We received a <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#ACTION_BOND_STATE_CHANGED" title="class or interface in android.bluetooth"><code>BluetoothDevice.ACTION_BOND_STATE_CHANGED</code></a> through our internal <a href="http://d.android.com/reference/android/content/BroadcastReceiver.html?is-external=true" title="class or interface in android.content"><code>BroadcastReceiver</code></a> that we went from + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDING"><code>BleDeviceState.BONDING</code></a> back to <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#UNBONDED"><code>BleDeviceState.UNBONDED</code></a>, which means the attempt failed. + See <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#failReason--"><code>BleDevice.BondListener.BondEvent.failReason()</code></a> for more information.</div> +</li> +</ul> +<a name="TIMED_OUT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>TIMED_OUT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a> TIMED_OUT</pre> +<div class="block">The bond operation took longer than the time set in <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter"><code>BleNodeConfig.taskTimeoutRequestFilter</code></a> so we cut it loose.</div> +</li> +</ul> +<a name="CANCELLED_FROM_UNBOND"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CANCELLED_FROM_UNBOND</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a> CANCELLED_FROM_UNBOND</pre> +<div class="block">A call was made to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#unbond--"><code>BleDevice.unbond()</code></a> at some point during the bonding process.</div> +</li> +</ul> +<a name="CANCELLED_FROM_BLE_TURNING_OFF"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>CANCELLED_FROM_BLE_TURNING_OFF</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a> CANCELLED_FROM_BLE_TURNING_OFF</pre> +<div class="block">Cancelled from <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> going <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#TURNING_OFF"><code>BleManagerState.TURNING_OFF</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>, probably from calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleDevice.BondListener.Status c : BleDevice.BondListener.Status.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="wasCancelled--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>wasCancelled</h4> +<pre>public boolean wasCancelled()</pre> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> for <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#CANCELLED_FROM_BLE_TURNING_OFF"><code>CANCELLED_FROM_BLE_TURNING_OFF</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#CANCELLED_FROM_UNBOND"><code>CANCELLED_FROM_UNBOND</code></a>.</dd> +</dl> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">UsesCustomNull</a></code></span></div> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if <code>this</code> == <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#NULL"><code>NULL</code></a>.</dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" target="_top">Frames</a></li> +<li><a href="BleDevice.BondListener.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.BondListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.BondListener.html new file mode 100644 index 0000000000000000000000000000000000000000..b8945cd45639ae45dcb5c43acf255d3cbc7e2baa --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.BondListener.html @@ -0,0 +1,256 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleDevice.BondListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDevice.BondListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.BondListener.html" target="_top">Frames</a></li> +<li><a href="BleDevice.BondListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleDevice.BondListener" class="title">Interface BleDevice.BondListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleDevice.BondListener</span></pre> +<div class="block">Pass an instance of this listener to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_Bond-com.idevicesinc.sweetblue.BleDevice.BondListener-"><code>BleDevice.setListener_Bond(BondListener)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond-com.idevicesinc.sweetblue.BleDevice.BondListener-"><code>BleDevice.bond(BondListener)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a></span></code> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.BondListener.BondEvent-"><code>onEvent(BondEvent)</code></a> to provide more information about a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>BleDevice.bond()</code></a> attempt.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a></span></code> +<div class="block">Used on <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#status--"><code>BleDevice.BondListener.BondEvent.status()</code></a> to roughly enumerate success or failure.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.BondListener.BondEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a> e)</code> +<div class="block">Called after a call to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond-com.idevicesinc.sweetblue.BleDevice.BondListener-"><code>BleDevice.bond(BondListener)</code></a> (or overloads), + or when bonding through another app or the operating system settings.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleDevice.BondListener.BondEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>void onEvent(<a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a> e)</pre> +<div class="block">Called after a call to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond-com.idevicesinc.sweetblue.BleDevice.BondListener-"><code>BleDevice.bond(BondListener)</code></a> (or overloads), + or when bonding through another app or the operating system settings.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.BondListener.html" target="_top">Frames</a></li> +<li><a href="BleDevice.BondListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..64f2a3e2291c5e81515589e4081710b7bfdc0161 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html @@ -0,0 +1,469 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleDevice.ConnectionFailListener.ConnectionFailEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDevice.ConnectionFailListener.ConnectionFailEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" target="_top">Frames</a></li> +<li><a href="BleDevice.ConnectionFailListener.ConnectionFailEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleDevice.ConnectionFailListener.ConnectionFailEvent" class="title">Class BleDevice.ConnectionFailListener.ConnectionFailEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">com.idevicesinc.sweetblue.BleNode.ConnectionFailListener.ConnectionFailEvent</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleDevice.ConnectionFailListener.ConnectionFailEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.ConnectionFailEvent</a> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">Structure passed to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(ConnectionFailEvent)</code></a> to provide more info about how/why the connection failed.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#bondFailReason--">bondFailReason</a></span>()</code> +<div class="block">See <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#failReason--"><code>BleDevice.BondListener.BondEvent.failReason()</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#device--">device</a></span>()</code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> this <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent</code></a> is for.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#highestStateReached_latest--">highestStateReached_latest</a></span>()</code> +<div class="block">The highest state reached by the latest connection attempt.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#highestStateReached_total--">highestStateReached_total</a></span>()</code> +<div class="block">The highest state reached during the whole connection attempt cycle.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#history--">history</a></span>()</code> +<div class="block">Returns a chronologically-ordered list of all <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent</code></a> instances returned through + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(ConnectionFailEvent)</code></a> since the first call to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a>, + including the current instance.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns whether this <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent</code></a> instance is a "dummy" value.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#macAddress--">macAddress</a></span>()</code> +<div class="block">Convience to return the mac address of <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#device--"><code>device()</code></a>.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#shouldBeReportedToUser--">shouldBeReportedToUser</a></span>()</code> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#shouldBeReportedToUser--"><code>BleDevice.ConnectionFailListener.Status.shouldBeReportedToUser()</code></a> using <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#status--"><code>status()</code></a>.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#status--">status</a></span>()</code> +<div class="block">General reason why the connection failed.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#timing--">timing</a></span>()</code> +<div class="block">Further timing information for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#NATIVE_CONNECTION_FAILED"><code>BleDevice.ConnectionFailListener.Status.NATIVE_CONNECTION_FAILED</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#BONDING_FAILED"><code>BleDevice.ConnectionFailListener.Status.BONDING_FAILED</code></a>, and <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#DISCOVERING_SERVICES_FAILED"><code>BleDevice.ConnectionFailListener.Status.DISCOVERING_SERVICES_FAILED</code></a>.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#txnFailReason--">txnFailReason</a></span>()</code> +<div class="block">If <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#status--"><code>status()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#AUTHENTICATION_FAILED"><code>BleDevice.ConnectionFailListener.Status.AUTHENTICATION_FAILED</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#INITIALIZATION_FAILED"><code>BleDevice.ConnectionFailListener.Status.INITIALIZATION_FAILED</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--"><code>BleTransaction.fail()</code></a> was called somewhere in or + downstream of <a href="../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html#onEvent-T_Event-"><code>GenericListener_Void.onEvent(Event)</code></a>, then the <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> passed there will be returned + here.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.BleNode.ConnectionFailListener.ConnectionFailEvent"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.ConnectionFailEvent</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#attemptTime_latest--">attemptTime_latest</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#attemptTime_total--">attemptTime_total</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#autoConnectUsage--">autoConnectUsage</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#failureCountSoFar--">failureCountSoFar</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#gattStatus--">gattStatus</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="device--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>device</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device()</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> this <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent</code></a> is for.</div> +</li> +</ul> +<a name="macAddress--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>macAddress</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress()</pre> +<div class="block">Convience to return the mac address of <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#device--"><code>device()</code></a>.</div> +</li> +</ul> +<a name="status--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>status</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a> status()</pre> +<div class="block">General reason why the connection failed.</div> +</li> +</ul> +<a name="bondFailReason--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bondFailReason</h4> +<pre>public int bondFailReason()</pre> +<div class="block">See <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#failReason--"><code>BleDevice.BondListener.BondEvent.failReason()</code></a>.</div> +</li> +</ul> +<a name="highestStateReached_latest--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>highestStateReached_latest</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> highestStateReached_latest()</pre> +<div class="block">The highest state reached by the latest connection attempt.</div> +</li> +</ul> +<a name="highestStateReached_total--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>highestStateReached_total</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> highestStateReached_total()</pre> +<div class="block">The highest state reached during the whole connection attempt cycle. + <br><br> + TIP: You can use this to keep the visual feedback in your connection progress UI "bookmarked" while the connection retries + and goes through previous states again.</div> +</li> +</ul> +<a name="timing--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>timing</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a> timing()</pre> +<div class="block">Further timing information for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#NATIVE_CONNECTION_FAILED"><code>BleDevice.ConnectionFailListener.Status.NATIVE_CONNECTION_FAILED</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#BONDING_FAILED"><code>BleDevice.ConnectionFailListener.Status.BONDING_FAILED</code></a>, and <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#DISCOVERING_SERVICES_FAILED"><code>BleDevice.ConnectionFailListener.Status.DISCOVERING_SERVICES_FAILED</code></a>.</div> +</li> +</ul> +<a name="txnFailReason--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>txnFailReason</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> txnFailReason()</pre> +<div class="block">If <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#status--"><code>status()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#AUTHENTICATION_FAILED"><code>BleDevice.ConnectionFailListener.Status.AUTHENTICATION_FAILED</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#INITIALIZATION_FAILED"><code>BleDevice.ConnectionFailListener.Status.INITIALIZATION_FAILED</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--"><code>BleTransaction.fail()</code></a> was called somewhere in or + downstream of <a href="../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html#onEvent-T_Event-"><code>GenericListener_Void.onEvent(Event)</code></a>, then the <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> passed there will be returned + here. Otherwise, this will return a <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> for which <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isNull--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.isNull()</code></a> returns <code>true</code>.</div> +</li> +</ul> +<a name="history--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>history</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a>[] history()</pre> +<div class="block">Returns a chronologically-ordered list of all <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent</code></a> instances returned through + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(ConnectionFailEvent)</code></a> since the first call to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a>, + including the current instance. Thus this list will always have at least a length of one (except if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#isNull--"><code>isNull()</code></a> is <code>true</code>). + The list length is "reset" back to one whenever a <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING_OVERALL"><code>BleDeviceState.CONNECTING_OVERALL</code></a> operation completes, either + through becoming <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZED"><code>BleDeviceState.INITIALIZED</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a> for good.</div> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block">Returns whether this <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent</code></a> instance is a "dummy" value. For now used for + <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#connectionFailEvent--"><code>BleNodeConfig.ReconnectFilter.ReconnectEvent.connectionFailEvent()</code></a> in certain situations.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +<a name="shouldBeReportedToUser--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>shouldBeReportedToUser</h4> +<pre>public boolean shouldBeReportedToUser()</pre> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#shouldBeReportedToUser--"><code>BleDevice.ConnectionFailListener.Status.shouldBeReportedToUser()</code></a> using <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#status--"><code>status()</code></a>.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" target="_top">Frames</a></li> +<li><a href="BleDevice.ConnectionFailListener.ConnectionFailEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html new file mode 100644 index 0000000000000000000000000000000000000000..cc5ba1661f31410f8faaa5cf6a0f45ca5b7b8304 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html @@ -0,0 +1,592 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleDevice.ConnectionFailListener.Status (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDevice.ConnectionFailListener.Status (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":9,"i5":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" target="_top">Frames</a></li> +<li><a href="BleDevice.ConnectionFailListener.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleDevice.ConnectionFailListener.Status" class="title">Enum BleDevice.ConnectionFailListener.Status</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.Status</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleDevice.ConnectionFailListener.Status</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">The reason for the connection failure.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#ALREADY_CONNECTING_OR_CONNECTED">ALREADY_CONNECTING_OR_CONNECTED</a></span></code> +<div class="block">A call was made to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> or its overloads + but <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#device--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.device()</code></a> is already + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING"><code>BleDeviceState.CONNECTING</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#AUTHENTICATION_FAILED">AUTHENTICATION_FAILED</a></span></code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleTransaction</code></a> instance passed to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>BleDevice.connect(BleTransaction.Auth)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Auth, BleTransaction.Init)</code></a> failed through <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--"><code>BleTransaction.fail()</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#BLE_TURNING_OFF">BLE_TURNING_OFF</a></span></code> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOff--"><code>BleManager.turnOff()</code></a> (or + overloads) were called sometime during the connection process.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#BONDING_FAILED">BONDING_FAILED</a></span></code> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#createBond--" title="class or interface in android.bluetooth"><code>BluetoothDevice.createBond()</code></a> either (a) <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#IMMEDIATELY"><code>BleDevice.ConnectionFailListener.Timing.IMMEDIATELY</code></a> returned <code>false</code>, + (b) <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#EVENTUALLY"><code>BleDevice.ConnectionFailListener.Timing.EVENTUALLY</code></a> returned a bad <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#bondFailReason--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.bondFailReason()</code></a>, or (c) <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#TIMED_OUT"><code>BleDevice.ConnectionFailListener.Timing.TIMED_OUT</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#DISCOVERING_SERVICES_FAILED">DISCOVERING_SERVICES_FAILED</a></span></code> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#discoverServices--" title="class or interface in android.bluetooth"><code>BluetoothGatt.discoverServices()</code></a> either (a) <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#IMMEDIATELY"><code>BleDevice.ConnectionFailListener.Timing.IMMEDIATELY</code></a> returned <code>false</code>, + (b) <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#EVENTUALLY"><code>BleDevice.ConnectionFailListener.Timing.EVENTUALLY</code></a> returned a bad <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#gattStatus--"><code>BleNode.ConnectionFailListener.ConnectionFailEvent.gattStatus()</code></a>, or (c) <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#TIMED_OUT"><code>BleDevice.ConnectionFailListener.Timing.TIMED_OUT</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#EXPLICIT_DISCONNECT">EXPLICIT_DISCONNECT</a></span></code> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disconnect--"><code>BleDevice.disconnect()</code></a> was called sometime during the connection process.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#INITIALIZATION_FAILED">INITIALIZATION_FAILED</a></span></code> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleTransaction</code></a> instance passed to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Init)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Auth, BleTransaction.Init)</code></a> failed through <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--"><code>BleTransaction.fail()</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#NATIVE_CONNECTION_FAILED">NATIVE_CONNECTION_FAILED</a></span></code> +<div class="block">Couldn't connect through <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#connectGatt-android.content.Context-boolean-android.bluetooth.BluetoothGattCallback-" title="class or interface in android.bluetooth"><code>BluetoothDevice.connectGatt(android.content.Context, boolean, BluetoothGattCallback)</code></a> + because it (a) <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#IMMEDIATELY"><code>BleDevice.ConnectionFailListener.Timing.IMMEDIATELY</code></a> returned <code>null</code>, (b) <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#EVENTUALLY"><code>BleDevice.ConnectionFailListener.Timing.EVENTUALLY</code></a> returned a bad + <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#gattStatus--"><code>BleNode.ConnectionFailListener.ConnectionFailEvent.gattStatus()</code></a>, or (c) <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#TIMED_OUT"><code>BleDevice.ConnectionFailListener.Timing.TIMED_OUT</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#NULL">NULL</a></span></code> +<div class="block">Used in place of Java's built-in <code>null</code> wherever needed.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#NULL_DEVICE">NULL_DEVICE</a></span></code> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> (or various overloads) was called on <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#ROGUE_DISCONNECT">ROGUE_DISCONNECT</a></span></code> +<div class="block">Remote peripheral randomly disconnected sometime during the connection process.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#allowsRetry--">allowsRetry</a></span>()</code> +<div class="block">Whether this status honors a <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#isRetry--"><code>BleNode.ConnectionFailListener.Please.isRetry()</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#shouldBeReportedToUser--">shouldBeReportedToUser</a></span>()</code> +<div class="block">Convenience method that returns whether this status is something that your app user would usually care about.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#wasCancelled--">wasCancelled</a></span>()</code> +<div class="block">Returns true for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#EXPLICIT_DISCONNECT"><code>EXPLICIT_DISCONNECT</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#BLE_TURNING_OFF"><code>BLE_TURNING_OFF</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a> NULL</pre> +<div class="block">Used in place of Java's built-in <code>null</code> wherever needed. As of now, the <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#status--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.status()</code></a> given + to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(ConnectionFailEvent)</code></a> will *never* be <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#NULL"><code>NULL</code></a>.</div> +</li> +</ul> +<a name="ALREADY_CONNECTING_OR_CONNECTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ALREADY_CONNECTING_OR_CONNECTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a> ALREADY_CONNECTING_OR_CONNECTED</pre> +<div class="block">A call was made to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> or its overloads + but <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#device--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.device()</code></a> is already + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING"><code>BleDeviceState.CONNECTING</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>.</div> +</li> +</ul> +<a name="NULL_DEVICE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL_DEVICE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a> NULL_DEVICE</pre> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> (or various overloads) was called on <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a>.</div> +</li> +</ul> +<a name="NATIVE_CONNECTION_FAILED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NATIVE_CONNECTION_FAILED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a> NATIVE_CONNECTION_FAILED</pre> +<div class="block">Couldn't connect through <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#connectGatt-android.content.Context-boolean-android.bluetooth.BluetoothGattCallback-" title="class or interface in android.bluetooth"><code>BluetoothDevice.connectGatt(android.content.Context, boolean, BluetoothGattCallback)</code></a> + because it (a) <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#IMMEDIATELY"><code>BleDevice.ConnectionFailListener.Timing.IMMEDIATELY</code></a> returned <code>null</code>, (b) <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#EVENTUALLY"><code>BleDevice.ConnectionFailListener.Timing.EVENTUALLY</code></a> returned a bad + <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#gattStatus--"><code>BleNode.ConnectionFailListener.ConnectionFailEvent.gattStatus()</code></a>, or (c) <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#TIMED_OUT"><code>BleDevice.ConnectionFailListener.Timing.TIMED_OUT</code></a>.</div> +</li> +</ul> +<a name="DISCOVERING_SERVICES_FAILED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DISCOVERING_SERVICES_FAILED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a> DISCOVERING_SERVICES_FAILED</pre> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#discoverServices--" title="class or interface in android.bluetooth"><code>BluetoothGatt.discoverServices()</code></a> either (a) <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#IMMEDIATELY"><code>BleDevice.ConnectionFailListener.Timing.IMMEDIATELY</code></a> returned <code>false</code>, + (b) <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#EVENTUALLY"><code>BleDevice.ConnectionFailListener.Timing.EVENTUALLY</code></a> returned a bad <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#gattStatus--"><code>BleNode.ConnectionFailListener.ConnectionFailEvent.gattStatus()</code></a>, or (c) <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#TIMED_OUT"><code>BleDevice.ConnectionFailListener.Timing.TIMED_OUT</code></a>.</div> +</li> +</ul> +<a name="BONDING_FAILED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BONDING_FAILED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a> BONDING_FAILED</pre> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#createBond--" title="class or interface in android.bluetooth"><code>BluetoothDevice.createBond()</code></a> either (a) <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#IMMEDIATELY"><code>BleDevice.ConnectionFailListener.Timing.IMMEDIATELY</code></a> returned <code>false</code>, + (b) <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#EVENTUALLY"><code>BleDevice.ConnectionFailListener.Timing.EVENTUALLY</code></a> returned a bad <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#bondFailReason--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.bondFailReason()</code></a>, or (c) <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#TIMED_OUT"><code>BleDevice.ConnectionFailListener.Timing.TIMED_OUT</code></a>. + <br><br> + NOTE: <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#bondingFailFailsConnection"><code>BleDeviceConfig.bondingFailFailsConnection</code></a> must be <code>true</code> for this <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener.Status</code></a> to be applicable.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.BondListener</code></a></dd> +</dl> +</li> +</ul> +<a name="AUTHENTICATION_FAILED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>AUTHENTICATION_FAILED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a> AUTHENTICATION_FAILED</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleTransaction</code></a> instance passed to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>BleDevice.connect(BleTransaction.Auth)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Auth, BleTransaction.Init)</code></a> failed through <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--"><code>BleTransaction.fail()</code></a>.</div> +</li> +</ul> +<a name="INITIALIZATION_FAILED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>INITIALIZATION_FAILED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a> INITIALIZATION_FAILED</pre> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleTransaction</code></a> instance passed to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Init)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Auth, BleTransaction.Init)</code></a> failed through <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--"><code>BleTransaction.fail()</code></a>.</div> +</li> +</ul> +<a name="ROGUE_DISCONNECT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ROGUE_DISCONNECT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a> ROGUE_DISCONNECT</pre> +<div class="block">Remote peripheral randomly disconnected sometime during the connection process. Similar to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#NATIVE_CONNECTION_FAILED"><code>NATIVE_CONNECTION_FAILED</code></a> + but only occurs after the device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a> and we're going through + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCOVERING_SERVICES"><code>BleDeviceState.DISCOVERING_SERVICES</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#AUTHENTICATING"><code>BleDeviceState.AUTHENTICATING</code></a>, or what have you. It might + be from the device turning off, or going out of range, or any other random reason.</div> +</li> +</ul> +<a name="EXPLICIT_DISCONNECT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>EXPLICIT_DISCONNECT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a> EXPLICIT_DISCONNECT</pre> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disconnect--"><code>BleDevice.disconnect()</code></a> was called sometime during the connection process.</div> +</li> +</ul> +<a name="BLE_TURNING_OFF"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BLE_TURNING_OFF</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a> BLE_TURNING_OFF</pre> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOff--"><code>BleManager.turnOff()</code></a> (or + overloads) were called sometime during the connection process. + Basic testing reveals that this value will also be used when a + user turns off BLE by going through their OS settings, airplane + mode, etc., but it's not absolutely *certain* that this behavior + is consistent across phones. For example there might be a phone + that kills all connections before going through the ble turn-off + process, in which case SweetBlue doesn't know the difference and + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#ROGUE_DISCONNECT"><code>ROGUE_DISCONNECT</code></a> will be used.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleDevice.ConnectionFailListener.Status c : BleDevice.ConnectionFailListener.Status.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="wasCancelled--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>wasCancelled</h4> +<pre>public boolean wasCancelled()</pre> +<div class="block">Returns true for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#EXPLICIT_DISCONNECT"><code>EXPLICIT_DISCONNECT</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#BLE_TURNING_OFF"><code>BLE_TURNING_OFF</code></a>.</div> +</li> +</ul> +<a name="allowsRetry--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>allowsRetry</h4> +<pre>public boolean allowsRetry()</pre> +<div class="block">Whether this status honors a <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#isRetry--"><code>BleNode.ConnectionFailListener.Please.isRetry()</code></a>. Returns <code>false</code> if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#wasCancelled--"><code>wasCancelled()</code></a> or + <code>this</code> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#ALREADY_CONNECTING_OR_CONNECTED"><code>ALREADY_CONNECTING_OR_CONNECTED</code></a>.</div> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">UsesCustomNull</a></code></span></div> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +<a name="shouldBeReportedToUser--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>shouldBeReportedToUser</h4> +<pre>public boolean shouldBeReportedToUser()</pre> +<div class="block">Convenience method that returns whether this status is something that your app user would usually care about. + If this returns <code>true</code> then perhaps you should pop up a <a href="http://d.android.com/reference/android/widget/Toast.html?is-external=true" title="class or interface in android.widget"><code>Toast</code></a> or something of that nature.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" target="_top">Frames</a></li> +<li><a href="BleDevice.ConnectionFailListener.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html new file mode 100644 index 0000000000000000000000000000000000000000..dce8ba92f0599aba127970071687bee7fa9ca292 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html @@ -0,0 +1,386 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleDevice.ConnectionFailListener.Timing (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDevice.ConnectionFailListener.Timing (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" target="_top">Frames</a></li> +<li><a href="BleDevice.ConnectionFailListener.Timing.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleDevice.ConnectionFailListener.Timing" class="title">Enum BleDevice.ConnectionFailListener.Timing</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.Timing</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleDevice.ConnectionFailListener.Timing</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a>></pre> +<div class="block">For <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#NATIVE_CONNECTION_FAILED"><code>BleDevice.ConnectionFailListener.Status.NATIVE_CONNECTION_FAILED</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#DISCOVERING_SERVICES_FAILED"><code>BleDevice.ConnectionFailListener.Status.DISCOVERING_SERVICES_FAILED</code></a>, and + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#BONDING_FAILED"><code>BleDevice.ConnectionFailListener.Status.BONDING_FAILED</code></a>, gives further timing information on when the failure took place. + For all other reasons, <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#timing--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.timing()</code></a> will be <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#NOT_APPLICABLE"><code>NOT_APPLICABLE</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#EVENTUALLY">EVENTUALLY</a></span></code> +<div class="block">The operation failed in the native stack.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#IMMEDIATELY">IMMEDIATELY</a></span></code> +<div class="block">The operation failed immediately, for example by the native stack method returning <code>false</code> from a method call.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#NOT_APPLICABLE">NOT_APPLICABLE</a></span></code> +<div class="block">For reasons like <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#BLE_TURNING_OFF"><code>BleDevice.ConnectionFailListener.Status.BLE_TURNING_OFF</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#AUTHENTICATION_FAILED"><code>BleDevice.ConnectionFailListener.Status.AUTHENTICATION_FAILED</code></a>, etc.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#TIMED_OUT">TIMED_OUT</a></span></code> +<div class="block">The operation took longer than the time dictated by <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter"><code>BleNodeConfig.taskTimeoutRequestFilter</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="NOT_APPLICABLE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NOT_APPLICABLE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a> NOT_APPLICABLE</pre> +<div class="block">For reasons like <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#BLE_TURNING_OFF"><code>BleDevice.ConnectionFailListener.Status.BLE_TURNING_OFF</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#AUTHENTICATION_FAILED"><code>BleDevice.ConnectionFailListener.Status.AUTHENTICATION_FAILED</code></a>, etc.</div> +</li> +</ul> +<a name="IMMEDIATELY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>IMMEDIATELY</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a> IMMEDIATELY</pre> +<div class="block">The operation failed immediately, for example by the native stack method returning <code>false</code> from a method call.</div> +</li> +</ul> +<a name="EVENTUALLY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>EVENTUALLY</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a> EVENTUALLY</pre> +<div class="block">The operation failed in the native stack. <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#gattStatus--"><code>BleNode.ConnectionFailListener.ConnectionFailEvent.gattStatus()</code></a> + will probably be a positive number if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#status--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.status()</code></a> is + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#NATIVE_CONNECTION_FAILED"><code>BleDevice.ConnectionFailListener.Status.NATIVE_CONNECTION_FAILED</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#DISCOVERING_SERVICES_FAILED"><code>BleDevice.ConnectionFailListener.Status.DISCOVERING_SERVICES_FAILED</code></a>. + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#bondFailReason--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.bondFailReason()</code></a> will probably be a positive number if + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#status--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.status()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#BONDING_FAILED"><code>BleDevice.ConnectionFailListener.Status.BONDING_FAILED</code></a>.</div> +</li> +</ul> +<a name="TIMED_OUT"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>TIMED_OUT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a> TIMED_OUT</pre> +<div class="block">The operation took longer than the time dictated by <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter"><code>BleNodeConfig.taskTimeoutRequestFilter</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleDevice.ConnectionFailListener.Timing c : BleDevice.ConnectionFailListener.Timing.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" target="_top">Frames</a></li> +<li><a href="BleDevice.ConnectionFailListener.Timing.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html new file mode 100644 index 0000000000000000000000000000000000000000..f2eb68d2523841dcd97e184a857d65bca3e0c685 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html @@ -0,0 +1,293 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleDevice.ConnectionFailListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDevice.ConnectionFailListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" target="_top">Frames</a></li> +<li><a href="BleDevice.ConnectionFailListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleDevice.ConnectionFailListener" class="title">Interface BleDevice.ConnectionFailListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Superinterfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener</a></dd> +</dl> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleDevice.DefaultConnectionFailListener</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleDevice.ConnectionFailListener</span> +extends <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener</a></pre> +<div class="block">Provide an implementation of this callback to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>BleDevice.setListener_ConnectionFail(ConnectionFailListener)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.DefaultConnectionFailListener</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>BleDevice.setListener_ConnectionFail(ConnectionFailListener)</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></span></code> +<div class="block">Structure passed to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>onEvent(ConnectionFailEvent)</code></a> to provide more info about how/why the connection failed.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a></span></code> +<div class="block">The reason for the connection failure.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a></span></code> +<div class="block">For <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#NATIVE_CONNECTION_FAILED"><code>BleDevice.ConnectionFailListener.Status.NATIVE_CONNECTION_FAILED</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#DISCOVERING_SERVICES_FAILED"><code>BleDevice.ConnectionFailListener.Status.DISCOVERING_SERVICES_FAILED</code></a>, and + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#BONDING_FAILED"><code>BleDevice.ConnectionFailListener.Status.BONDING_FAILED</code></a>, gives further timing information on when the failure took place.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleNode.ConnectionFailListener"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></code></li> +</ul> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> e)</code> +<div class="block">Return value is ignored if device is either <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a> or reason + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#allowsRetry--"><code>BleDevice.ConnectionFailListener.Status.allowsRetry()</code></a> is <code>false</code>.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a> onEvent(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> e)</pre> +<div class="block">Return value is ignored if device is either <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a> or reason + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#allowsRetry--"><code>BleDevice.ConnectionFailListener.Status.allowsRetry()</code></a> is <code>false</code>. If the device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a> + then authority is deferred to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.ReconnectFilter</code></a>. + <br><br> + Otherwise, this method offers a more convenient way of retrying a connection, as opposed to manually doing it yourself. It also lets + the library handle things in a slightly more optimized/cleaner fashion and so is recommended for that reason also. + <br><br> + NOTE that this callback gets fired *after* <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.StateListener</code></a> lets you know that the device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>. + <br><br> + The time parameters like <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#attemptTime_latest--"><code>BleNode.ConnectionFailListener.ConnectionFailEvent.attemptTime_latest()</code></a> are of optional use to you to decide if connecting again + is worth it. For example if you've been trying to connect for 10 seconds already, chances are that another connection attempt probably won't work.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" target="_top">Frames</a></li> +<li><a href="BleDevice.ConnectionFailListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html new file mode 100644 index 0000000000000000000000000000000000000000..7ceedf6cb547665de4fc45b6dce4785b8db6793b --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html @@ -0,0 +1,436 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDevice.DefaultConnectionFailListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDevice.DefaultConnectionFailListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" target="_top">Frames</a></li> +<li><a href="BleDevice.DefaultConnectionFailListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleDevice.DefaultConnectionFailListener" class="title">Class BleDevice.DefaultConnectionFailListener</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDevice.DefaultConnectionFailListener</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleDevice.DefaultConnectionFailListener</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a></pre> +<div class="block">Default implementation of <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener</code></a> that attempts a certain number of retries. An instance of this class is set by default + for all new <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> instances using <a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html#DEFAULT_CONNECTION_FAIL_RETRY_COUNT"><code>DEFAULT_CONNECTION_FAIL_RETRY_COUNT</code></a>. + Use <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>BleDevice.setListener_ConnectionFail(ConnectionFailListener)</code></a> to override the default behavior.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>BleDevice.setListener_ConnectionFail(ConnectionFailListener)</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleNode.ConnectionFailListener"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></code></li> +</ul> +</li> +</ul> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html#DEFAULT_CONNECTION_FAIL_RETRY_COUNT">DEFAULT_CONNECTION_FAIL_RETRY_COUNT</a></span></code> +<div class="block">The default retry count provided to <a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.DefaultConnectionFailListener</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html#DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT">DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT</a></span></code> +<div class="block">The default connection fail limit past which <a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.DefaultConnectionFailListener</code></a> will start returning <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retryWithAutoConnectTrue--"><code>BleNode.ConnectionFailListener.Please.retryWithAutoConnectTrue()</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html#MAX_RETRY_TIME_FOR_BOND_FAILURE">MAX_RETRY_TIME_FOR_BOND_FAILURE</a></span></code> +<div class="block">The maximum amount of time to keep trying if connection is failing due to (what usually are) transient bonding failures</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html#DefaultConnectionFailListener--">DefaultConnectionFailListener</a></span>()</code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html#DefaultConnectionFailListener-int-int-">DefaultConnectionFailListener</a></span>(int retryCount, + int failCountBeforeUsingAutoConnect)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html#getRetryCount--">getRetryCount</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> e)</code> +<div class="block">Return value is ignored if device is either <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a> or reason + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#allowsRetry--"><code>BleDevice.ConnectionFailListener.Status.allowsRetry()</code></a> is <code>false</code>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="DEFAULT_CONNECTION_FAIL_RETRY_COUNT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_CONNECTION_FAIL_RETRY_COUNT</h4> +<pre>public static final int DEFAULT_CONNECTION_FAIL_RETRY_COUNT</pre> +<div class="block">The default retry count provided to <a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.DefaultConnectionFailListener</code></a>. + So if you were to call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> and all connections failed, in total the + library would try to connect 2+1 times.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.DefaultConnectionFailListener</code></a>, +<a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleDevice.DefaultConnectionFailListener.DEFAULT_CONNECTION_FAIL_RETRY_COUNT">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT</h4> +<pre>public static final int DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT</pre> +<div class="block">The default connection fail limit past which <a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.DefaultConnectionFailListener</code></a> will start returning <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retryWithAutoConnectTrue--"><code>BleNode.ConnectionFailListener.Please.retryWithAutoConnectTrue()</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleDevice.DefaultConnectionFailListener.DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="MAX_RETRY_TIME_FOR_BOND_FAILURE"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>MAX_RETRY_TIME_FOR_BOND_FAILURE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> MAX_RETRY_TIME_FOR_BOND_FAILURE</pre> +<div class="block">The maximum amount of time to keep trying if connection is failing due to (what usually are) transient bonding failures</div> +</li> +</ul> +</li> +</ul> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="DefaultConnectionFailListener--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DefaultConnectionFailListener</h4> +<pre>public DefaultConnectionFailListener()</pre> +</li> +</ul> +<a name="DefaultConnectionFailListener-int-int-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>DefaultConnectionFailListener</h4> +<pre>public DefaultConnectionFailListener(int retryCount, + int failCountBeforeUsingAutoConnect)</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="getRetryCount--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getRetryCount</h4> +<pre>public int getRetryCount()</pre> +</li> +</ul> +<a name="onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a> onEvent(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> e)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-">BleDevice.ConnectionFailListener</a></code></span></div> +<div class="block">Return value is ignored if device is either <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a> or reason + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#allowsRetry--"><code>BleDevice.ConnectionFailListener.Status.allowsRetry()</code></a> is <code>false</code>. If the device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a> + then authority is deferred to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.ReconnectFilter</code></a>. + <br><br> + Otherwise, this method offers a more convenient way of retrying a connection, as opposed to manually doing it yourself. It also lets + the library handle things in a slightly more optimized/cleaner fashion and so is recommended for that reason also. + <br><br> + NOTE that this callback gets fired *after* <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.StateListener</code></a> lets you know that the device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>. + <br><br> + The time parameters like <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#attemptTime_latest--"><code>BleNode.ConnectionFailListener.ConnectionFailEvent.attemptTime_latest()</code></a> are of optional use to you to decide if connecting again + is worth it. For example if you've been trying to connect for 10 seconds already, chances are that another connection attempt probably won't work.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-">onEvent</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" target="_top">Frames</a></li> +<li><a href="BleDevice.DefaultConnectionFailListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..13e1010722f69cbbfb83a7793ca178f12a1510e7 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html @@ -0,0 +1,892 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDevice.ReadWriteListener.ReadWriteEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDevice.ReadWriteListener.ReadWriteEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" target="_top">Frames</a></li> +<li><a href="BleDevice.ReadWriteListener.ReadWriteEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleDevice.ReadWriteListener.ReadWriteEvent" class="title">Class BleDevice.ReadWriteListener.ReadWriteEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleDevice.ReadWriteListener.ReadWriteEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">Provides a bunch of information about a completed read, write, or notification.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#NON_APPLICABLE_UUID">NON_APPLICABLE_UUID</a></span></code> +<div class="block">Value used in place of <code>null</code>, either indicating that <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#descUuid--"><code>descUuid()</code></a> isn't used for the <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> + because <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#CHARACTERISTIC"><code>BleDevice.ReadWriteListener.Target.CHARACTERISTIC</code></a>, or that both <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#descUuid--"><code>descUuid()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#charUuid--"><code>charUuid()</code></a> aren't applicable + because <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#RSSI"><code>BleDevice.ReadWriteListener.Target.RSSI</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#characteristic--">characteristic</a></span>()</code> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristic-java.util.UUID-java.util.UUID-"><code>BleNode.getNativeCharacteristic(UUID, UUID)</code></a>, which will be nonnull + if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#CHARACTERISTIC"><code>BleDevice.ReadWriteListener.Target.CHARACTERISTIC</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#DESCRIPTOR"><code>BleDevice.ReadWriteListener.Target.DESCRIPTOR</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#charUuid--">charUuid</a></span>()</code> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the characteristic associated with this <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#connectionPriority--">connectionPriority</a></span>()</code> +<div class="block">This value gets set as a result of a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setConnectionPriority(BleConnectionPriority, ReadWriteListener)</code></a> call.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>byte</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data_byte--">data_byte</a></span>()</code> +<div class="block">Returns the first byte from <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>data()</code></a>, or 0x0 if not available.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data_int-boolean-">data_int</a></span>(boolean reverse)</code> +<div class="block">Convenience method that attempts to parse <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>data()</code></a> as an int.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>long</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data_long-boolean-">data_long</a></span>(boolean reverse)</code> +<div class="block">Convenience method that attempts to parse <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>data()</code></a> as a long.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>short</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data_short-boolean-">data_short</a></span>(boolean reverse)</code> +<div class="block">Convenience method that attempts to parse <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>data()</code></a> as a short.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data_string--">data_string</a></span>()</code> +<div class="block">Best effort parsing of <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>data()</code></a> as a <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a>.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data_string-java.lang.String-">data_string</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> charset)</code> +<div class="block">Convenience method that attempts to parse <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>data()</code></a> as a <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> with the given charset, for example <code>"UTF-8"</code>.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data_utf8--">data_utf8</a></span>()</code> +<div class="block">Convenience method that attempts to parse the data as a UTF-8 string.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--">data</a></span>()</code> +<div class="block">The data sent to the peripheral if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#type--"><code>type()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isWrite--"><code>BleDevice.ReadWriteListener.Type.isWrite()</code></a>, otherwise the data received from the + peripheral if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#type--"><code>type()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isRead--"><code>BleDevice.ReadWriteListener.Type.isRead()</code></a>.</div> +</td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#descriptor--">descriptor</a></span>()</code> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor_inChar-java.util.UUID-java.util.UUID-"><code>BleNode.getNativeDescriptor_inChar(UUID, UUID)</code></a>, which will be nonnull + if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#DESCRIPTOR"><code>BleDevice.ReadWriteListener.Target.DESCRIPTOR</code></a>.</div> +</td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#descUuid--">descUuid</a></span>()</code> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the descriptor associated with this <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a>.</div> +</td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#device--">device</a></span>()</code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> this <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> is for.</div> +</td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#gattStatus--">gattStatus</a></span>()</code> +<div class="block">The native gatt status returned from the stack, if applicable.</div> +</td> +</tr> +<tr id="i15" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isNotification--">isNotification</a></span>()</code> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isNotification--"><code>BleDevice.ReadWriteListener.Type.isNotification()</code></a>.</div> +</td> +</tr> +<tr id="i16" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isNull--">isNull</a></span>()</code> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isNull--"><code>BleDevice.ReadWriteListener.Type.isNull()</code></a>.</div> +</td> +</tr> +<tr id="i17" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isRead--">isRead</a></span>()</code> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isRead--"><code>BleDevice.ReadWriteListener.Type.isRead()</code></a>.</div> +</td> +</tr> +<tr id="i18" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isWrite--">isWrite</a></span>()</code> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isWrite--"><code>BleDevice.ReadWriteListener.Type.isWrite()</code></a>.</div> +</td> +</tr> +<tr id="i19" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#macAddress--">macAddress</a></span>()</code> +<div class="block">Convience to return the mac address of <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#device--"><code>device()</code></a>.</div> +</td> +</tr> +<tr id="i20" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#mtu--">mtu</a></span>()</code> +<div class="block">This value gets set as a result of a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setMtu(int, ReadWriteListener)</code></a> call.</div> +</td> +</tr> +<tr id="i21" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#rssi--">rssi</a></span>()</code> +<div class="block">This value gets updated as a result of a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.readRssi(ReadWriteListener)</code></a> call.</div> +</td> +</tr> +<tr id="i22" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattService</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#service--">service</a></span>()</code> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeService-java.util.UUID-"><code>BleNode.getNativeService(UUID)</code></a>, which will be nonnull + if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#CHARACTERISTIC"><code>BleDevice.ReadWriteListener.Target.CHARACTERISTIC</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#DESCRIPTOR"><code>BleDevice.ReadWriteListener.Target.DESCRIPTOR</code></a>.</div> +</td> +</tr> +<tr id="i23" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#serviceUuid--">serviceUuid</a></span>()</code> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the service associated with this <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a>.</div> +</td> +</tr> +<tr id="i24" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#solicited--">solicited</a></span>()</code> +<div class="block">This returns <code>true</code> if this event was the result of an explicit call through SweetBlue, e.g.</div> +</td> +</tr> +<tr id="i25" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#status--">status</a></span>()</code> +<div class="block">Indicates either success or the type of failure.</div> +</td> +</tr> +<tr id="i26" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--">target</a></span>()</code> +<div class="block">The type of GATT object this <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> is for, currently characteristic, descriptor, or rssi.</div> +</td> +</tr> +<tr id="i27" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#time_ota--">time_ota</a></span>()</code> +<div class="block">Time spent "over the air" - so in the native stack, processing in + the peripheral's embedded software, what have you.</div> +</td> +</tr> +<tr id="i28" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#time_total--">time_total</a></span>()</code> +<div class="block">Total time it took for the operation to complete, whether success + or failure.</div> +</td> +</tr> +<tr id="i29" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +<tr id="i30" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#type--">type</a></span>()</code> +<div class="block">The type of operation, read, write, etc.</div> +</td> +</tr> +<tr id="i31" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#wasCancelled--">wasCancelled</a></span>()</code> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#wasCancelled--"><code>BleDevice.ConnectionFailListener.Status.wasCancelled()</code></a>.</div> +</td> +</tr> +<tr id="i32" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#wasSuccess--">wasSuccess</a></span>()</code> +<div class="block">Convenience method for checking if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#status--"><code>status()</code></a> equals <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#SUCCESS"><code>BleDevice.ReadWriteListener.Status.SUCCESS</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="NON_APPLICABLE_UUID"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>NON_APPLICABLE_UUID</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> NON_APPLICABLE_UUID</pre> +<div class="block">Value used in place of <code>null</code>, either indicating that <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#descUuid--"><code>descUuid()</code></a> isn't used for the <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> + because <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#CHARACTERISTIC"><code>BleDevice.ReadWriteListener.Target.CHARACTERISTIC</code></a>, or that both <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#descUuid--"><code>descUuid()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#charUuid--"><code>charUuid()</code></a> aren't applicable + because <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#RSSI"><code>BleDevice.ReadWriteListener.Target.RSSI</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="device--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>device</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device()</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> this <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> is for.</div> +</li> +</ul> +<a name="macAddress--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>macAddress</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress()</pre> +<div class="block">Convience to return the mac address of <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#device--"><code>device()</code></a>.</div> +</li> +</ul> +<a name="type--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>type</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a> type()</pre> +<div class="block">The type of operation, read, write, etc.</div> +</li> +</ul> +<a name="target--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>target</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a> target()</pre> +<div class="block">The type of GATT object this <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> is for, currently characteristic, descriptor, or rssi.</div> +</li> +</ul> +<a name="serviceUuid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>serviceUuid</h4> +<pre>public <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid()</pre> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the service associated with this <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a>. This will always be a non-null <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>, + even if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#DESCRIPTOR"><code>BleDevice.ReadWriteListener.Target.DESCRIPTOR</code></a>. If <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#RSSI"><code>BleDevice.ReadWriteListener.Target.RSSI</code></a> then this will be referentially equal + (i.e. you can use == to compare) to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#NON_APPLICABLE_UUID"><code>NON_APPLICABLE_UUID</code></a>.</div> +</li> +</ul> +<a name="charUuid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>charUuid</h4> +<pre>public <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid()</pre> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the characteristic associated with this <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a>. This will always be a non-null <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>, + even if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#DESCRIPTOR"><code>BleDevice.ReadWriteListener.Target.DESCRIPTOR</code></a>. If <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#RSSI"><code>BleDevice.ReadWriteListener.Target.RSSI</code></a> then this will be referentially equal + (i.e. you can use == to compare) to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#NON_APPLICABLE_UUID"><code>NON_APPLICABLE_UUID</code></a>.</div> +</li> +</ul> +<a name="descUuid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>descUuid</h4> +<pre>public <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descUuid()</pre> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the descriptor associated with this <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a>. If <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>target()</code></a> is + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#CHARACTERISTIC"><code>BleDevice.ReadWriteListener.Target.CHARACTERISTIC</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#RSSI"><code>BleDevice.ReadWriteListener.Target.RSSI</code></a> then this will be referentially equal + (i.e. you can use == to compare) to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#NON_APPLICABLE_UUID"><code>NON_APPLICABLE_UUID</code></a>.</div> +</li> +</ul> +<a name="data--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>data</h4> +<pre>public byte[] data()</pre> +<div class="block">The data sent to the peripheral if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#type--"><code>type()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isWrite--"><code>BleDevice.ReadWriteListener.Type.isWrite()</code></a>, otherwise the data received from the + peripheral if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#type--"><code>type()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isRead--"><code>BleDevice.ReadWriteListener.Type.isRead()</code></a>. This will never be <code>null</code>. For error cases it will be a + zero-length array.</div> +</li> +</ul> +<a name="rssi--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>rssi</h4> +<pre>public int rssi()</pre> +<div class="block">This value gets updated as a result of a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.readRssi(ReadWriteListener)</code></a> call. It will + always be equivalent to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>BleDevice.getRssi()</code></a> but is included here for convenience.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>BleDevice.getRssi()</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssiPercent--"><code>BleDevice.getRssiPercent()</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getDistance--"><code>BleDevice.getDistance()</code></a></dd> +</dl> +</li> +</ul> +<a name="mtu--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>mtu</h4> +<pre>public int mtu()</pre> +<div class="block">This value gets set as a result of a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setMtu(int, ReadWriteListener)</code></a> call. The value returned + will be the same as that given to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setMtu(int, ReadWriteListener)</code></a>, which means it will be the + same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getMtu--"><code>BleDevice.getMtu()</code></a> if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#status--"><code>status()</code></a> equals <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#SUCCESS"><code>BleDevice.ReadWriteListener.Status.SUCCESS</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getMtu--"><code>BleDevice.getMtu()</code></a></dd> +</dl> +</li> +</ul> +<a name="status--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>status</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> status()</pre> +<div class="block">Indicates either success or the type of failure. Some values of <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener.Status</code></a> are not used for certain values of <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.Type</code></a>. + For example a <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#NOTIFICATION"><code>BleDevice.ReadWriteListener.Type.NOTIFICATION</code></a> cannot fail with <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#TIMED_OUT"><code>BleDevice.ReadWriteListener.Status.TIMED_OUT</code></a>.</div> +</li> +</ul> +<a name="time_ota--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>time_ota</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> time_ota()</pre> +<div class="block">Time spent "over the air" - so in the native stack, processing in + the peripheral's embedded software, what have you. This will + always be slightly less than <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#time_total--"><code>time_total()</code></a>.</div> +</li> +</ul> +<a name="time_total--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>time_total</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> time_total()</pre> +<div class="block">Total time it took for the operation to complete, whether success + or failure. This mainly includes time spent in the internal job + queue plus <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#time_ota--"><code>time_ota()</code></a>. This will always be + longer than <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#time_ota--"><code>time_ota()</code></a>, though usually only slightly so.</div> +</li> +</ul> +<a name="gattStatus--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>gattStatus</h4> +<pre>public int gattStatus()</pre> +<div class="block">The native gatt status returned from the stack, if applicable. If the <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#status--"><code>status()</code></a> returned is, for example, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#NO_MATCHING_TARGET"><code>BleDevice.ReadWriteListener.Status.NO_MATCHING_TARGET</code></a>, then the operation didn't even reach the point where a gatt status is + provided, in which case this member is set to <a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_STATUS_NOT_APPLICABLE"><code>BleStatuses.GATT_STATUS_NOT_APPLICABLE</code></a> (value of + <a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_STATUS_NOT_APPLICABLE">-1</a>). Otherwise it will be <code>0</code> for success or greater than + <code>0</code> when there's an issue. <i>Generally</i> this value will only be meaningful when <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#status--"><code>status()</code></a> is + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#SUCCESS"><code>BleDevice.ReadWriteListener.Status.SUCCESS</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#REMOTE_GATT_FAILURE"><code>BleDevice.ReadWriteListener.Status.REMOTE_GATT_FAILURE</code></a>. There are + also some cases where this will be 0 for success but <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#status--"><code>status()</code></a> is for example + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#NULL_DATA"><code>BleDevice.ReadWriteListener.Status.NULL_DATA</code></a> - in other words the underlying stack deemed the operation a success but SweetBlue + disagreed. For this reason it's recommended to treat this value as a debugging tool and use <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#status--"><code>status()</code></a> for actual + application logic if possible. + <br><br> + See <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGatt</code></a> for its static <code>GATT_*</code> status code members. Also see the source code of + <a href="../../../com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue"><code>BleStatuses</code></a> for SweetBlue's more comprehensive internal reference list of gatt status values. This list may not be + totally accurate or up-to-date, nor may it match GATT_ values used by the bluetooth stack on your phone.</div> +</li> +</ul> +<a name="solicited--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>solicited</h4> +<pre>public boolean solicited()</pre> +<div class="block">This returns <code>true</code> if this event was the result of an explicit call through SweetBlue, e.g. through + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-"><code>BleDevice.read(UUID)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>BleDevice.write(UUID, byte[])</code></a>, etc. It will return <code>false</code> otherwise, + which can happen if for example you use <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getNativeGatt--"><code>BleDevice.getNativeGatt()</code></a> to bypass SweetBlue for whatever reason. + Another theoretical case is if you make an explicit call through SweetBlue, then you get <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#TIMED_OUT"><code>BleDevice.ReadWriteListener.Status.TIMED_OUT</code></a>, + but then the native stack eventually *does* come back with something - this has never been observed, but it is possible.</div> +</li> +</ul> +<a name="connectionPriority--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connectionPriority</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a> connectionPriority()</pre> +<div class="block">This value gets set as a result of a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setConnectionPriority(BleConnectionPriority, ReadWriteListener)</code></a> call. The value returned + will be the same as that given to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setConnectionPriority(BleConnectionPriority, ReadWriteListener)</code></a>, which means it will be the + same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getConnectionPriority--"><code>BleDevice.getConnectionPriority()</code></a> if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#status--"><code>status()</code></a> equals <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#SUCCESS"><code>BleDevice.ReadWriteListener.Status.SUCCESS</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getConnectionPriority--"><code>BleDevice.getConnectionPriority()</code></a></dd> +</dl> +</li> +</ul> +<a name="service--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>service</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattService</a> service()</pre> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeService-java.util.UUID-"><code>BleNode.getNativeService(UUID)</code></a>, which will be nonnull + if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#CHARACTERISTIC"><code>BleDevice.ReadWriteListener.Target.CHARACTERISTIC</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#DESCRIPTOR"><code>BleDevice.ReadWriteListener.Target.DESCRIPTOR</code></a>.</div> +</li> +</ul> +<a name="characteristic--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>characteristic</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a> characteristic()</pre> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristic-java.util.UUID-java.util.UUID-"><code>BleNode.getNativeCharacteristic(UUID, UUID)</code></a>, which will be nonnull + if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#CHARACTERISTIC"><code>BleDevice.ReadWriteListener.Target.CHARACTERISTIC</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#DESCRIPTOR"><code>BleDevice.ReadWriteListener.Target.DESCRIPTOR</code></a>.</div> +</li> +</ul> +<a name="descriptor--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>descriptor</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a> descriptor()</pre> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor_inChar-java.util.UUID-java.util.UUID-"><code>BleNode.getNativeDescriptor_inChar(UUID, UUID)</code></a>, which will be nonnull + if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#DESCRIPTOR"><code>BleDevice.ReadWriteListener.Target.DESCRIPTOR</code></a>.</div> +</li> +</ul> +<a name="wasSuccess--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>wasSuccess</h4> +<pre>public boolean wasSuccess()</pre> +<div class="block">Convenience method for checking if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#status--"><code>status()</code></a> equals <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#SUCCESS"><code>BleDevice.ReadWriteListener.Status.SUCCESS</code></a>.</div> +</li> +</ul> +<a name="wasCancelled--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>wasCancelled</h4> +<pre>public boolean wasCancelled()</pre> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#wasCancelled--"><code>BleDevice.ConnectionFailListener.Status.wasCancelled()</code></a>.</div> +</li> +</ul> +<a name="isNotification--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNotification</h4> +<pre>public boolean isNotification()</pre> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isNotification--"><code>BleDevice.ReadWriteListener.Type.isNotification()</code></a>.</div> +</li> +</ul> +<a name="isRead--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isRead</h4> +<pre>public boolean isRead()</pre> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isRead--"><code>BleDevice.ReadWriteListener.Type.isRead()</code></a>.</div> +</li> +</ul> +<a name="isWrite--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isWrite</h4> +<pre>public boolean isWrite()</pre> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isWrite--"><code>BleDevice.ReadWriteListener.Type.isWrite()</code></a>.</div> +</li> +</ul> +<a name="data_byte--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>data_byte</h4> +<pre>public byte data_byte()</pre> +<div class="block">Returns the first byte from <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>data()</code></a>, or 0x0 if not available.</div> +</li> +</ul> +<a name="data_utf8--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>data_utf8</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> data_utf8()</pre> +<div class="block">Convenience method that attempts to parse the data as a UTF-8 string.</div> +</li> +</ul> +<a name="data_string--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>data_string</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> data_string()</pre> +<div class="block">Best effort parsing of <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>data()</code></a> as a <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a>. For now simply forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data_utf8--"><code>data_utf8()</code></a>. + In the future may try to autodetect encoding first.</div> +</li> +</ul> +<a name="data_string-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>data_string</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> data_string(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> charset)</pre> +<div class="block">Convenience method that attempts to parse <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>data()</code></a> as a <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> with the given charset, for example <code>"UTF-8"</code>.</div> +</li> +</ul> +<a name="data_int-boolean-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>data_int</h4> +<pre>public int data_int(boolean reverse)</pre> +<div class="block">Convenience method that attempts to parse <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>data()</code></a> as an int.</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>reverse</code> - - Set to true if you are connecting to a device with <a href="http://d.android.com/reference/java/nio/ByteOrder.html?is-external=true#BIG_ENDIAN" title="class or interface in java.nio"><code>ByteOrder.BIG_ENDIAN</code></a> byte order, to automatically reverse the bytes before conversion.</dd> +</dl> +</li> +</ul> +<a name="data_short-boolean-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>data_short</h4> +<pre>public short data_short(boolean reverse)</pre> +<div class="block">Convenience method that attempts to parse <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>data()</code></a> as a short.</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>reverse</code> - - Set to true if you are connecting to a device with <a href="http://d.android.com/reference/java/nio/ByteOrder.html?is-external=true#BIG_ENDIAN" title="class or interface in java.nio"><code>ByteOrder.BIG_ENDIAN</code></a> byte order, to automatically reverse the bytes before conversion.</dd> +</dl> +</li> +</ul> +<a name="data_long-boolean-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>data_long</h4> +<pre>public long data_long(boolean reverse)</pre> +<div class="block">Convenience method that attempts to parse <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>data()</code></a> as a long.</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>reverse</code> - - Set to true if you are connecting to a device with <a href="http://d.android.com/reference/java/nio/ByteOrder.html?is-external=true#BIG_ENDIAN" title="class or interface in java.nio"><code>ByteOrder.BIG_ENDIAN</code></a> byte order, to automatically reverse the bytes before conversion.</dd> +</dl> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isNull--"><code>BleDevice.ReadWriteListener.Type.isNull()</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" target="_top">Frames</a></li> +<li><a href="BleDevice.ReadWriteListener.ReadWriteEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html new file mode 100644 index 0000000000000000000000000000000000000000..b7075c531028ea0d7b85b0e985825eb1268647c8 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html @@ -0,0 +1,735 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDevice.ReadWriteListener.Status (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDevice.ReadWriteListener.Status (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9,"i2":9,"i3":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" target="_top">Frames</a></li> +<li><a href="BleDevice.ReadWriteListener.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleDevice.ReadWriteListener.Status" class="title">Enum BleDevice.ReadWriteListener.Status</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleDevice.ReadWriteListener.Status</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">A value returned to <a href="../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html#onEvent-T_Event-"><code>GenericListener_Void.onEvent(Event)</code></a> + by way of <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#status--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.status()</code></a> that indicates success of the + operation or the reason for its failure. This enum is <i>not</i> + meant to match up with <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGatt</code></a>.GATT_* values in any way.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#status--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.status()</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#ANDROID_VERSION_NOT_SUPPORTED">ANDROID_VERSION_NOT_SUPPORTED</a></span></code> +<div class="block">The android api level doesn't support the lower level API call in the native stack.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#CANCELLED_FROM_BLE_TURNING_OFF">CANCELLED_FROM_BLE_TURNING_OFF</a></span></code> +<div class="block">The operation was cancelled because <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> went <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#TURNING_OFF"><code>BleManagerState.TURNING_OFF</code></a> and/or + <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#CANCELLED_FROM_DISCONNECT">CANCELLED_FROM_DISCONNECT</a></span></code> +<div class="block">The operation was cancelled by the device becoming <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#EMPTY_DATA">EMPTY_DATA</a></span></code> +<div class="block">Used either when <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#type--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.type()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isRead--"><code>BleDevice.ReadWriteListener.Type.isRead()</code></a> and the operation was "successful" but + returned a zero-length array for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.data()</code></a>, <i>or</i> <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>BleDevice.write(UUID, byte[])</code></a> (or overload(s) ) + was called with a non-null but zero-length data parameter.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#FAILED_TO_SEND_OUT">FAILED_TO_SEND_OUT</a></span></code> +<div class="block">The call to <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#readCharacteristic-android.bluetooth.BluetoothGattCharacteristic-" title="class or interface in android.bluetooth"><code>BluetoothGatt.readCharacteristic(BluetoothGattCharacteristic)</code></a> + or <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#writeCharacteristic-android.bluetooth.BluetoothGattCharacteristic-" title="class or interface in android.bluetooth"><code>BluetoothGatt.writeCharacteristic(BluetoothGattCharacteristic)</code></a> + or etc.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#FAILED_TO_SET_VALUE_ON_TARGET">FAILED_TO_SET_VALUE_ON_TARGET</a></span></code> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#setValue-byte:A-" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.setValue(byte[])</code></a> (or one of its overloads) or + <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true#setValue-byte:A-" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor.setValue(byte[])</code></a> (or one of its overloads) returned <code>false</code>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#FAILED_TO_TOGGLE_NOTIFICATION">FAILED_TO_TOGGLE_NOTIFICATION</a></span></code> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#setCharacteristicNotification-android.bluetooth.BluetoothGattCharacteristic-boolean-" title="class or interface in android.bluetooth"><code>BluetoothGatt.setCharacteristicNotification(BluetoothGattCharacteristic, boolean)</code></a> + returned <code>false</code> for an unknown reason.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#INVALID_DATA">INVALID_DATA</a></span></code> +<div class="block">For now only used when giving a negative or zero value to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setMtu(int, ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#NO_MATCHING_TARGET">NO_MATCHING_TARGET</a></span></code> +<div class="block">Couldn't find a matching <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.target()</code></a> for the <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#charUuid--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.charUuid()</code></a> (or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#descUuid--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.descUuid()</code></a> if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#DESCRIPTOR"><code>BleDevice.ReadWriteListener.Target.DESCRIPTOR</code></a>) which was given to + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(UUID, ReadWriteListener)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>BleDevice.write(UUID, byte[])</code></a>, etc.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#NOT_CONNECTED">NOT_CONNECTED</a></span></code> +<div class="block">Device is not <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#NULL">NULL</a></span></code> +<div class="block">As of now, only used for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#txnFailReason--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.txnFailReason()</code></a> in some cases.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#NULL_DATA">NULL_DATA</a></span></code> +<div class="block">Used either when <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#type--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.type()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isRead--"><code>BleDevice.ReadWriteListener.Type.isRead()</code></a> and the stack returned a <code>null</code> + value for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#getValue--" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.getValue()</code></a> despite the operation being otherwise "successful", <i>or</i> + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>BleDevice.write(UUID, byte[])</code></a> (or overload(s) ) were called with a null data parameter.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#NULL_DEVICE">NULL_DEVICE</a></span></code> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(UUID, ReadWriteListener)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>BleDevice.write(UUID, byte[])</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a>, etc.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#OPERATION_NOT_SUPPORTED">OPERATION_NOT_SUPPORTED</a></span></code> +<div class="block">You tried to do a read on a characteristic that is write-only, or + vice-versa, or tried to read a notify-only characteristic, or etc., etc.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#RELIABLE_WRITE_ABORTED">RELIABLE_WRITE_ABORTED</a></span></code> +<div class="block">Specific to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#RELIABLE_WRITE"><code>BleDevice.ReadWriteListener.Target.RELIABLE_WRITE</code></a>, this means <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_abort--"><code>BleDevice.reliableWrite_abort()</code></a> was called.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#RELIABLE_WRITE_ALREADY_BEGAN">RELIABLE_WRITE_ALREADY_BEGAN</a></span></code> +<div class="block">Specific to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#RELIABLE_WRITE"><code>BleDevice.ReadWriteListener.Target.RELIABLE_WRITE</code></a>, this means <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_begin-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.reliableWrite_begin(ReadWriteListener)</code></a> was + called twice without an intervening call to either <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_abort--"><code>BleDevice.reliableWrite_abort()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_execute--"><code>BleDevice.reliableWrite_execute()</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#RELIABLE_WRITE_FAILED_TO_BEGIN">RELIABLE_WRITE_FAILED_TO_BEGIN</a></span></code> +<div class="block">Specific to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#RELIABLE_WRITE"><code>BleDevice.ReadWriteListener.Target.RELIABLE_WRITE</code></a>, this means the underlying call to <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#beginReliableWrite--" title="class or interface in android.bluetooth"><code>BluetoothGatt.beginReliableWrite()</code></a> + returned <code>false</code>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#RELIABLE_WRITE_NEVER_BEGAN">RELIABLE_WRITE_NEVER_BEGAN</a></span></code> +<div class="block">Specific to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#RELIABLE_WRITE"><code>BleDevice.ReadWriteListener.Target.RELIABLE_WRITE</code></a>, this means <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_abort--"><code>BleDevice.reliableWrite_abort()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_execute--"><code>BleDevice.reliableWrite_execute()</code></a> + was called without a previous call to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_begin-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.reliableWrite_begin(ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#REMOTE_GATT_FAILURE">REMOTE_GATT_FAILURE</a></span></code> +<div class="block">The operation failed in a "normal" fashion, at least relative to all the other strange ways an operation can fail.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#SUCCESS">SUCCESS</a></span></code> +<div class="block">If <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#type--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.type()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isRead--"><code>BleDevice.ReadWriteListener.Type.isRead()</code></a> then <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.data()</code></a> will contain some data returned from + the device.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#TIMED_OUT">TIMED_OUT</a></span></code> +<div class="block">Operation took longer than time specified in <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter"><code>BleNodeConfig.taskTimeoutRequestFilter</code></a> so we cut it loose.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#wasCancelled--">wasCancelled</a></span>()</code> +<div class="block">Returns <code>true</code> for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#CANCELLED_FROM_DISCONNECT"><code>CANCELLED_FROM_DISCONNECT</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#CANCELLED_FROM_BLE_TURNING_OFF"><code>CANCELLED_FROM_BLE_TURNING_OFF</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> NULL</pre> +<div class="block">As of now, only used for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#txnFailReason--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.txnFailReason()</code></a> in some cases.</div> +</li> +</ul> +<a name="SUCCESS"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SUCCESS</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> SUCCESS</pre> +<div class="block">If <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#type--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.type()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isRead--"><code>BleDevice.ReadWriteListener.Type.isRead()</code></a> then <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.data()</code></a> will contain some data returned from + the device. If type is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#WRITE"><code>BleDevice.ReadWriteListener.Type.WRITE</code></a> then <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.data()</code></a> was sent to the device.</div> +</li> +</ul> +<a name="NULL_DEVICE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL_DEVICE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> NULL_DEVICE</pre> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(UUID, ReadWriteListener)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>BleDevice.write(UUID, byte[])</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a>, etc. was called on <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a>.</div> +</li> +</ul> +<a name="NOT_CONNECTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NOT_CONNECTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> NOT_CONNECTED</pre> +<div class="block">Device is not <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>.</div> +</li> +</ul> +<a name="NO_MATCHING_TARGET"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NO_MATCHING_TARGET</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> NO_MATCHING_TARGET</pre> +<div class="block">Couldn't find a matching <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.target()</code></a> for the <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#charUuid--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.charUuid()</code></a> (or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#descUuid--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.descUuid()</code></a> if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#DESCRIPTOR"><code>BleDevice.ReadWriteListener.Target.DESCRIPTOR</code></a>) which was given to + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(UUID, ReadWriteListener)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>BleDevice.write(UUID, byte[])</code></a>, etc. This most likely + means that the internal call to <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#discoverServices--" title="class or interface in android.bluetooth"><code>BluetoothGatt.discoverServices()</code></a> didn't find any + <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattService</code></a> that contained a <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic</code></a> for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#charUuid--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.charUuid()</code></a>. + This can also happen if the internal call to get a BluetoothService(s) causes an exception (seen on some phones).</div> +</li> +</ul> +<a name="RELIABLE_WRITE_FAILED_TO_BEGIN"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>RELIABLE_WRITE_FAILED_TO_BEGIN</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> RELIABLE_WRITE_FAILED_TO_BEGIN</pre> +<div class="block">Specific to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#RELIABLE_WRITE"><code>BleDevice.ReadWriteListener.Target.RELIABLE_WRITE</code></a>, this means the underlying call to <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#beginReliableWrite--" title="class or interface in android.bluetooth"><code>BluetoothGatt.beginReliableWrite()</code></a> + returned <code>false</code>.</div> +</li> +</ul> +<a name="RELIABLE_WRITE_ALREADY_BEGAN"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>RELIABLE_WRITE_ALREADY_BEGAN</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> RELIABLE_WRITE_ALREADY_BEGAN</pre> +<div class="block">Specific to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#RELIABLE_WRITE"><code>BleDevice.ReadWriteListener.Target.RELIABLE_WRITE</code></a>, this means <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_begin-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.reliableWrite_begin(ReadWriteListener)</code></a> was + called twice without an intervening call to either <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_abort--"><code>BleDevice.reliableWrite_abort()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_execute--"><code>BleDevice.reliableWrite_execute()</code></a>.</div> +</li> +</ul> +<a name="RELIABLE_WRITE_NEVER_BEGAN"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>RELIABLE_WRITE_NEVER_BEGAN</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> RELIABLE_WRITE_NEVER_BEGAN</pre> +<div class="block">Specific to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#RELIABLE_WRITE"><code>BleDevice.ReadWriteListener.Target.RELIABLE_WRITE</code></a>, this means <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_abort--"><code>BleDevice.reliableWrite_abort()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_execute--"><code>BleDevice.reliableWrite_execute()</code></a> + was called without a previous call to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_begin-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.reliableWrite_begin(ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="RELIABLE_WRITE_ABORTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>RELIABLE_WRITE_ABORTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> RELIABLE_WRITE_ABORTED</pre> +<div class="block">Specific to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#RELIABLE_WRITE"><code>BleDevice.ReadWriteListener.Target.RELIABLE_WRITE</code></a>, this means <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_abort--"><code>BleDevice.reliableWrite_abort()</code></a> was called.</div> +</li> +</ul> +<a name="OPERATION_NOT_SUPPORTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>OPERATION_NOT_SUPPORTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> OPERATION_NOT_SUPPORTED</pre> +<div class="block">You tried to do a read on a characteristic that is write-only, or + vice-versa, or tried to read a notify-only characteristic, or etc., etc.</div> +</li> +</ul> +<a name="ANDROID_VERSION_NOT_SUPPORTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ANDROID_VERSION_NOT_SUPPORTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> ANDROID_VERSION_NOT_SUPPORTED</pre> +<div class="block">The android api level doesn't support the lower level API call in the native stack. For example if you try to use + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setMtu(int, ReadWriteListener)</code></a>, which requires API level 21, and you are at level 18.</div> +</li> +</ul> +<a name="FAILED_TO_TOGGLE_NOTIFICATION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>FAILED_TO_TOGGLE_NOTIFICATION</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> FAILED_TO_TOGGLE_NOTIFICATION</pre> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#setCharacteristicNotification-android.bluetooth.BluetoothGattCharacteristic-boolean-" title="class or interface in android.bluetooth"><code>BluetoothGatt.setCharacteristicNotification(BluetoothGattCharacteristic, boolean)</code></a> + returned <code>false</code> for an unknown reason. This <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener.Status</code></a> is only relevant for calls to + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.disableNotify(UUID, ReadWriteListener)</code></a> + (or the various overloads).</div> +</li> +</ul> +<a name="FAILED_TO_SET_VALUE_ON_TARGET"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>FAILED_TO_SET_VALUE_ON_TARGET</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> FAILED_TO_SET_VALUE_ON_TARGET</pre> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#setValue-byte:A-" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.setValue(byte[])</code></a> (or one of its overloads) or + <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true#setValue-byte:A-" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor.setValue(byte[])</code></a> (or one of its overloads) returned <code>false</code>.</div> +</li> +</ul> +<a name="FAILED_TO_SEND_OUT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>FAILED_TO_SEND_OUT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> FAILED_TO_SEND_OUT</pre> +<div class="block">The call to <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#readCharacteristic-android.bluetooth.BluetoothGattCharacteristic-" title="class or interface in android.bluetooth"><code>BluetoothGatt.readCharacteristic(BluetoothGattCharacteristic)</code></a> + or <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#writeCharacteristic-android.bluetooth.BluetoothGattCharacteristic-" title="class or interface in android.bluetooth"><code>BluetoothGatt.writeCharacteristic(BluetoothGattCharacteristic)</code></a> + or etc. returned <code>false</code> and thus failed immediately + for unknown reasons. No good remedy for this...perhaps try <a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a>.</div> +</li> +</ul> +<a name="CANCELLED_FROM_DISCONNECT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CANCELLED_FROM_DISCONNECT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> CANCELLED_FROM_DISCONNECT</pre> +<div class="block">The operation was cancelled by the device becoming <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>.</div> +</li> +</ul> +<a name="CANCELLED_FROM_BLE_TURNING_OFF"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CANCELLED_FROM_BLE_TURNING_OFF</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> CANCELLED_FROM_BLE_TURNING_OFF</pre> +<div class="block">The operation was cancelled because <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> went <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#TURNING_OFF"><code>BleManagerState.TURNING_OFF</code></a> and/or + <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>. Note that if the user turns off BLE from their OS settings (airplane mode, etc.) then + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#status--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.status()</code></a> could potentially be <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#CANCELLED_FROM_DISCONNECT"><code>CANCELLED_FROM_DISCONNECT</code></a> because SweetBlue might get + the disconnect callback before the turning off callback. Basic testing has revealed that this is *not* the case, but you never know. + <br><br> + Either way, the device was or will be disconnected.</div> +</li> +</ul> +<a name="NULL_DATA"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL_DATA</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> NULL_DATA</pre> +<div class="block">Used either when <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#type--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.type()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isRead--"><code>BleDevice.ReadWriteListener.Type.isRead()</code></a> and the stack returned a <code>null</code> + value for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#getValue--" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.getValue()</code></a> despite the operation being otherwise "successful", <i>or</i> + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>BleDevice.write(UUID, byte[])</code></a> (or overload(s) ) were called with a null data parameter. For the read case, the library + will throw an <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#READ_RETURNED_NULL"><code>BleManager.UhOhListener.UhOh.READ_RETURNED_NULL</code></a>, but hopefully it was just a temporary glitch. If the problem persists try <a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a>.</div> +</li> +</ul> +<a name="EMPTY_DATA"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>EMPTY_DATA</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> EMPTY_DATA</pre> +<div class="block">Used either when <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#type--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.type()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isRead--"><code>BleDevice.ReadWriteListener.Type.isRead()</code></a> and the operation was "successful" but + returned a zero-length array for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.data()</code></a>, <i>or</i> <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>BleDevice.write(UUID, byte[])</code></a> (or overload(s) ) + was called with a non-null but zero-length data parameter. Note that <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.data()</code></a> will be a zero-length array for + all other error statuses as well, for example <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#NO_MATCHING_TARGET"><code>NO_MATCHING_TARGET</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#NOT_CONNECTED"><code>NOT_CONNECTED</code></a>, etc. In other words it's never null.</div> +</li> +</ul> +<a name="INVALID_DATA"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>INVALID_DATA</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> INVALID_DATA</pre> +<div class="block">For now only used when giving a negative or zero value to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setMtu(int, ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="REMOTE_GATT_FAILURE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>REMOTE_GATT_FAILURE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> REMOTE_GATT_FAILURE</pre> +<div class="block">The operation failed in a "normal" fashion, at least relative to all the other strange ways an operation can fail. This means for + example that <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCallback.html?is-external=true#onCharacteristicRead-android.bluetooth.BluetoothGatt-android.bluetooth.BluetoothGattCharacteristic-int-" title="class or interface in android.bluetooth"><code>BluetoothGattCallback.onCharacteristicRead(BluetoothGatt, BluetoothGattCharacteristic, int)</code></a> + returned a status code that was not zero. This could mean the device went out of range, was turned off, signal was disrupted, + whatever. Often this means that the device is about to become <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>. <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#gattStatus--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.gattStatus()</code></a> + will most likely be non-zero, and you can check against the static fields in <a href="../../../com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue"><code>BleStatuses</code></a> for more information.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#gattStatus--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.gattStatus()</code></a></dd> +</dl> +</li> +</ul> +<a name="TIMED_OUT"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>TIMED_OUT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> TIMED_OUT</pre> +<div class="block">Operation took longer than time specified in <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter"><code>BleNodeConfig.taskTimeoutRequestFilter</code></a> so we cut it loose.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleDevice.ReadWriteListener.Status c : BleDevice.ReadWriteListener.Status.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="wasCancelled--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>wasCancelled</h4> +<pre>public boolean wasCancelled()</pre> +<div class="block">Returns <code>true</code> for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#CANCELLED_FROM_DISCONNECT"><code>CANCELLED_FROM_DISCONNECT</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#CANCELLED_FROM_BLE_TURNING_OFF"><code>CANCELLED_FROM_BLE_TURNING_OFF</code></a>.</div> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">UsesCustomNull</a></code></span></div> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" target="_top">Frames</a></li> +<li><a href="BleDevice.ReadWriteListener.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html new file mode 100644 index 0000000000000000000000000000000000000000..10472545752dea2d8e3dd7d950ff17974cfff195 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html @@ -0,0 +1,451 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDevice.ReadWriteListener.Target (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDevice.ReadWriteListener.Target (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9,"i2":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" target="_top">Frames</a></li> +<li><a href="BleDevice.ReadWriteListener.Target.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleDevice.ReadWriteListener.Target" class="title">Enum BleDevice.ReadWriteListener.Target</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Target</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleDevice.ReadWriteListener.Target</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">The type of GATT "object", provided by <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.target()</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#CHARACTERISTIC">CHARACTERISTIC</a></span></code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> returned has to do with a <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic</code></a> under the hood.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#CONNECTION_PRIORITY">CONNECTION_PRIORITY</a></span></code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> is coming in from using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setConnectionPriority(BleConnectionPriority, ReadWriteListener)</code></a> or overloads.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#DESCRIPTOR">DESCRIPTOR</a></span></code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> returned has to do with a <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor</code></a> under the hood.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#MTU">MTU</a></span></code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> is coming in from using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setMtu(int, ReadWriteListener)</code></a> or overloads.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#NULL">NULL</a></span></code> +<div class="block">As of now, only used for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#txnFailReason--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.txnFailReason()</code></a> in some cases.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#RELIABLE_WRITE">RELIABLE_WRITE</a></span></code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> is coming in from using <code>reliableWrite_*()</code> overloads such as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_begin-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.reliableWrite_begin(ReadWriteListener)</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_execute--"><code>BleDevice.reliableWrite_execute()</code></a>, etc.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#RSSI">RSSI</a></span></code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> is coming in from using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.readRssi(ReadWriteListener)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startRssiPoll(Interval, ReadWriteListener)</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a> NULL</pre> +<div class="block">As of now, only used for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#txnFailReason--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.txnFailReason()</code></a> in some cases.</div> +</li> +</ul> +<a name="CHARACTERISTIC"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CHARACTERISTIC</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a> CHARACTERISTIC</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> returned has to do with a <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic</code></a> under the hood.</div> +</li> +</ul> +<a name="DESCRIPTOR"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DESCRIPTOR</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a> DESCRIPTOR</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> returned has to do with a <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor</code></a> under the hood.</div> +</li> +</ul> +<a name="RSSI"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>RSSI</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a> RSSI</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> is coming in from using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.readRssi(ReadWriteListener)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startRssiPoll(Interval, ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="MTU"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>MTU</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a> MTU</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> is coming in from using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setMtu(int, ReadWriteListener)</code></a> or overloads.</div> +</li> +</ul> +<a name="RELIABLE_WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>RELIABLE_WRITE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a> RELIABLE_WRITE</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> is coming in from using <code>reliableWrite_*()</code> overloads such as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_begin-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.reliableWrite_begin(ReadWriteListener)</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_execute--"><code>BleDevice.reliableWrite_execute()</code></a>, etc.</div> +</li> +</ul> +<a name="CONNECTION_PRIORITY"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>CONNECTION_PRIORITY</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a> CONNECTION_PRIORITY</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> is coming in from using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setConnectionPriority(BleConnectionPriority, ReadWriteListener)</code></a> or overloads.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleDevice.ReadWriteListener.Target c : BleDevice.ReadWriteListener.Target.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">UsesCustomNull</a></code></span></div> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" target="_top">Frames</a></li> +<li><a href="BleDevice.ReadWriteListener.Target.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html new file mode 100644 index 0000000000000000000000000000000000000000..ebb529ec2165141a0bbb7a04f6a7df02926b7e05 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html @@ -0,0 +1,616 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDevice.ReadWriteListener.Type (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDevice.ReadWriteListener.Type (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" target="_top">Frames</a></li> +<li><a href="BleDevice.ReadWriteListener.Type.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleDevice.ReadWriteListener.Type" class="title">Enum BleDevice.ReadWriteListener.Type</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Type</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleDevice.ReadWriteListener.Type</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">The type of operation for a <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> - read, write, poll, etc.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#DISABLING_NOTIFICATION">DISABLING_NOTIFICATION</a></span></code> +<div class="block">Opposite of <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#ENABLING_NOTIFICATION"><code>ENABLING_NOTIFICATION</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#ENABLING_NOTIFICATION">ENABLING_NOTIFICATION</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a> and called when enabling the notification completes by writing to the + Descriptor of the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#INDICATION">INDICATION</a></span></code> +<div class="block">Similar to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#NOTIFICATION"><code>NOTIFICATION</code></a>, kicked off from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a>, but + under the hood this is treated slightly differently.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#NOTIFICATION">NOTIFICATION</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a> when we actually get a notification.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#NULL">NULL</a></span></code> +<div class="block">As of now, only used for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#txnFailReason--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.txnFailReason()</code></a> in some cases.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#POLL">POLL</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(UUID, Interval, ReadWriteListener)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startRssiPoll(Interval, ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#PSUEDO_NOTIFICATION">PSUEDO_NOTIFICATION</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startChangeTrackingPoll(UUID, Interval, ReadWriteListener)</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, Interval, ReadWriteListener)</code></a> where a force-read timeout is invoked.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#READ">READ</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(UUID, ReadWriteListener)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.readRssi(ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#WRITE">WRITE</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>BleDevice.write(UUID, byte[])</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.write(UUID, byte[], ReadWriteListener)</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-"><code>BleDevice.setMtu(int)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setName(String, UUID, ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#WRITE_NO_RESPONSE">WRITE_NO_RESPONSE</a></span></code> +<div class="block">Similar to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#WRITE"><code>WRITE</code></a> but under the hood <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#WRITE_TYPE_NO_RESPONSE" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE</code></a> is used.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#WRITE_SIGNED">WRITE_SIGNED</a></span></code> +<div class="block">Similar to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#WRITE"><code>WRITE</code></a> but under the hood <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#WRITE_TYPE_SIGNED" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.WRITE_TYPE_SIGNED</code></a> is used.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isNativeNotification--">isNativeNotification</a></span>()</code> +<div class="block">Subset of <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isNotification--"><code>isNotification()</code></a>, returns <code>true</code> only for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#NOTIFICATION"><code>NOTIFICATION</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#INDICATION"><code>INDICATION</code></a>, i.e.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isNotification--">isNotification</a></span>()</code> +<div class="block">Returns true if <code>this</code> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#NOTIFICATION"><code>NOTIFICATION</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#PSUEDO_NOTIFICATION"><code>PSUEDO_NOTIFICATION</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#INDICATION"><code>INDICATION</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isRead--">isRead</a></span>()</code> +<div class="block">Returns <code>true</code> for every <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.Type</code></a> except <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isWrite--"><code>isWrite()</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#ENABLING_NOTIFICATION"><code>ENABLING_NOTIFICATION</code></a>, and + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#DISABLING_NOTIFICATION"><code>DISABLING_NOTIFICATION</code></a>.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isWrite--">isWrite</a></span>()</code> +<div class="block">Returns <code>true</code> if <code>this</code> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#WRITE"><code>WRITE</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#WRITE_NO_RESPONSE"><code>WRITE_NO_RESPONSE</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#WRITE_SIGNED"><code>WRITE_SIGNED</code></a>.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#toHistoricalDataSource--">toHistoricalDataSource</a></span>()</code> +<div class="block">Returns the <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter.Source</code></a> equivalent + for this <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.Type</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#NULL"><code>BleNodeConfig.HistoricalDataLogFilter.Source.NULL</code></a>.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a> NULL</pre> +<div class="block">As of now, only used for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#txnFailReason--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.txnFailReason()</code></a> in some cases.</div> +</li> +</ul> +<a name="READ"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>READ</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a> READ</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(UUID, ReadWriteListener)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.readRssi(ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WRITE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a> WRITE</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>BleDevice.write(UUID, byte[])</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.write(UUID, byte[], ReadWriteListener)</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-"><code>BleDevice.setMtu(int)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setName(String, UUID, ReadWriteListener)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isWrite--"><code>isWrite()</code></a></dd> +</dl> +</li> +</ul> +<a name="WRITE_NO_RESPONSE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WRITE_NO_RESPONSE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a> WRITE_NO_RESPONSE</pre> +<div class="block">Similar to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#WRITE"><code>WRITE</code></a> but under the hood <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#WRITE_TYPE_NO_RESPONSE" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE</code></a> is used. + See also <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PROPERTY_WRITE_NO_RESPONSE" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isWrite--"><code>isWrite()</code></a></dd> +</dl> +</li> +</ul> +<a name="WRITE_SIGNED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WRITE_SIGNED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a> WRITE_SIGNED</pre> +<div class="block">Similar to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#WRITE"><code>WRITE</code></a> but under the hood <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#WRITE_TYPE_SIGNED" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.WRITE_TYPE_SIGNED</code></a> is used. + See also <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#PROPERTY_SIGNED_WRITE" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.PROPERTY_SIGNED_WRITE</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isWrite--"><code>isWrite()</code></a></dd> +</dl> +</li> +</ul> +<a name="POLL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>POLL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a> POLL</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(UUID, Interval, ReadWriteListener)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startRssiPoll(Interval, ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="NOTIFICATION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NOTIFICATION</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a> NOTIFICATION</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a> when we actually get a notification.</div> +</li> +</ul> +<a name="INDICATION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>INDICATION</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a> INDICATION</pre> +<div class="block">Similar to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#NOTIFICATION"><code>NOTIFICATION</code></a>, kicked off from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a>, but + under the hood this is treated slightly differently.</div> +</li> +</ul> +<a name="PSUEDO_NOTIFICATION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>PSUEDO_NOTIFICATION</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a> PSUEDO_NOTIFICATION</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startChangeTrackingPoll(UUID, Interval, ReadWriteListener)</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, Interval, ReadWriteListener)</code></a> where a force-read timeout is invoked.</div> +</li> +</ul> +<a name="ENABLING_NOTIFICATION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ENABLING_NOTIFICATION</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a> ENABLING_NOTIFICATION</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a> and called when enabling the notification completes by writing to the + Descriptor of the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>. <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#SUCCESS"><code>BleDevice.ReadWriteListener.Status.SUCCESS</code></a> doesn't <i>necessarily</i> mean that notifications will + definitely now work (there may be other issues in the underlying stack), but it's a reasonable guarantee.</div> +</li> +</ul> +<a name="DISABLING_NOTIFICATION"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>DISABLING_NOTIFICATION</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a> DISABLING_NOTIFICATION</pre> +<div class="block">Opposite of <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#ENABLING_NOTIFICATION"><code>ENABLING_NOTIFICATION</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleDevice.ReadWriteListener.Type c : BleDevice.ReadWriteListener.Type.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="isRead--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isRead</h4> +<pre>public boolean isRead()</pre> +<div class="block">Returns <code>true</code> for every <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.Type</code></a> except <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isWrite--"><code>isWrite()</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#ENABLING_NOTIFICATION"><code>ENABLING_NOTIFICATION</code></a>, and + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#DISABLING_NOTIFICATION"><code>DISABLING_NOTIFICATION</code></a>. Overall this convenience method is meant to tell you when we've <i>received</i> something from + the device as opposed to writing something to it.</div> +</li> +</ul> +<a name="isWrite--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isWrite</h4> +<pre>public boolean isWrite()</pre> +<div class="block">Returns <code>true</code> if <code>this</code> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#WRITE"><code>WRITE</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#WRITE_NO_RESPONSE"><code>WRITE_NO_RESPONSE</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#WRITE_SIGNED"><code>WRITE_SIGNED</code></a>.</div> +</li> +</ul> +<a name="isNotification--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNotification</h4> +<pre>public boolean isNotification()</pre> +<div class="block">Returns true if <code>this</code> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#NOTIFICATION"><code>NOTIFICATION</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#PSUEDO_NOTIFICATION"><code>PSUEDO_NOTIFICATION</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#INDICATION"><code>INDICATION</code></a>.</div> +</li> +</ul> +<a name="isNativeNotification--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNativeNotification</h4> +<pre>public boolean isNativeNotification()</pre> +<div class="block">Subset of <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isNotification--"><code>isNotification()</code></a>, returns <code>true</code> only for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#NOTIFICATION"><code>NOTIFICATION</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#INDICATION"><code>INDICATION</code></a>, i.e. only + notifications who origin is an *actual* notification (or indication) sent from the remote BLE device.</div> +</li> +</ul> +<a name="toHistoricalDataSource--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toHistoricalDataSource</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a> toHistoricalDataSource()</pre> +<div class="block">Returns the <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter.Source</code></a> equivalent + for this <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.Type</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#NULL"><code>BleNodeConfig.HistoricalDataLogFilter.Source.NULL</code></a>.</div> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">UsesCustomNull</a></code></span></div> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" target="_top">Frames</a></li> +<li><a href="BleDevice.ReadWriteListener.Type.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html new file mode 100644 index 0000000000000000000000000000000000000000..368d37ecede20a3f312f229d989af9867ac1ce8d --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html @@ -0,0 +1,239 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDevice.ReadWriteListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDevice.ReadWriteListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" target="_top">Frames</a></li> +<li><a href="BleDevice.ReadWriteListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleDevice.ReadWriteListener" class="title">Interface BleDevice.ReadWriteListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Superinterfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="interface in com.idevicesinc.sweetblue.utils">GenericListener_Void</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a>></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleDevice.ReadWriteListener</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="interface in com.idevicesinc.sweetblue.utils">GenericListener_Void</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a>></pre> +<div class="block">Provide an implementation of this callback to various methods like <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(UUID, ReadWriteListener)</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.write(UUID, byte[], ReadWriteListener)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(UUID, Interval, ReadWriteListener)</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.readRssi(ReadWriteListener)</code></a>, etc.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></span></code> +<div class="block">Provides a bunch of information about a completed read, write, or notification.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a></span></code> +<div class="block">A value returned to <a href="../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html#onEvent-T_Event-"><code>GenericListener_Void.onEvent(Event)</code></a> + by way of <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#status--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.status()</code></a> that indicates success of the + operation or the reason for its failure.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a></span></code> +<div class="block">The type of GATT "object", provided by <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.target()</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a></span></code> +<div class="block">The type of operation for a <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> - read, write, poll, etc.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.GenericListener_Void"> +<!-- --> +</a> +<h3>Methods inherited from interface com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="interface in com.idevicesinc.sweetblue.utils">GenericListener_Void</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html#onEvent-T_Event-">onEvent</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" target="_top">Frames</a></li> +<li><a href="BleDevice.ReadWriteListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..c0542d29f85d6d2cb52c0e3fee376bc8c183945e --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html @@ -0,0 +1,325 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDevice.StateListener.StateEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDevice.StateListener.StateEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" target="_top">Frames</a></li> +<li><a href="BleDevice.StateListener.StateEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleDevice.StateListener.StateEvent" class="title">Class BleDevice.StateListener.StateEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.State.ChangeEvent</a><<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Direct Known Subclasses:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.StateChangeEvent</a></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleDevice.StateListener.StateEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a><<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a>></pre> +<div class="block">Subclass that adds the device field.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html#device--">device</a></span>()</code> +<div class="block">The device undergoing the state change.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html#gattStatus--">gattStatus</a></span>()</code> +<div class="block">The change in gattStatus that may have precipitated the state change, or <a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_STATUS_NOT_APPLICABLE"><code>BleStatuses.GATT_STATUS_NOT_APPLICABLE</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html#macAddress--">macAddress</a></span>()</code> +<div class="block">Convience to return the mac address of <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html#device--"><code>device()</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.State.ChangeEvent"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnter-T_State-">didEnter</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAll-T_State...-">didEnterAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAny-T_State...-">didEnterAny</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExit-T_State-">didExit</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAll-T_State...-">didExitAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAny-T_State...-">didExitAny</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#enterMask--">enterMask</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#exitMask--">exitMask</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#getIntent-T_State-">getIntent</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#intentMask--">intentMask</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isFor-T_State-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isForAll-T_State...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isForAny-T_State...-">isForAny</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#newStateBits--">newStateBits</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#oldStateBits--">oldStateBits</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="device--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>device</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device()</pre> +<div class="block">The device undergoing the state change.</div> +</li> +</ul> +<a name="macAddress--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>macAddress</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress()</pre> +<div class="block">Convience to return the mac address of <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html#device--"><code>device()</code></a>.</div> +</li> +</ul> +<a name="gattStatus--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>gattStatus</h4> +<pre>public int gattStatus()</pre> +<div class="block">The change in gattStatus that may have precipitated the state change, or <a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_STATUS_NOT_APPLICABLE"><code>BleStatuses.GATT_STATUS_NOT_APPLICABLE</code></a>. + For example if <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnter-T_State-"><code>State.ChangeEvent.didEnter(State)</code></a> with <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a> is <code>true</code> and + <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExit-T_State-"><code>State.ChangeEvent.didExit(State)</code></a> with <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING"><code>BleDeviceState.CONNECTING</code></a> is also <code>true</code> then <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html#gattStatus--"><code>gattStatus()</code></a> may be greater + than zero and give some further hint as to why the connection failed. + <br><br> + See <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#gattStatus--"><code>BleNode.ConnectionFailListener.ConnectionFailEvent.gattStatus()</code></a> for more information.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" target="_top">Frames</a></li> +<li><a href="BleDevice.StateListener.StateEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.StateListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.StateListener.html new file mode 100644 index 0000000000000000000000000000000000000000..9d7f13c5359f200a7678fe08e4de53268a585e49 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.StateListener.html @@ -0,0 +1,254 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDevice.StateListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDevice.StateListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.StateListener.html" target="_top">Frames</a></li> +<li><a href="BleDevice.StateListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleDevice.StateListener" class="title">Interface BleDevice.StateListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleDevice.StateListener</span></pre> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleDevice.setListener_State(StateListener)</code></a> and/or + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_DeviceState-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleManager.setListener_DeviceState(BleDevice.StateListener)</code></a> to receive state change events.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleDevice.setListener_State(StateListener)</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.StateListener.StateEvent</a></span></code> +<div class="block">Subclass that adds the device field.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.StateListener.StateEvent</a> e)</code> +<div class="block">Called when a device's bitwise <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> changes.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>void onEvent(<a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.StateListener.StateEvent</a> e)</pre> +<div class="block">Called when a device's bitwise <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> changes. As many bits as possible are flipped at the same time.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.StateListener.html" target="_top">Frames</a></li> +<li><a href="BleDevice.StateListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html new file mode 100644 index 0000000000000000000000000000000000000000..5ac4d38246edb85df51723a3e6d4d634668501b5 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html @@ -0,0 +1,514 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDevice.WriteBuilder (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDevice.WriteBuilder (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" target="_top">Frames</a></li> +<li><a href="BleDevice.WriteBuilder.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleDevice.WriteBuilder" class="title">Class BleDevice.WriteBuilder</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDevice.WriteBuilder</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleDevice.WriteBuilder</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Builder class for sending a write over BLE. Use this class to set the service and/or characteristic + UUIDs, and the data you'd like to write. This class provides convenience methods for sending + booleans, ints, shorts, longs, and Strings. Use with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-com.idevicesinc.sweetblue.BleDevice.WriteBuilder-"><code>BleDevice.write(WriteBuilder)</code></a>, + or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-com.idevicesinc.sweetblue.BleDevice.WriteBuilder-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.write(WriteBuilder, ReadWriteListener)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder--">WriteBuilder</a></span>()</code> +<div class="block">Basic constructor.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-boolean-">WriteBuilder</a></span>(boolean isBigEndian)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-boolean-java.util.UUID-java.util.UUID-"><code>BleDevice.WriteBuilder(boolean, UUID, UUID)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-boolean-java.util.UUID-">WriteBuilder</a></span>(boolean isBigEndian, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUUID)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-boolean-java.util.UUID-java.util.UUID-"><code>BleDevice.WriteBuilder(boolean, UUID, UUID)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-boolean-java.util.UUID-java.util.UUID-">WriteBuilder</a></span>(boolean isBigEndian, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUUID, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUUID)</code> +<div class="block">Main constructor to use.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-java.util.UUID-">WriteBuilder</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUUID)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-boolean-java.util.UUID-java.util.UUID-"><code>BleDevice.WriteBuilder(boolean, UUID, UUID)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-java.util.UUID-java.util.UUID-">WriteBuilder</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUUID, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUUID)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-boolean-java.util.UUID-java.util.UUID-"><code>BleDevice.WriteBuilder(boolean, UUID, UUID)</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setBoolean-boolean-">setBoolean</a></span>(boolean value)</code> +<div class="block">Set the boolean to write.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setBytes-byte:A-">setBytes</a></span>(byte[] data)</code> +<div class="block">Set the raw bytes to write.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setCharacteristicUUID-java.util.UUID-">setCharacteristicUUID</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> +<div class="block">Set the characteristic UUID to write to.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setInt-int-">setInt</a></span>(int val)</code> +<div class="block">Set an int to be written.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setLong-long-">setLong</a></span>(long val)</code> +<div class="block">Set a long to be written.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setServiceUUID-java.util.UUID-">setServiceUUID</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> +<div class="block">Set the service UUID for this write.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setShort-short-">setShort</a></span>(short val)</code> +<div class="block">Set a short to be written.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setString-java.lang.String-">setString</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> value)</code> +<div class="block">Set a string to be written.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setString-java.lang.String-java.lang.String-">setString</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> value, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> stringEncoding)</code> +<div class="block">Set a string to be written.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="WriteBuilder--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WriteBuilder</h4> +<pre>public WriteBuilder()</pre> +<div class="block">Basic constructor. You must at the very least call <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setCharacteristicUUID-java.util.UUID-"><code>setCharacteristicUUID(UUID)</code></a>, and one of the + methods that add data (<a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setBytes-byte:A-"><code>setBytes(byte[])</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setInt-int-"><code>setInt(int)</code></a>, etc..) before attempting to + send the write.</div> +</li> +</ul> +<a name="WriteBuilder-boolean-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WriteBuilder</h4> +<pre>public WriteBuilder(boolean isBigEndian)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-boolean-java.util.UUID-java.util.UUID-"><code>BleDevice.WriteBuilder(boolean, UUID, UUID)</code></a>. If @param isBigEndian is true,</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>isBigEndian</code> - - if <code>true</code>, then when using <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setInt-int-"><code>setInt(int)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setShort-short-"><code>setShort(short)</code></a>, + or <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setLong-long-"><code>setLong(long)</code></a>, SweetBlue will reverse the bytes for you.</dd> +</dl> +</li> +</ul> +<a name="WriteBuilder-boolean-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WriteBuilder</h4> +<pre>public WriteBuilder(boolean isBigEndian, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUUID)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-boolean-java.util.UUID-java.util.UUID-"><code>BleDevice.WriteBuilder(boolean, UUID, UUID)</code></a>. If @param isBigEndian is true,</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>isBigEndian</code> - - if <code>true</code>, then when using <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setInt-int-"><code>setInt(int)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setShort-short-"><code>setShort(short)</code></a>, + or <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setLong-long-"><code>setLong(long)</code></a>, SweetBlue will reverse the bytes for you.</dd> +</dl> +</li> +</ul> +<a name="WriteBuilder-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WriteBuilder</h4> +<pre>public WriteBuilder(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUUID)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-boolean-java.util.UUID-java.util.UUID-"><code>BleDevice.WriteBuilder(boolean, UUID, UUID)</code></a>.</div> +</li> +</ul> +<a name="WriteBuilder-java.util.UUID-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WriteBuilder</h4> +<pre>public WriteBuilder(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUUID, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUUID)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-boolean-java.util.UUID-java.util.UUID-"><code>BleDevice.WriteBuilder(boolean, UUID, UUID)</code></a>.</div> +</li> +</ul> +<a name="WriteBuilder-boolean-java.util.UUID-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>WriteBuilder</h4> +<pre>public WriteBuilder(boolean isBigEndian, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUUID, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUUID)</pre> +<div class="block">Main constructor to use. All other constructors overload this one.</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>isBigEndian</code> - - if <code>true</code>, then when using <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setInt-int-"><code>setInt(int)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setShort-short-"><code>setShort(short)</code></a>, + or <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setLong-long-"><code>setLong(long)</code></a>, SweetBlue will reverse the bytes for you.</dd> +</dl> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="setServiceUUID-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setServiceUUID</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a> setServiceUUID(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<div class="block">Set the service UUID for this write. This is only needed when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="setCharacteristicUUID-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setCharacteristicUUID</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a> setCharacteristicUUID(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<div class="block">Set the characteristic UUID to write to.</div> +</li> +</ul> +<a name="setBytes-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setBytes</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a> setBytes(byte[] data)</pre> +<div class="block">Set the raw bytes to write.</div> +</li> +</ul> +<a name="setBoolean-boolean-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setBoolean</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a> setBoolean(boolean value)</pre> +<div class="block">Set the boolean to write.</div> +</li> +</ul> +<a name="setInt-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setInt</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a> setInt(int val)</pre> +<div class="block">Set an int to be written.</div> +</li> +</ul> +<a name="setShort-short-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setShort</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a> setShort(short val)</pre> +<div class="block">Set a short to be written.</div> +</li> +</ul> +<a name="setLong-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setLong</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a> setLong(long val)</pre> +<div class="block">Set a long to be written.</div> +</li> +</ul> +<a name="setString-java.lang.String-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setString</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a> setString(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> value, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> stringEncoding)</pre> +<div class="block">Set a string to be written. This method also allows you to specify the string encoding. If the encoding + fails, then <a href="http://d.android.com/reference/java/lang/String.html?is-external=true#getBytes--" title="class or interface in java.lang"><code>String.getBytes()</code></a> is used instead, which uses "UTF-8" by default.</div> +</li> +</ul> +<a name="setString-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>setString</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a> setString(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> value)</pre> +<div class="block">Set a string to be written. This defaults to "UTF-8" encoding.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" target="_top">Frames</a></li> +<li><a href="BleDevice.WriteBuilder.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.html new file mode 100644 index 0000000000000000000000000000000000000000..1a6565b387b8c8cca4b4cad99401f54acff440c7 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDevice.html @@ -0,0 +1,5513 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleDevice (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDevice (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":10,"i132":10,"i133":10,"i134":10,"i135":10,"i136":10,"i137":10,"i138":10,"i139":10,"i140":10,"i141":10,"i142":10,"i143":10,"i144":10,"i145":10,"i146":10,"i147":10,"i148":10,"i149":10,"i150":10,"i151":10,"i152":10,"i153":10,"i154":10,"i155":10,"i156":10,"i157":10,"i158":10,"i159":10,"i160":10,"i161":10,"i162":10,"i163":10,"i164":10,"i165":10,"i166":10,"i167":10,"i168":10,"i169":10,"i170":10,"i171":10,"i172":10,"i173":10,"i174":10,"i175":10,"i176":10,"i177":10,"i178":10,"i179":10,"i180":10,"i181":10,"i182":10,"i183":10,"i184":10,"i185":10,"i186":10,"i187":10,"i188":10,"i189":10,"i190":10,"i191":10,"i192":10,"i193":10,"i194":10,"i195":10,"i196":10,"i197":10,"i198":10,"i199":10,"i200":10,"i201":10,"i202":10,"i203":10,"i204":10,"i205":10,"i206":10,"i207":10,"i208":10,"i209":10,"i210":10,"i211":10,"i212":10,"i213":10,"i214":10,"i215":10,"i216":10,"i217":10,"i218":10,"i219":10,"i220":10,"i221":10,"i222":10,"i223":10,"i224":10,"i225":10,"i226":10,"i227":10,"i228":10,"i229":10,"i230":10,"i231":10,"i232":10,"i233":10,"i234":10,"i235":10,"i236":10,"i237":10,"i238":10,"i239":10,"i240":10,"i241":10,"i242":10,"i243":10,"i244":10,"i245":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.html" target="_top">Frames</a></li> +<li><a href="BleDevice.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleDevice" class="title">Class BleDevice</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">com.idevicesinc.sweetblue.BleNode</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDevice</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">BleDevice</span> +extends <a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></pre> +<div class="block">This is the one other class you will use the most besides <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>. + It acts as a BLE-specific abstraction for the <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothDevice</code></a> and + <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGatt</code></a> classes. It does everything you would expect, like + providing methods for connecting, reading/writing characteristics, enabling + notifications, etc. + <br><br> + Although instances of this class can be created explicitly through + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-java.lang.String-"><code>BleManager.newDevice(String, String)</code></a>, usually they're created + implicitly by <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> as a result of a scanning operation (e.g. + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a>) and sent to you through + <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"><code>BleManager.DiscoveryListener.onEvent(BleManager.DiscoveryListener.DiscoveryEvent)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Class and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.BondListener</a></span></code> +<div class="block">Pass an instance of this listener to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_Bond-com.idevicesinc.sweetblue.BleDevice.BondListener-"><code>setListener_Bond(BondListener)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond-com.idevicesinc.sweetblue.BleDevice.BondListener-"><code>bond(BondListener)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a></span></code> +<div class="block">Provide an implementation of this callback to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>setListener_ConnectionFail(ConnectionFailListener)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleDevice.DefaultConnectionFailListener</a></span></code> +<div class="block">Default implementation of <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener</code></a> that attempts a certain number of retries.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a></span></code> +<div class="block">Provide an implementation of this callback to various methods like <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>read(UUID, ReadWriteListener)</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>write(UUID, byte[], ReadWriteListener)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(UUID, Interval, ReadWriteListener)</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, ReadWriteListener)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>readRssi(ReadWriteListener)</code></a>, etc.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a></span></code> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_State(StateListener)</code></a> and/or + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_DeviceState-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleManager.setListener_DeviceState(BleDevice.StateListener)</code></a> to receive state change events.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></span></code> +<div class="block">Builder class for sending a write over BLE.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleNode"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener</a></code></li> +</ul> +</li> +</ul> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL">NULL</a></span></code> +<div class="block">Special value that is used in place of Java's built-in <code>null</code>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.com.idevicesinc.sweetblue.BleNode"> +<!-- --> +</a> +<h3>Fields inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNode.html#appData">appData</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#EMPTY_LIST">EMPTY_LIST</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#EMPTY_UUID_ARRAY">EMPTY_UUID_ARRAY</a></code></li> +</ul> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-">addHistoricalData</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + byte[] data)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>addHistoricalData(UUID, byte[], EpochTime)</code></a> but uses <a href="http://d.android.com/reference/java/lang/System.html?is-external=true#currentTimeMillis--" title="class or interface in java.lang"><code>System.currentTimeMillis()</code></a> for the timestamp.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-">addHistoricalData</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime)</code> +<div class="block">Manual way to add data to the historical data list managed by this device.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTime-byte:A-">addHistoricalData</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime, + byte[] data)</code> +<div class="block">Just an overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>addHistoricalData(UUID, byte[], EpochTime)</code></a> with the data and epochTime parameters switched around.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Returning-">addHistoricalData</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Returning</a><<a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> historicalData)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>addHistoricalData(UUID, byte[], EpochTime)</code></a> but for large datasets this is more efficient when writing to disk.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.utils.HistoricalData-">addHistoricalData</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> historicalData)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>addHistoricalData(UUID, byte[], EpochTime)</code></a>.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-java.util.Iterator-">addHistoricalData</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> historicalData)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>addHistoricalData(UUID, byte[], EpochTime)</code></a> but for large datasets this is more efficient when writing to disk.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-java.util.List-">addHistoricalData</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> historicalData)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>addHistoricalData(UUID, byte[], EpochTime)</code></a> but for large datasets this is more efficient when writing to disk.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--">bond</a></span>()</code> +<div class="block">Attempts to create a bond.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond-com.idevicesinc.sweetblue.BleDevice.BondListener-">bond</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.BondListener</a> listener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>bond()</code></a> but you can pass a listener to be notified of the details behind success or failure.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearAllData--">clearAllData</a></span>()</code> +<div class="block">One method to remove absolutely all "metadata" related to this device that is stored on disk and/or cached in memory in any way.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData_memoryOnly--">clearHistoricalData_memoryOnly</a></span>()</code> +<div class="block">Clears all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device.</div> +</td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData_memoryOnly-com.idevicesinc.sweetblue.utils.EpochTimeRange-">clearHistoricalData_memoryOnly</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> +<div class="block">Clears all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device within the given range.</div> +</td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData_memoryOnly-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">clearHistoricalData_memoryOnly</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</code> +<div class="block">Clears the first <code>count</code> number of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device within the given range.</div> +</td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData_memoryOnly-long-">clearHistoricalData_memoryOnly</a></span>(long count)</code> +<div class="block">Clears the first <code>count</code> number of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device.</div> +</td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData_memoryOnly-java.util.UUID-">clearHistoricalData_memoryOnly</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> +<div class="block">Clears all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</td> +</tr> +<tr id="i15" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData_memoryOnly-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">clearHistoricalData_memoryOnly</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> +<div class="block">Clears all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> within the given range.</div> +</td> +</tr> +<tr id="i16" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData_memoryOnly-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">clearHistoricalData_memoryOnly</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</code> +<div class="block">Clears the first <code>count</code> number of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> within the given range.</div> +</td> +</tr> +<tr id="i17" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData_memoryOnly-java.util.UUID-long-">clearHistoricalData_memoryOnly</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + long count)</code> +<div class="block">Clears the first <code>count</code> number of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</td> +</tr> +<tr id="i18" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData--">clearHistoricalData</a></span>()</code> +<div class="block">Clears all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device.</div> +</td> +</tr> +<tr id="i19" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-com.idevicesinc.sweetblue.utils.EpochTimeRange-">clearHistoricalData</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> +<div class="block">Clears all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device within the given range.</div> +</td> +</tr> +<tr id="i20" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">clearHistoricalData</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</code> +<div class="block">Clears the first <code>count</code> number of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device within the given range.</div> +</td> +</tr> +<tr id="i21" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-long-">clearHistoricalData</a></span>(long count)</code> +<div class="block">Clears the first <code>count</code> number of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device.</div> +</td> +</tr> +<tr id="i22" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-java.util.UUID...-">clearHistoricalData</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>... uuids)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-java.util.UUID-"><code>clearHistoricalData(UUID)</code></a> that just calls that method multiple times.</div> +</td> +</tr> +<tr id="i23" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-java.util.UUID-">clearHistoricalData</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> +<div class="block">Clears all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</td> +</tr> +<tr id="i24" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">clearHistoricalData</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> +<div class="block">Clears all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> within the given range.</div> +</td> +</tr> +<tr id="i25" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">clearHistoricalData</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</code> +<div class="block">Clears the first <code>count</code> number of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> within the given range.</div> +</td> +</tr> +<tr id="i26" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-java.util.UUID-long-">clearHistoricalData</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + long count)</code> +<div class="block">Clears the first <code>count</code> number of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</td> +</tr> +<tr id="i27" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearName--">clearName</a></span>()</code> +<div class="block">Clears any name previously provided through <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-"><code>setName(String)</code></a> or overloads.</div> +</td> +</tr> +<tr id="i28" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearSharedPreferences--">clearSharedPreferences</a></span>()</code> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#clearSharedPreferences-java.lang.String-"><code>BleManager.clearSharedPreferences(String)</code></a>.</div> +</td> +</tr> +<tr id="i29" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--">connect</a></span>()</code> +<div class="block">Starts a connection process, or does nothing if already <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING"><code>BleDeviceState.CONNECTING</code></a>.</div> +</td> +</tr> +<tr id="i30" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-">connect</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a> failListener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>connect()</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>setListener_ConnectionFail(ConnectionFailListener)</code></a> for you.</div> +</td> +</tr> +<tr id="i31" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-com.idevicesinc.sweetblue.BleDevice.StateListener-">connect</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a> failListener, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> stateListener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleDevice.StateListener, BleDevice.ConnectionFailListener)</code></a> + with reversed arguments.</div> +</td> +</tr> +<tr id="i32" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleDevice.StateListener-">connect</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> stateListener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>connect()</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_State(StateListener)</code></a> for you.</div> +</td> +</tr> +<tr id="i33" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-">connect</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> stateListener, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a> failListener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>connect()</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_State(StateListener)</code></a> and + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>setListener_ConnectionFail(ConnectionFailListener)</code></a> for you.</div> +</td> +</tr> +<tr id="i34" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-">connect</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a> authenticationTxn)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>connect()</code></a> but provides a hook for the app to do some kind of authentication handshake if it wishes.</div> +</td> +</tr> +<tr id="i35" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-">connect</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a> authTxn, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a> connectionFailListener)</code> +<div class="block">Yet another overload.</div> +</td> +</tr> +<tr id="i36" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleDevice.StateListener-">connect</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a> authenticationTxn, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> stateListener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>connect(BleTransaction.Auth)</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_State(StateListener)</code></a> for you.</div> +</td> +</tr> +<tr id="i37" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-">connect</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a> authenticationTxn, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> stateListener, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a> failListener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>connect(BleTransaction.Auth)</code></a> but calls + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_State(StateListener)</code></a> and + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>setListener_ConnectionFail(ConnectionFailListener)</code></a> for you.</div> +</td> +</tr> +<tr id="i38" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-">connect</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a> authenticationTxn, + <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a> initTxn)</code> +<div class="block">Combination of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>connect(BleTransaction.Auth)</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>connect(BleTransaction.Init)</code></a>.</div> +</td> +</tr> +<tr id="i39" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-">connect</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a> authenticationTxn, + <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a> initTxn, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> stateListener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>connect(BleTransaction.Auth, BleTransaction.Init)</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_State(StateListener)</code></a> for you.</div> +</td> +</tr> +<tr id="i40" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-">connect</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a> authenticationTxn, + <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a> initTxn, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> stateListener, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a> failListener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>connect(BleTransaction.Auth, BleTransaction.Init)</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_State(StateListener)</code></a> and + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>setListener_ConnectionFail(ConnectionFailListener)</code></a> for you.</div> +</td> +</tr> +<tr id="i41" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-">connect</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a> initTxn)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>connect()</code></a> but provides a hook for the app to do some kind of initialization before it's considered fully + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZED"><code>BleDeviceState.INITIALIZED</code></a>.</div> +</td> +</tr> +<tr id="i42" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-">connect</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a> initTxn, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> stateListener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>connect(BleTransaction.Init)</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_State(StateListener)</code></a> for you.</div> +</td> +</tr> +<tr id="i43" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-">connect</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a> initTxn, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> stateListener, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a> failListener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>connect(BleTransaction.Init)</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_State(StateListener)</code></a> and + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>setListener_ConnectionFail(ConnectionFailListener)</code></a> for you.</div> +</td> +</tr> +<tr id="i44" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.lang.Iterable-">disableNotify</a></span>(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids)</code> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-"><code>disableNotify(UUID)</code></a>.</div> +</td> +</tr> +<tr id="i45" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.lang.Iterable-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">disableNotify</a></span>(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(UUID, ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr id="i46" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-">disableNotify</a></span>(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout)</code> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>disableNotify(UUID, Interval)</code></a>.</div> +</td> +</tr> +<tr id="i47" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">disableNotify</a></span>(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(UUID, Interval, ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr id="i48" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-">disableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(java.util.UUID, BleDevice.ReadWriteListener)</code></a> but you can use this if you don't care about the result.</div> +</td> +</tr> +<tr id="i49" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID:A-">disableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids)</code> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-"><code>disableNotify(UUID)</code></a>.</div> +</td> +</tr> +<tr id="i50" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">disableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(UUID, ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr id="i51" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-">disableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout)</code> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>disableNotify(UUID, Interval)</code></a>.</div> +</td> +</tr> +<tr id="i52" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">disableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(UUID, Interval, BleDevice.ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr id="i53" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">disableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Disables all notifications enabled by <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, ReadWriteListener)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, Interval, ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr id="i54" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-">disableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(UUID, ReadWriteListener)</code></a> but filters on the given <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> without a listener.</div> +</td> +</tr> +<tr id="i55" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">disableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(UUID, ReadWriteListener)</code></a> but filters on the given <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a>.</div> +</td> +</tr> +<tr id="i56" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-java.util.UUID-">disableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-"><code>disableNotify(UUID)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i57" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">disableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(UUID, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i58" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-">disableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>disableNotify(UUID, Interval)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i59" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">disableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(UUID, Interval, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i60" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disconnect_remote--">disconnect_remote</a></span>()</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disconnect--"><code>disconnect()</code></a> but this call roughly simulates the disconnect as if it's because of the remote device going down, going out of range, etc.</div> +</td> +</tr> +<tr id="i61" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disconnect--">disconnect</a></span>()</code> +<div class="block">Disconnects from a connected device or does nothing if already <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>.</div> +</td> +</tr> +<tr id="i62" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.lang.Iterable-">enableNotify</a></span>(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids)</code> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-"><code>enableNotify(UUID)</code></a>.</div> +</td> +</tr> +<tr id="i63" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.lang.Iterable-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">enableNotify</a></span>(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr id="i64" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-">enableNotify</a></span>(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout)</code> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>enableNotify(UUID, Interval)</code></a>.</div> +</td> +</tr> +<tr id="i65" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">enableNotify</a></span>(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, Interval, ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr id="i66" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-">enableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(java.util.UUID, BleDevice.ReadWriteListener)</code></a> but you can use + this if you don't need a callback.</div> +</td> +</tr> +<tr id="i67" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID:A-">enableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids)</code> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-"><code>enableNotify(UUID)</code></a>.</div> +</td> +</tr> +<tr id="i68" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">enableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr id="i69" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-">enableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout)</code> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>enableNotify(UUID, Interval)</code></a>.</div> +</td> +</tr> +<tr id="i70" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">enableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, Interval, ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr id="i71" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">enableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Enables notification on the given characteristic.</div> +</td> +</tr> +<tr id="i72" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-">enableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> but you can use + this if you don't need a callback.</div> +</td> +</tr> +<tr id="i73" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">enableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, ReadWriteListener)</code></a> but forces a read after a given amount of time.</div> +</td> +</tr> +<tr id="i74" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-java.util.UUID-">enableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-"><code>enableNotify(UUID)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i75" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">enableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i76" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-">enableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>enableNotify(UUID, Interval)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i77" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">enableNotify</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, Interval, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i78" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#equals-com.idevicesinc.sweetblue.BleDevice-">equals</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device_nullable)</code> +<div class="block">First checks referential equality and if <code>false</code> checks + equality of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getMacAddress--"><code>getMacAddress()</code></a>.</div> +</td> +</tr> +<tr id="i79" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#equals-java.lang.Object-">equals</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> object_nullable)</code> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#equals-com.idevicesinc.sweetblue.BleDevice-"><code>equals(BleDevice)</code></a> if object is an instance of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>.</div> +</td> +</tr> +<tr id="i80" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getAdvertisedServiceData--">getAdvertisedServiceData</a></span>()</code> +<div class="block">Returns the manufacturer data, if any, parsed from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getScanRecord--"><code>getScanRecord()</code></a>.</div> +</td> +</tr> +<tr id="i81" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getAdvertisedServices--">getAdvertisedServices</a></span>()</code> +<div class="block">Returns the advertised services, if any, parsed from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getScanRecord--"><code>getScanRecord()</code></a>.</div> +</td> +</tr> +<tr id="i82" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getAdvertisingFlags--">getAdvertisingFlags</a></span>()</code> +<div class="block">Returns the advertising flags, if any, parse from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getScanRecord--"><code>getScanRecord()</code></a>.</div> +</td> +</tr> +<tr id="i83" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getAverageReadTime--">getAverageReadTime</a></span>()</code> +<div class="block">See similar explanation for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getAverageWriteTime--"><code>getAverageWriteTime()</code></a>.</div> +</td> +</tr> +<tr id="i84" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getAverageWriteTime--">getAverageWriteTime</a></span>()</code> +<div class="block">Returns the average round trip time in seconds for all write operations started with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>write(UUID, byte[])</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>write(UUID, byte[], ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr id="i85" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getConnectionPriority--">getConnectionPriority</a></span>()</code> +<div class="block">Returns the connection priority value set by <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setConnectionPriority(BleConnectionPriority, ReadWriteListener)</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#DEFAULT_MTU_SIZE"><code>BleNodeConfig.DEFAULT_MTU_SIZE</code></a> if + it was never set explicitly.</div> +</td> +</tr> +<tr id="i86" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getConnectionRetryCount--">getConnectionRetryCount</a></span>()</code> +<div class="block">Returns the connection failure retry count during a retry loop.</div> +</td> +</tr> +<tr id="i87" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getDistance--">getDistance</a></span>()</code> +<div class="block">Returns the approximate distance in meters based on <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>getRssi()</code></a> and + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getTxPower--"><code>getTxPower()</code></a>.</div> +</td> +</tr> +<tr id="i88" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_atOffset-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-int-">getHistoricalData_atOffset</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + int offsetFromStart)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_atOffset-java.util.UUID-int-"><code>getHistoricalData_atOffset(java.util.UUID, int)</code></a> but offset is relative to the time range provided.</div> +</td> +</tr> +<tr id="i89" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_atOffset-java.util.UUID-int-">getHistoricalData_atOffset</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + int offsetFromStart)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>addHistoricalData(UUID, byte[], EpochTime)</code></a> but returns the data from the chronological offset, i.e.</div> +</td> +</tr> +<tr id="i90" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_cursor-java.util.UUID-">getHistoricalData_cursor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> +<div class="block">Returns a cursor capable of random access to the database-persisted historical data for this device.</div> +</td> +</tr> +<tr id="i91" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_cursor-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getHistoricalData_cursor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_cursor-java.util.UUID-"><code>getHistoricalData_cursor(UUID)</code></a> but constrains the results to the given time range.</div> +</td> +</tr> +<tr id="i92" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_forEach-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getHistoricalData_forEach</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> forEach)</code> +<div class="block">Provides all historical data through the "for each" provided within the range provided.</div> +</td> +</tr> +<tr id="i93" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_forEach-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-com.idevicesinc.sweetblue.utils.ForEach_Void-">getHistoricalData_forEach</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> forEach)</code> +<div class="block">Provides all historical data through the "for each" provided within the range provided.</div> +</td> +</tr> +<tr id="i94" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_forEach-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getHistoricalData_forEach</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> forEach)</code> +<div class="block">Provides all historical data through the "for each" provided.</div> +</td> +</tr> +<tr id="i95" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_forEach-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-">getHistoricalData_forEach</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> forEach)</code> +<div class="block">Provides all historical data through the "for each" provided.</div> +</td> +</tr> +<tr id="i96" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_iterator-java.util.UUID-">getHistoricalData_iterator</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> +<div class="block">Returns an iterator that will iterate through all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> entries.</div> +</td> +</tr> +<tr id="i97" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_iterator-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getHistoricalData_iterator</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> +<div class="block">Returns an iterator that will iterate through all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> entries within the range provided.</div> +</td> +</tr> +<tr id="i98" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_latest-java.util.UUID-">getHistoricalData_latest</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> +<div class="block">Returns the cached data from the lastest successful read or notify received for a given uuid.</div> +</td> +</tr> +<tr id="i99" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalDataCount-java.util.UUID-">getHistoricalDataCount</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> +<div class="block">Returns the number of historical data entries that have been logged for the device's given characteristic.</div> +</td> +</tr> +<tr id="i100" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalDataCount-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getHistoricalDataCount</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> +<div class="block">Returns the number of historical data entries that have been logged + for the device's given characteristic within the range provided.</div> +</td> +</tr> +<tr id="i101" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalDataTableName-java.util.UUID-">getHistoricalDataTableName</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> +<div class="block">Returns the database table name for the underlying store of historical data for the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</td> +</tr> +<tr id="i102" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getIndex--">getIndex</a></span>()</code> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDeviceIndex-com.idevicesinc.sweetblue.BleDevice-"><code>BleManager.getDeviceIndex(BleDevice)</code></a>.</div> +</td> +</tr> +<tr id="i103" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getLastDisconnectIntent--">getLastDisconnectIntent</a></span>()</code> +<div class="block">This enum gives you an indication of the last interaction with a device across app sessions or in-app BLE + <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>-><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a> cycles or undiscovery->rediscovery, which + basically means how it was last <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>.</div> +</td> +</tr> +<tr id="i104" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getLastDiscoveryTime--">getLastDiscoveryTime</a></span>()</code> +<div class="block">Returns the last time the device was <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#DISCOVERED"><code>BleManager.DiscoveryListener.LifeCycle.DISCOVERED</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#REDISCOVERED"><code>BleManager.DiscoveryListener.LifeCycle.REDISCOVERED</code></a>.</div> +</td> +</tr> +<tr id="i105" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getMacAddress--">getMacAddress</a></span>()</code> +<div class="block">Returns the MAC address of this device, as retrieved from the native stack or provided through <a href="../../../com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-"><code>BleManager.newDevice(String)</code></a> (or overloads thereof).</div> +</td> +</tr> +<tr id="i106" class="altColor"> +<td class="colFirst"><code>byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getManufacturerData--">getManufacturerData</a></span>()</code> +<div class="block">Returns the manufacturer data, if any, parsed from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getScanRecord--"><code>getScanRecord()</code></a>.</div> +</td> +</tr> +<tr id="i107" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getManufacturerId--">getManufacturerId</a></span>()</code> +<div class="block">Returns the manufacturer id, if any, parsed from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getScanRecord--"><code>getScanRecord()</code></a> }.</div> +</td> +</tr> +<tr id="i108" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getMtu--">getMtu</a></span>()</code> +<div class="block">Returns the "maximum transmission unit" value set by <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setMtu(int, ReadWriteListener)</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#DEFAULT_MTU_SIZE"><code>BleNodeConfig.DEFAULT_MTU_SIZE</code></a> if + it was never set explicitly.</div> +</td> +</tr> +<tr id="i109" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_debug--">getName_debug</a></span>()</code> +<div class="block">Returns a name useful for logging and debugging.</div> +</td> +</tr> +<tr id="i110" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_native--">getName_native</a></span>()</code> +<div class="block">Returns the raw, unmodified device name retrieved from the stack.</div> +</td> +</tr> +<tr id="i111" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_normalized--">getName_normalized</a></span>()</code> +<div class="block">The name retrieved from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_native--"><code>getName_native()</code></a> can change arbitrarily, + like the last 4 of the MAC address can get appended sometimes, and spaces + might get changed to underscores or vice-versa, caps to lowercase, etc.</div> +</td> +</tr> +<tr id="i112" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_override--">getName_override</a></span>()</code> +<div class="block">By default returns the same value as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_native--"><code>getName_native()</code></a>.</div> +</td> +</tr> +<tr id="i113" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth">BluetoothDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getNative--">getNative</a></span>()</code> +<div class="block">Provides just-in-case lower-level access to the native device instance.</div> +</td> +</tr> +<tr id="i114" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGatt</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getNativeGatt--">getNativeGatt</a></span>()</code> +<div class="block">See pertinent warning for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getNative--"><code>getNative()</code></a>.</div> +</td> +</tr> +<tr id="i115" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getNativeStateMask--">getNativeStateMask</a></span>()</code> +<div class="block">Returns the actual native state mask representation of the <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> for this device.</div> +</td> +</tr> +<tr id="i116" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getNext--">getNext</a></span>()</code> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-"><code>BleManager.getDevice_next(BleDevice)</code></a>.</div> +</td> +</tr> +<tr id="i117" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getNext-com.idevicesinc.sweetblue.BleDeviceState-">getNext</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</code> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleManager.getDevice_next(BleDevice, BleDeviceState)</code></a>.</div> +</td> +</tr> +<tr id="i118" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getNext-java.lang.Object...-">getNext</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</code> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-java.lang.Object...-"><code>BleManager.getDevice_next(BleDevice, Object...)</code></a>.</div> +</td> +</tr> +<tr id="i119" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue">BleDeviceOrigin</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getOrigin--">getOrigin</a></span>()</code> +<div class="block">How the device was originally created, either from scanning or explicit creation.</div> +</td> +</tr> +<tr id="i120" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getPrevious--">getPrevious</a></span>()</code> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-"><code>BleManager.getDevice_previous(BleDevice)</code></a>.</div> +</td> +</tr> +<tr id="i121" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getPrevious-com.idevicesinc.sweetblue.BleDeviceState-">getPrevious</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</code> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleManager.getDevice_previous(BleDevice, BleDeviceState)</code></a>.</div> +</td> +</tr> +<tr id="i122" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getPrevious-java.lang.Object...-">getPrevious</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</code> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-java.lang.Object...-"><code>BleManager.getDevice_previous(BleDevice, Object...)</code></a>.</div> +</td> +</tr> +<tr id="i123" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--">getRssi</a></span>()</code> +<div class="block">Returns the raw RSSI retrieved from when the device was discovered, + rediscovered, or when you call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi--"><code>readRssi()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-"><code>startRssiPoll(Interval)</code></a>.</div> +</td> +</tr> +<tr id="i124" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssiPercent--">getRssiPercent</a></span>()</code> +<div class="block">Raw RSSI from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>getRssi()</code></a> is a little cryptic, so this gives you a friendly 0%-100% value for signal strength.</div> +</td> +</tr> +<tr id="i125" class="rowColor"> +<td class="colFirst"><code>byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getScanRecord--">getScanRecord</a></span>()</code> +<div class="block">Returns the scan record from when we discovered the device.</div> +</td> +</tr> +<tr id="i126" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getStateMask--">getStateMask</a></span>()</code> +<div class="block">Returns the bitwise state mask representation of <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> for this device.</div> +</td> +</tr> +<tr id="i127" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getTimeInState-com.idevicesinc.sweetblue.BleDeviceState-">getTimeInState</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</code> +<div class="block">If <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#is-com.idevicesinc.sweetblue.BleDeviceState-"><code>is(BleDeviceState)</code></a> returns true for the given state (i.e.</div> +</td> +</tr> +<tr id="i128" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getTxPower--">getTxPower</a></span>()</code> +<div class="block">Returns the calibrated transmission power of the device.</div> +</td> +</tr> +<tr id="i129" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#hasHistoricalData--">hasHistoricalData</a></span>()</code> +<div class="block">Returns <code>true</code> if there is any historical data at all for this device.</div> +</td> +</tr> +<tr id="i130" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#hasHistoricalData-com.idevicesinc.sweetblue.utils.EpochTimeRange-">hasHistoricalData</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> +<div class="block">Returns <code>true</code> if there is any historical data at all for this device within the given range.</div> +</td> +</tr> +<tr id="i131" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#hasHistoricalData-java.util.UUID-">hasHistoricalData</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> +<div class="block">Returns <code>true</code> if there is any historical data for the given uuid.</div> +</td> +</tr> +<tr id="i132" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#hasHistoricalData-java.util.UUID:A-">hasHistoricalData</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids)</code> +<div class="block">Returns <code>true</code> if there is any historical data for any of the given uuids.</div> +</td> +</tr> +<tr id="i133" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#hasHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">hasHistoricalData</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> +<div class="block">Returns <code>true</code> if there is any historical data for the given uuid within the given range.</div> +</td> +</tr> +<tr id="i134" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#is-com.idevicesinc.sweetblue.BleDeviceState-">is</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</code> +<div class="block">Returns whether the device is in the provided state.</div> +</td> +</tr> +<tr id="i135" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#is-java.lang.Object...-">is</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</code> +<div class="block">Similar to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#is-com.idevicesinc.sweetblue.BleDeviceState-"><code>is(BleDeviceState)</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isAny-com.idevicesinc.sweetblue.BleDeviceState...-"><code>isAny(BleDeviceState...)</code></a> but allows you to give a simple query + made up of <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> and <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang"><code>Boolean</code></a> pairs.</div> +</td> +</tr> +<tr id="i136" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isAll-com.idevicesinc.sweetblue.BleDeviceState...-">isAll</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a>... states)</code> +<div class="block">Returns whether the device is in all of the provided states.</div> +</td> +</tr> +<tr id="i137" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isAll-int-">isAll</a></span>(int mask_BleDeviceState)</code> +<div class="block">Returns <code>true</code> if there is complete bitwise overlap between the provided value and <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getStateMask--"><code>getStateMask()</code></a>.</div> +</td> +</tr> +<tr id="i138" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isAny-com.idevicesinc.sweetblue.BleDeviceState...-">isAny</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a>... states)</code> +<div class="block">Returns whether the device is in any of the provided states.</div> +</td> +</tr> +<tr id="i139" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isAny-int-">isAny</a></span>(int mask_BleDeviceState)</code> +<div class="block">Returns <code>true</code> if there is any bitwise overlap between the provided value and <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getStateMask--"><code>getStateMask()</code></a>.</div> +</td> +</tr> +<tr id="i140" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isConnectable--">isConnectable</a></span>()</code> +<div class="block">Convenience method to tell you whether a call to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>connect()</code></a> (or overloads) has a chance of succeeding.</div> +</td> +</tr> +<tr id="i141" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isHistoricalDataLoaded--">isHistoricalDataLoaded</a></span>()</code> +<div class="block">Returns <code>true</code> if the historical data for all historical data for + this device is loaded into memory.</div> +</td> +</tr> +<tr id="i142" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isHistoricalDataLoaded-java.util.UUID-">isHistoricalDataLoaded</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> +<div class="block">Returns <code>true</code> if the historical data for a given uuid is loaded into memory.</div> +</td> +</tr> +<tr id="i143" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isHistoricalDataLoading--">isHistoricalDataLoading</a></span>()</code> +<div class="block">Returns whether the device is currently loading any historical data to memory, either through + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>loadHistoricalData()</code></a> (or overloads) or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_iterator-java.util.UUID-"><code>getHistoricalData_iterator(UUID)</code></a> (or overloads).</div> +</td> +</tr> +<tr id="i144" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isHistoricalDataLoading-java.util.UUID-">isHistoricalDataLoading</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> +<div class="block">Returns whether the device is currently loading any historical data to memory for the given uuid, either through + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>loadHistoricalData()</code></a> (or overloads) or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_iterator-java.util.UUID-"><code>getHistoricalData_iterator(UUID)</code></a> (or overloads).</div> +</td> +</tr> +<tr id="i145" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isNotifyEnabled-java.util.UUID-">isNotifyEnabled</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> +<div class="block">Returns <code>true</code> if notifications are enabled for the given uuid.</div> +</td> +</tr> +<tr id="i146" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isNotifyEnabling-java.util.UUID-">isNotifyEnabling</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> +<div class="block">Returns <code>true</code> if SweetBlue is in the process of enabling notifications for the given uuid.</div> +</td> +</tr> +<tr id="i147" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if <code>this</code> is referentially equal to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>NULL</code></a>.</div> +</td> +</tr> +<tr id="i148" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--">loadHistoricalData</a></span>()</code> +<div class="block">Loads all historical data to memory for this device.</div> +</td> +</tr> +<tr id="i149" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener-">loadHistoricalData</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener</a> listener)</code> +<div class="block">Loads all historical data to memory for this device with a callback for when it's complete.</div> +</td> +</tr> +<tr id="i150" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData-java.util.UUID-">loadHistoricalData</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> +<div class="block">Loads all historical data to memory for this device for the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</td> +</tr> +<tr id="i151" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener-">loadHistoricalData</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener</a> listener)</code> +<div class="block">Loads all historical data to memory for this device for the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</td> +</tr> +<tr id="i152" class="altColor"> +<td class="colFirst"><code>protected com.idevicesinc.sweetblue.PA_ServiceManager</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#newServiceManager--">newServiceManager</a></span>()</code> </td> +</tr> +<tr id="i153" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#performOta-com.idevicesinc.sweetblue.BleTransaction.Ota-">performOta</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Ota</a> txn)</code> +<div class="block">Kicks off an "over the air" long-term transaction if it's not already + taking place and the device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZED"><code>BleDeviceState.INITIALIZED</code></a>.</div> +</td> +</tr> +<tr id="i154" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#performTransaction-com.idevicesinc.sweetblue.BleTransaction-">performTransaction</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a> txn)</code> +<div class="block">Allows you to perform an arbitrary transaction that is not associated with any <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> like + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#PERFORMING_OTA"><code>BleDeviceState.PERFORMING_OTA</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#AUTHENTICATING"><code>BleDeviceState.AUTHENTICATING</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZING"><code>BleDeviceState.INITIALIZING</code></a>.</div> +</td> +</tr> +<tr id="i155" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.lang.Iterable-">read</a></span>(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-"><code>read(UUID)</code></a>.</div> +</td> +</tr> +<tr id="i156" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.lang.Iterable-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">read</a></span>(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>read(UUID, ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr id="i157" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-">read</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>read(java.util.UUID, BleDevice.ReadWriteListener)</code></a> but you can use this + if you don't immediately care about the result.</div> +</td> +</tr> +<tr id="i158" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID:A-">read</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-"><code>read(UUID)</code></a>.</div> +</td> +</tr> +<tr id="i159" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">read</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>read(UUID, ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr id="i160" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">read</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Reads a characteristic from the device.</div> +</td> +</tr> +<tr id="i161" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-java.util.UUID-">read</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-"><code>read(UUID)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i162" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">read</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>read(UUID, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i163" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readBatteryLevel-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">readBatteryLevel</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Read the battery level of this device.</div> +</td> +</tr> +<tr id="i164" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readBatteryLevel-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">readBatteryLevel</a></span>(byte[] valueToMatch, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">This method is intended to be used when the device has 2 battery characteristics in the same service.</div> +</td> +</tr> +<tr id="i165" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readBatteryLevel-byte:A-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">readBatteryLevel</a></span>(byte[] valueToMatch, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Read the battery level of this device.</div> +</td> +</tr> +<tr id="i166" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-">readDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid)</code> +<div class="block">Reads from the device without a callback - the callback will still be sent through any listeners provided + to either <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setListener_ReadWrite(ReadWriteListener)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleManager.setListener_ReadWrite(com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr id="i167" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">readDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Reads from the device with a callback.</div> +</td> +</tr> +<tr id="i168" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-java.util.UUID-">readDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-"><code>readDescriptor(UUID)</code></a> for when you have descriptors with identical uuids under different services.</div> +</td> +</tr> +<tr id="i169" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">readDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>readDescriptor(UUID, ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics.</div> +</td> +</tr> +<tr id="i170" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-">readDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>readDescriptor(UUID, ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics and/or services.</div> +</td> +</tr> +<tr id="i171" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">readDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>readDescriptor(UUID, ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics and/or services.</div> +</td> +</tr> +<tr id="i172" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi--">readRssi</a></span>()</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>readRssi(ReadWriteListener)</code></a> but use this method when you don't much care when/if the RSSI is actually updated.</div> +</td> +</tr> +<tr id="i173" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">readRssi</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Wrapper for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#readRemoteRssi--" title="class or interface in android.bluetooth"><code>BluetoothGatt.readRemoteRssi()</code></a>.</div> +</td> +</tr> +<tr id="i174" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_abort--">reliableWrite_abort</a></span>()</code> +<div class="block">Wrapper for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#abortReliableWrite--" title="class or interface in android.bluetooth"><code>BluetoothGatt.abortReliableWrite()</code></a> - will return an event such that <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isNull--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.isNull()</code></a> will + return <code>false</code> if there are no problems.</div> +</td> +</tr> +<tr id="i175" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_begin-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">reliableWrite_begin</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Wrapper for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#beginReliableWrite--" title="class or interface in android.bluetooth"><code>BluetoothGatt.beginReliableWrite()</code></a> - will return an event such that <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isNull--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.isNull()</code></a> will + return <code>false</code> if there are no problems.</div> +</td> +</tr> +<tr id="i176" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_execute--">reliableWrite_execute</a></span>()</code> +<div class="block">Wrapper for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#abortReliableWrite--" title="class or interface in android.bluetooth"><code>BluetoothGatt.abortReliableWrite()</code></a> - will return an event such that <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isNull--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.isNull()</code></a> will + return <code>false</code> if there are no problems.</div> +</td> +</tr> +<tr id="i177" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConfig-com.idevicesinc.sweetblue.BleDeviceConfig-">setConfig</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a> config_nullable)</code> +<div class="block">Optionally sets overrides for any custom options given to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(android.content.Context, BleManagerConfig)</code></a> + for this individual device.</div> +</td> +</tr> +<tr id="i178" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-">setConnectionPriority</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a> connectionPriority)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setConnectionPriority(BleConnectionPriority, ReadWriteListener)</code></a> but use this method when you don't much care when/if the connection priority is updated.</div> +</td> +</tr> +<tr id="i179" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">setConnectionPriority</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a> connectionPriority, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Wrapper for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#requestConnectionPriority-int-" title="class or interface in android.bluetooth"><code>BluetoothGatt.requestConnectionPriority(int)</code></a> which attempts to change the connection priority for a given connection.</div> +</td> +</tr> +<tr id="i180" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_Bond-com.idevicesinc.sweetblue.BleDevice.BondListener-">setListener_Bond</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.BondListener</a> listener_nullable)</code> +<div class="block">Set a listener here to be notified whenever a bond attempt succeeds.</div> +</td> +</tr> +<tr id="i181" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-">setListener_ConnectionFail</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a> listener_nullable)</code> +<div class="block">Set a listener here to be notified whenever a connection fails and to + have control over retry behavior.</div> +</td> +</tr> +<tr id="i182" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_HistoricalDataLoad-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener-">setListener_HistoricalDataLoad</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener</a> listener_nullable)</code> +<div class="block">Sets a default backup <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleNode.HistoricalDataLoadListener</code></a> that will be invoked + for all historical data loads to memory for all uuids.</div> +</td> +</tr> +<tr id="i183" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">setListener_ReadWrite</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener_nullable)</code> +<div class="block">Sets a default backup <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener</code></a> that will be called for all calls to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>read(UUID, ReadWriteListener)</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>write(UUID, byte[], ReadWriteListener)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, ReadWriteListener)</code></a>, etc.</div> +</td> +</tr> +<tr id="i184" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-">setListener_State</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> listener_nullable)</code> +<div class="block">Set a listener here to be notified whenever this device's state changes.</div> +</td> +</tr> +<tr id="i185" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-">setMtu</a></span>(int mtu)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setMtu(int, ReadWriteListener)</code></a> but use this method when you don't much care when/if the "maximum transmission unit" is actually updated.</div> +</td> +</tr> +<tr id="i186" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">setMtu</a></span>(int mtu, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Wrapper for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#requestMtu-int-" title="class or interface in android.bluetooth"><code>BluetoothGatt.requestMtu(int)</code></a> which attempts to change the "maximum transmission unit" for a given connection.</div> +</td> +</tr> +<tr id="i187" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtuToDefault--">setMtuToDefault</a></span>()</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtuToDefault-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setMtuToDefault( ReadWriteListener)</code></a> but use this method when you don't much care when/if the "maximum transmission unit" is actually updated.</div> +</td> +</tr> +<tr id="i188" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtuToDefault-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">setMtuToDefault</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setMtu(int, ReadWriteListener)</code></a> that returns the "maximum transmission unit" to the default.</div> +</td> +</tr> +<tr id="i189" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-">setName</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setName(String, UUID, BleDevice.ReadWriteListener)</code></a> but will not attempt to propagate the + name change to the remote device.</div> +</td> +</tr> +<tr id="i190" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-java.util.UUID-">setName</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setName(String, UUID, BleDevice.ReadWriteListener)</code></a> but you can use this + if you don't care much whether the device name change actually successfully reaches + the remote device.</div> +</td> +</tr> +<tr id="i191" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">setName</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Sets the local name of the device and also attempts a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>write(java.util.UUID, byte[], BleDevice.ReadWriteListener)</code></a> + using the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</td> +</tr> +<tr id="i192" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-">startChangeTrackingPoll</a></span>(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startChangeTrackingPoll(java.util.UUID[], Interval, BleDevice.ReadWriteListener)</code></a> but without a listener.</div> +</td> +</tr> +<tr id="i193" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">startChangeTrackingPoll</a></span>(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Convenience to call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startChangeTrackingPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> for multiple + characteristic uuids all at once.</div> +</td> +</tr> +<tr id="i194" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-">startChangeTrackingPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startChangeTrackingPoll(java.util.UUID[], Interval, BleDevice.ReadWriteListener)</code></a> but without a listener.</div> +</td> +</tr> +<tr id="i195" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">startChangeTrackingPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Convenience to call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startChangeTrackingPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> for multiple + characteristic uuids all at once.</div> +</td> +</tr> +<tr id="i196" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">startChangeTrackingPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Similar to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(UUID, Interval, ReadWriteListener)</code></a> but only + invokes a callback when a change in the characteristic value is detected.</div> +</td> +</tr> +<tr id="i197" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">startChangeTrackingPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startChangeTrackingPoll(UUID, Interval, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i198" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-">startPoll</a></span>(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(java.util.UUID[], Interval, BleDevice.ReadWriteListener)</code></a> but without a listener.</div> +</td> +</tr> +<tr id="i199" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">startPoll</a></span>(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Convenience to call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> for multiple + characteristic uuids all at once.</div> +</td> +</tr> +<tr id="i200" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-">startPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(java.util.UUID[], Interval, BleDevice.ReadWriteListener)</code></a> but without a listener.</div> +</td> +</tr> +<tr id="i201" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">startPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Convenience to call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> for multiple + characteristic uuids all at once.</div> +</td> +</tr> +<tr id="i202" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-">startPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> but without a listener.</div> +</td> +</tr> +<tr id="i203" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">startPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Starts a periodic read of a particular characteristic.</div> +</td> +</tr> +<tr id="i204" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-">startPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>startPoll(UUID, Interval)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i205" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">startPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(UUID, Interval, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i206" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-">startRssiPoll</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(UUID, Interval, ReadWriteListener)</code></a> but for when you don't care when/if the RSSI is actually updated.</div> +</td> +</tr> +<tr id="i207" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">startRssiPoll</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Kicks off a poll that automatically calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>readRssi(ReadWriteListener)</code></a> at the <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> frequency + specified.</div> +</td> +</tr> +<tr id="i208" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.lang.Iterable-">stopPoll</a></span>(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> uuids)</code> +<div class="block">Calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-"><code>stopPoll(java.util.UUID)</code></a> multiple times for you.</div> +</td> +</tr> +<tr id="i209" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-">stopPoll</a></span>(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> uuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</code> +<div class="block">Calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>stopPoll(java.util.UUID, Interval)</code></a> multiple times for you.</div> +</td> +</tr> +<tr id="i210" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">stopPoll</a></span>(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> uuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>stopPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> multiple times for you.</div> +</td> +</tr> +<tr id="i211" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-">stopPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>stopPoll(java.util.UUID, BleDevice.ReadWriteListener)</code></a> but without the listener.</div> +</td> +</tr> +<tr id="i212" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID:A-">stopPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids)</code> +<div class="block">Calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-"><code>stopPoll(java.util.UUID)</code></a> multiple times for you.</div> +</td> +</tr> +<tr id="i213" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-">stopPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</code> +<div class="block">Calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>stopPoll(java.util.UUID, Interval)</code></a> multiple times for you.</div> +</td> +</tr> +<tr id="i214" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">stopPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>stopPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> multiple times for you.</div> +</td> +</tr> +<tr id="i215" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">stopPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Stops a poll(s) started by either <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(UUID, Interval, ReadWriteListener)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startChangeTrackingPoll(UUID, Interval, ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr id="i216" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-">stopPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>stopPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> but without the listener.</div> +</td> +</tr> +<tr id="i217" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">stopPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>stopPoll(UUID, ReadWriteListener)</code></a> but with added filtering for the poll <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a>.</div> +</td> +</tr> +<tr id="i218" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-java.util.UUID-">stopPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-"><code>stopPoll(UUID)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i219" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">stopPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>stopPoll(UUID, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i220" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-">stopPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>stopPoll(UUID, Interval)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i221" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">stopPoll</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>stopPoll(UUID, Interval, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i222" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopRssiPoll--">stopRssiPoll</a></span>()</code> +<div class="block">Stops an RSSI poll previously started either by <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-"><code>startRssiPoll(Interval)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startRssiPoll(Interval, ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr id="i223" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#toString--">toString</a></span>()</code> +<div class="block">Returns the device's name and current state for logging and debugging purposes.</div> +</td> +</tr> +<tr id="i224" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#unbond--">unbond</a></span>()</code> +<div class="block">Opposite of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>bond()</code></a>.</div> +</td> +</tr> +<tr id="i225" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#undiscover--">undiscover</a></span>()</code> +<div class="block">Convenience method that calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#undiscover-com.idevicesinc.sweetblue.BleDevice-"><code>BleManager.undiscover(BleDevice)</code></a>.</div> +</td> +</tr> +<tr id="i226" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-com.idevicesinc.sweetblue.BleDevice.WriteBuilder-">write</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a> writeBuilder)</code> +<div class="block">Writes to the device without a callback.</div> +</td> +</tr> +<tr id="i227" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-com.idevicesinc.sweetblue.BleDevice.WriteBuilder-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">write</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a> writeBuilder, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Writes to the device with a callback.</div> +</td> +</tr> +<tr id="i228" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-">write</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + byte[] data)</code> +<div class="block">Writes to the device without a callback.</div> +</td> +</tr> +<tr id="i229" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">write</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Writes to the device with a callback.</div> +</td> +</tr> +<tr id="i230" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-">write</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData)</code> +<div class="block">Writes to the device without a callback.</div> +</td> +</tr> +<tr id="i231" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">write</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Writes to the device with a callback.</div> +</td> +</tr> +<tr id="i232" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-java.util.UUID-byte:A-">write</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + byte[] data)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>write(UUID, byte[])</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i233" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">write</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>write(UUID, byte[], ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i234" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-">write</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-"><code>write(UUID, FutureData)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i235" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">write</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>write(UUID, FutureData, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i236" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-">writeDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + byte[] data)</code> +<div class="block">Writes to the device descriptor without a callback.</div> +</td> +</tr> +<tr id="i237" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">writeDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Writes to the device descriptor with a callback.</div> +</td> +</tr> +<tr id="i238" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-">writeDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData)</code> +<div class="block">Writes to the device descriptor without a callback.</div> +</td> +</tr> +<tr id="i239" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">writeDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Writes to the device with a callback.</div> +</td> +</tr> +<tr id="i240" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-java.util.UUID-byte:A-">writeDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + byte[] data)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-"><code>writeDescriptor(UUID, byte[])</code></a> for when you have descriptors with identical uuids under different services.</div> +</td> +</tr> +<tr id="i241" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">writeDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>writeDescriptor(UUID, byte[], ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics.</div> +</td> +</tr> +<tr id="i242" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-">writeDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-"><code>writeDescriptor(UUID, byte[])</code></a> for when you have descriptors with identical uuids under different services.</div> +</td> +</tr> +<tr id="i243" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">writeDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>writeDescriptor(UUID, byte[], ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics.</div> +</td> +</tr> +<tr id="i244" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">writeDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>writeDescriptor(UUID, byte[], ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics and/or services.</div> +</td> +</tr> +<tr id="i245" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">writeDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>writeDescriptor(UUID, byte[], ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics and/or services.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.BleNode"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNode.html#appData--">appData</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#cast--">cast</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#cast-java.lang.Class-">cast</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getManager--">getManager</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristic-java.util.UUID-">getNativeCharacteristic</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristic-java.util.UUID-java.util.UUID-">getNativeCharacteristic</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics_List--">getNativeCharacteristics_List</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics_List-java.util.UUID-">getNativeCharacteristics_List</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics--">getNativeCharacteristics</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeCharacteristics</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeCharacteristics</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-">getNativeCharacteristics</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeCharacteristics</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeCharacteristics</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor_inChar-java.util.UUID-java.util.UUID-">getNativeDescriptor_inChar</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor_inService-java.util.UUID-java.util.UUID-">getNativeDescriptor_inService</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor-java.util.UUID-">getNativeDescriptor</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-">getNativeDescriptor</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar_List-java.util.UUID-">getNativeDescriptors_inChar_List</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar-java.util.UUID-">getNativeDescriptors_inChar</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeDescriptors_inChar</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeDescriptors_inChar</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService_List-java.util.UUID-">getNativeDescriptors_inService_List</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService-java.util.UUID-">getNativeDescriptors_inService</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeDescriptors_inService</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeDescriptors_inService</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_List--">getNativeDescriptors_List</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_List-java.util.UUID-java.util.UUID-">getNativeDescriptors_List</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors--">getNativeDescriptors</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeDescriptors</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeDescriptors</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-java.util.UUID-java.util.UUID-">getNativeDescriptors</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeDescriptors</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeDescriptors</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeService-java.util.UUID-">getNativeService</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeServices_List--">getNativeServices_List</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeServices--">getNativeServices</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeServices-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeServices</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeServices-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeServices</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getServiceManager--">getServiceManager</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-">newHistoricalData</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#queryHistoricalData-java.lang.String-">queryHistoricalData</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#queryHistoricalData-java.lang.String-com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener-">queryHistoricalData</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#select--">select</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> NULL</pre> +<div class="block">Special value that is used in place of Java's built-in <code>null</code>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="reliableWrite_begin-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>reliableWrite_begin</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> reliableWrite_begin(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Wrapper for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#beginReliableWrite--" title="class or interface in android.bluetooth"><code>BluetoothGatt.beginReliableWrite()</code></a> - will return an event such that <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isNull--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.isNull()</code></a> will + return <code>false</code> if there are no problems. After calling this you should do a few <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>write(UUID, byte[])</code></a> + calls then call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_execute--"><code>reliableWrite_execute()</code></a>.</div> +</li> +</ul> +<a name="reliableWrite_abort--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>reliableWrite_abort</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> reliableWrite_abort()</pre> +<div class="block">Wrapper for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#abortReliableWrite--" title="class or interface in android.bluetooth"><code>BluetoothGatt.abortReliableWrite()</code></a> - will return an event such that <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isNull--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.isNull()</code></a> will + return <code>false</code> if there are no problems. This call requires a previous call to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_begin-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>reliableWrite_begin(ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="reliableWrite_execute--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>reliableWrite_execute</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> reliableWrite_execute()</pre> +<div class="block">Wrapper for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#abortReliableWrite--" title="class or interface in android.bluetooth"><code>BluetoothGatt.abortReliableWrite()</code></a> - will return an event such that <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isNull--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.isNull()</code></a> will + return <code>false</code> if there are no problems. This call requires a previous call to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_begin-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>reliableWrite_begin(ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="newServiceManager--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newServiceManager</h4> +<pre>protected com.idevicesinc.sweetblue.PA_ServiceManager newServiceManager()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/BleNode.html#newServiceManager--">newServiceManager</a></code> in class <code><a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></code></dd> +</dl> +</li> +</ul> +<a name="setConfig-com.idevicesinc.sweetblue.BleDeviceConfig-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setConfig</h4> +<pre>public void setConfig(<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a> config_nullable)</pre> +<div class="block">Optionally sets overrides for any custom options given to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(android.content.Context, BleManagerConfig)</code></a> + for this individual device.</div> +</li> +</ul> +<a name="getOrigin--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getOrigin</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue">BleDeviceOrigin</a> getOrigin()</pre> +<div class="block">How the device was originally created, either from scanning or explicit creation. + <br><br> + NOTE: That devices for which this returns <a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html#EXPLICIT"><code>BleDeviceOrigin.EXPLICIT</code></a> may still be + <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#REDISCOVERED"><code>BleManager.DiscoveryListener.LifeCycle.REDISCOVERED</code></a> through <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a>.</div> +</li> +</ul> +<a name="getLastDiscoveryTime--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getLastDiscoveryTime</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> getLastDiscoveryTime()</pre> +<div class="block">Returns the last time the device was <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#DISCOVERED"><code>BleManager.DiscoveryListener.LifeCycle.DISCOVERED</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#REDISCOVERED"><code>BleManager.DiscoveryListener.LifeCycle.REDISCOVERED</code></a>. If <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getOrigin--"><code>getOrigin()</code></a> returns + <a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html#EXPLICIT"><code>BleDeviceOrigin.EXPLICIT</code></a> then this will return <a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html#NULL"><code>EpochTime.NULL</code></a> unless or until + the device is <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#REDISCOVERED"><code>BleManager.DiscoveryListener.LifeCycle.REDISCOVERED</code></a>.</div> +</li> +</ul> +<a name="getLastDisconnectIntent--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getLastDisconnectIntent</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a> getLastDisconnectIntent()</pre> +<div class="block">This enum gives you an indication of the last interaction with a device across app sessions or in-app BLE + <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>-><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a> cycles or undiscovery->rediscovery, which + basically means how it was last <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>. + <br><br> + If <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#NULL"><code>State.ChangeIntent.NULL</code></a>, then the last disconnect is unknown because + (a) device has never been seen before, + (b) reason for disconnect was app being killed and <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#manageLastDisconnectOnDisk"><code>BleDeviceConfig.manageLastDisconnectOnDisk</code></a> was <code>false</code>, + (c) app user cleared app data between app sessions or reinstalled the app. + <br><br> + If <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#UNINTENTIONAL"><code>State.ChangeIntent.UNINTENTIONAL</code></a>, then from a user experience perspective, the user may not have wanted + the disconnect to happen, and thus *probably* would want to be automatically connected again as soon as the device is discovered. + <br><br> + If <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#INTENTIONAL"><code>State.ChangeIntent.INTENTIONAL</code></a>, then the last reason the device was <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a> was because + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disconnect--"><code>disconnect()</code></a> was called, which most-likely means the user doesn't want to automatically connect to this device again. + <br><br> + See further explanation at <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#manageLastDisconnectOnDisk"><code>BleDeviceConfig.manageLastDisconnectOnDisk</code></a>.</div> +</li> +</ul> +<a name="setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_State</h4> +<pre>public void setListener_State(<a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> listener_nullable)</pre> +<div class="block">Set a listener here to be notified whenever this device's state changes.</div> +</li> +</ul> +<a name="setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_ConnectionFail</h4> +<pre>public void setListener_ConnectionFail(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a> listener_nullable)</pre> +<div class="block">Set a listener here to be notified whenever a connection fails and to + have control over retry behavior.</div> +</li> +</ul> +<a name="setListener_Bond-com.idevicesinc.sweetblue.BleDevice.BondListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_Bond</h4> +<pre>public void setListener_Bond(<a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.BondListener</a> listener_nullable)</pre> +<div class="block">Set a listener here to be notified whenever a bond attempt succeeds. This + will catch attempts to bond both through <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>bond()</code></a> and when bonding + through the operating system settings or from other apps.</div> +</li> +</ul> +<a name="setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_ReadWrite</h4> +<pre>public void setListener_ReadWrite(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener_nullable)</pre> +<div class="block">Sets a default backup <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener</code></a> that will be called for all calls to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>read(UUID, ReadWriteListener)</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>write(UUID, byte[], ReadWriteListener)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, ReadWriteListener)</code></a>, etc. + <br><br> + NOTE: This will be called after the <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener</code></a> provided directly through the method params.</div> +</li> +</ul> +<a name="setListener_HistoricalDataLoad-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_HistoricalDataLoad</h4> +<pre>public void setListener_HistoricalDataLoad(<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener</a> listener_nullable)</pre> +<div class="block">Sets a default backup <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleNode.HistoricalDataLoadListener</code></a> that will be invoked + for all historical data loads to memory for all uuids.</div> +</li> +</ul> +<a name="getConnectionRetryCount--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getConnectionRetryCount</h4> +<pre>public int getConnectionRetryCount()</pre> +<div class="block">Returns the connection failure retry count during a retry loop. Basic example use case is to provide a callback to + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>setListener_ConnectionFail(ConnectionFailListener)</code></a> and update your application's UI with this method's return value downstream of your + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)</code></a> override.</div> +</li> +</ul> +<a name="getStateMask--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getStateMask</h4> +<pre>public int getStateMask()</pre> +<div class="block">Returns the bitwise state mask representation of <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> for this device.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a></dd> +</dl> +</li> +</ul> +<a name="getNativeStateMask--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeStateMask</h4> +<pre>public int getNativeStateMask()</pre> +<div class="block">Returns the actual native state mask representation of the <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> for this device. + The main purpose of this is to reflect what's going on under the hood while <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#is-com.idevicesinc.sweetblue.BleDeviceState-"><code>is(BleDeviceState)</code></a> + with <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_SHORT_TERM"><code>BleDeviceState.RECONNECTING_SHORT_TERM</code></a> is <code>true</code>.</div> +</li> +</ul> +<a name="getAverageReadTime--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getAverageReadTime</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> getAverageReadTime()</pre> +<div class="block">See similar explanation for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getAverageWriteTime--"><code>getAverageWriteTime()</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getAverageWriteTime--"><code>getAverageWriteTime()</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningReadTime"><code>BleDeviceConfig.nForAverageRunningReadTime</code></a></dd> +</dl> +</li> +</ul> +<a name="getAverageWriteTime--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getAverageWriteTime</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> getAverageWriteTime()</pre> +<div class="block">Returns the average round trip time in seconds for all write operations started with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>write(UUID, byte[])</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>write(UUID, byte[], ReadWriteListener)</code></a>. This is a running average with N being defined by + <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningWriteTime"><code>BleDeviceConfig.nForAverageRunningWriteTime</code></a>. This may be useful for estimating how long a series of + reads and/or writes will take. For example for displaying the estimated time remaining for a firmware update.</div> +</li> +</ul> +<a name="getRssi--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getRssi</h4> +<pre>public int getRssi()</pre> +<div class="block">Returns the raw RSSI retrieved from when the device was discovered, + rediscovered, or when you call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi--"><code>readRssi()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-"><code>startRssiPoll(Interval)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getDistance--"><code>getDistance()</code></a></dd> +</dl> +</li> +</ul> +<a name="getRssiPercent--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getRssiPercent</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a> getRssiPercent()</pre> +<div class="block">Raw RSSI from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>getRssi()</code></a> is a little cryptic, so this gives you a friendly 0%-100% value for signal strength.</div> +</li> +</ul> +<a name="getDistance--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDistance</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a> getDistance()</pre> +<div class="block">Returns the approximate distance in meters based on <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>getRssi()</code></a> and + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getTxPower--"><code>getTxPower()</code></a>. NOTE: the higher the distance, the less the accuracy.</div> +</li> +</ul> +<a name="getTxPower--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getTxPower</h4> +<pre>public int getTxPower()</pre> +<div class="block">Returns the calibrated transmission power of the device. If this can't be + figured out from the device itself then it backs up to the value provided + in <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#defaultTxPower"><code>BleDeviceConfig.defaultTxPower</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#defaultTxPower"><code>BleDeviceConfig.defaultTxPower</code></a></dd> +</dl> +</li> +</ul> +<a name="getScanRecord--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getScanRecord</h4> +<pre>public byte[] getScanRecord()</pre> +<div class="block">Returns the scan record from when we discovered the device. May be empty but never <code>null</code>.</div> +</li> +</ul> +<a name="getAdvertisingFlags--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getAdvertisingFlags</h4> +<pre>public int getAdvertisingFlags()</pre> +<div class="block">Returns the advertising flags, if any, parse from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getScanRecord--"><code>getScanRecord()</code></a>.</div> +</li> +</ul> +<a name="getAdvertisedServices--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getAdvertisedServices</h4> +<pre>public <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] getAdvertisedServices()</pre> +<div class="block">Returns the advertised services, if any, parsed from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getScanRecord--"><code>getScanRecord()</code></a>. May be empty but never <code>null</code>.</div> +</li> +</ul> +<a name="getManufacturerData--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getManufacturerData</h4> +<pre>public byte[] getManufacturerData()</pre> +<div class="block">Returns the manufacturer data, if any, parsed from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getScanRecord--"><code>getScanRecord()</code></a>. May be empty but never <code>null</code>.</div> +</li> +</ul> +<a name="getManufacturerId--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getManufacturerId</h4> +<pre>public int getManufacturerId()</pre> +<div class="block">Returns the manufacturer id, if any, parsed from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getScanRecord--"><code>getScanRecord()</code></a> }. May be -1 if not set</div> +</li> +</ul> +<a name="getAdvertisedServiceData--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getAdvertisedServiceData</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> getAdvertisedServiceData()</pre> +<div class="block">Returns the manufacturer data, if any, parsed from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getScanRecord--"><code>getScanRecord()</code></a>. May be empty but never <code>null</code>.</div> +</li> +</ul> +<a name="getHistoricalDataTableName-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getHistoricalDataTableName</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getHistoricalDataTableName(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<div class="block">Returns the database table name for the underlying store of historical data for the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</li> +</ul> +<a name="getHistoricalData_cursor-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getHistoricalData_cursor</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a> getHistoricalData_cursor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<div class="block">Returns a cursor capable of random access to the database-persisted historical data for this device. + Unlike calls to methods like <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_iterator-java.util.UUID-"><code>getHistoricalData_iterator(UUID)</code></a> and other overloads, + this call does not force bulk data load into memory. + <br><br> + NOTE: You must call <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#close--"><code>HistoricalDataCursor.close()</code></a> when you are done with the data.</div> +</li> +</ul> +<a name="getHistoricalData_cursor-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getHistoricalData_cursor</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a> getHistoricalData_cursor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_cursor-java.util.UUID-"><code>getHistoricalData_cursor(UUID)</code></a> but constrains the results to the given time range. + <br><br> + NOTE: You must call <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#close--"><code>HistoricalDataCursor.close()</code></a> when you are done with the data.</div> +</li> +</ul> +<a name="loadHistoricalData--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>loadHistoricalData</h4> +<pre>public void loadHistoricalData()</pre> +<div class="block">Loads all historical data to memory for this device.</div> +</li> +</ul> +<a name="loadHistoricalData-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>loadHistoricalData</h4> +<pre>public void loadHistoricalData(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<div class="block">Loads all historical data to memory for this device for the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</li> +</ul> +<a name="loadHistoricalData-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>loadHistoricalData</h4> +<pre>public void loadHistoricalData(<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener</a> listener)</pre> +<div class="block">Loads all historical data to memory for this device with a callback for when it's complete.</div> +</li> +</ul> +<a name="loadHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>loadHistoricalData</h4> +<pre>public void loadHistoricalData(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener</a> listener)</pre> +<div class="block">Loads all historical data to memory for this device for the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</li> +</ul> +<a name="isHistoricalDataLoading--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isHistoricalDataLoading</h4> +<pre>public boolean isHistoricalDataLoading()</pre> +<div class="block">Returns whether the device is currently loading any historical data to memory, either through + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>loadHistoricalData()</code></a> (or overloads) or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_iterator-java.util.UUID-"><code>getHistoricalData_iterator(UUID)</code></a> (or overloads).</div> +</li> +</ul> +<a name="isHistoricalDataLoading-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isHistoricalDataLoading</h4> +<pre>public boolean isHistoricalDataLoading(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<div class="block">Returns whether the device is currently loading any historical data to memory for the given uuid, either through + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>loadHistoricalData()</code></a> (or overloads) or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_iterator-java.util.UUID-"><code>getHistoricalData_iterator(UUID)</code></a> (or overloads).</div> +</li> +</ul> +<a name="isHistoricalDataLoaded--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isHistoricalDataLoaded</h4> +<pre>public boolean isHistoricalDataLoaded()</pre> +<div class="block">Returns <code>true</code> if the historical data for all historical data for + this device is loaded into memory. + Use <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleNode.HistoricalDataLoadListener</code></a> + to listen for when the load actually completes. If <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#hasHistoricalData-java.util.UUID-"><code>hasHistoricalData(UUID)</code></a> + returns <code>false</code> then this will also always return <code>false</code>.</div> +</li> +</ul> +<a name="isHistoricalDataLoaded-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isHistoricalDataLoaded</h4> +<pre>public boolean isHistoricalDataLoaded(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<div class="block">Returns <code>true</code> if the historical data for a given uuid is loaded into memory. + Use <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleNode.HistoricalDataLoadListener</code></a> + to listen for when the load actually completes. If <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#hasHistoricalData-java.util.UUID-"><code>hasHistoricalData(UUID)</code></a> + returns <code>false</code> then this will also always return <code>false</code>.</div> +</li> +</ul> +<a name="getHistoricalData_latest-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getHistoricalData_latest</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> getHistoricalData_latest(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<div class="block">Returns the cached data from the lastest successful read or notify received for a given uuid. + Basically if you receive a <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> for which <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isRead--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.isRead()</code></a> + and <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#wasSuccess--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.wasSuccess()</code></a> both return <code>true</code> then <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.data()</code></a>, + will be cached and is retrievable by this method.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>The cached value from a previous read or notify, or <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#NULL"><code>HistoricalData.NULL</code></a> otherwise.</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="getHistoricalData_iterator-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getHistoricalData_iterator</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> getHistoricalData_iterator(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<div class="block">Returns an iterator that will iterate through all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> entries.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="getHistoricalData_iterator-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getHistoricalData_iterator</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> getHistoricalData_iterator(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +<div class="block">Returns an iterator that will iterate through all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> entries within the range provided.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="getHistoricalData_forEach-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getHistoricalData_forEach</h4> +<pre>public boolean getHistoricalData_forEach(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> forEach)</pre> +<div class="block">Provides all historical data through the "for each" provided.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if there are any entries, <code>false</code> otherwise.</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="getHistoricalData_forEach-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-com.idevicesinc.sweetblue.utils.ForEach_Void-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getHistoricalData_forEach</h4> +<pre>public boolean getHistoricalData_forEach(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> forEach)</pre> +<div class="block">Provides all historical data through the "for each" provided within the range provided.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if there are any entries, <code>false</code> otherwise.</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="getHistoricalData_forEach-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getHistoricalData_forEach</h4> +<pre>public boolean getHistoricalData_forEach(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> forEach)</pre> +<div class="block">Provides all historical data through the "for each" provided.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if there are any entries, <code>false</code> otherwise.</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="getHistoricalData_forEach-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-com.idevicesinc.sweetblue.utils.ForEach_Breakable-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getHistoricalData_forEach</h4> +<pre>public boolean getHistoricalData_forEach(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> forEach)</pre> +<div class="block">Provides all historical data through the "for each" provided within the range provided.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if there are any entries, <code>false</code> otherwise.</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="getHistoricalData_atOffset-java.util.UUID-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getHistoricalData_atOffset</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> getHistoricalData_atOffset(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + int offsetFromStart)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>addHistoricalData(UUID, byte[], EpochTime)</code></a> but returns the data from the chronological offset, i.e. <code>offsetFromStart=0</code> + will return the earliest <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a>. Use in combination with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalDataCount-java.util.UUID-"><code>getHistoricalDataCount(java.util.UUID)</code></a> to iterate + "manually" through this device's historical data for the given characteristic.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="getHistoricalData_atOffset-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getHistoricalData_atOffset</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> getHistoricalData_atOffset(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + int offsetFromStart)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_atOffset-java.util.UUID-int-"><code>getHistoricalData_atOffset(java.util.UUID, int)</code></a> but offset is relative to the time range provided.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="getHistoricalDataCount-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getHistoricalDataCount</h4> +<pre>public int getHistoricalDataCount(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<div class="block">Returns the number of historical data entries that have been logged for the device's given characteristic.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="getHistoricalDataCount-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getHistoricalDataCount</h4> +<pre>public int getHistoricalDataCount(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +<div class="block">Returns the number of historical data entries that have been logged + for the device's given characteristic within the range provided.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="hasHistoricalData--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasHistoricalData</h4> +<pre>public boolean hasHistoricalData()</pre> +<div class="block">Returns <code>true</code> if there is any historical data at all for this device.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="hasHistoricalData-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasHistoricalData</h4> +<pre>public boolean hasHistoricalData(<a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +<div class="block">Returns <code>true</code> if there is any historical data at all for this device within the given range.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="hasHistoricalData-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasHistoricalData</h4> +<pre>public boolean hasHistoricalData(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<div class="block">Returns <code>true</code> if there is any historical data for the given uuid.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="hasHistoricalData-java.util.UUID:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasHistoricalData</h4> +<pre>public boolean hasHistoricalData(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids)</pre> +<div class="block">Returns <code>true</code> if there is any historical data for any of the given uuids.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="hasHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasHistoricalData</h4> +<pre>public boolean hasHistoricalData(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +<div class="block">Returns <code>true</code> if there is any historical data for the given uuid within the given range.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>addHistoricalData</h4> +<pre>public void addHistoricalData(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime)</pre> +<div class="block">Manual way to add data to the historical data list managed by this device. You may want to use this if, + for example, your remote BLE device is capable of taking and caching independent readings while not connected. + After you connect with this device and download the log you can add it manually here. + Really you can use this for any arbitrary historical data though, even if it's not associated with a characteristic.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="addHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTime-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>addHistoricalData</h4> +<pre>public void addHistoricalData(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime, + byte[] data)</pre> +<div class="block">Just an overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>addHistoricalData(UUID, byte[], EpochTime)</code></a> with the data and epochTime parameters switched around.</div> +</li> +</ul> +<a name="addHistoricalData-java.util.UUID-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>addHistoricalData</h4> +<pre>public void addHistoricalData(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + byte[] data)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>addHistoricalData(UUID, byte[], EpochTime)</code></a> but uses <a href="http://d.android.com/reference/java/lang/System.html?is-external=true#currentTimeMillis--" title="class or interface in java.lang"><code>System.currentTimeMillis()</code></a> for the timestamp.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="addHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.utils.HistoricalData-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>addHistoricalData</h4> +<pre>public void addHistoricalData(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> historicalData)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>addHistoricalData(UUID, byte[], EpochTime)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="addHistoricalData-java.util.UUID-java.util.Iterator-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>addHistoricalData</h4> +<pre>public void addHistoricalData(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> historicalData)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>addHistoricalData(UUID, byte[], EpochTime)</code></a> but for large datasets this is more efficient when writing to disk.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="addHistoricalData-java.util.UUID-java.util.List-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>addHistoricalData</h4> +<pre>public void addHistoricalData(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> historicalData)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>addHistoricalData(UUID, byte[], EpochTime)</code></a> but for large datasets this is more efficient when writing to disk.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="addHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Returning-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>addHistoricalData</h4> +<pre>public void addHistoricalData(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Returning</a><<a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> historicalData)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>addHistoricalData(UUID, byte[], EpochTime)</code></a> but for large datasets this is more efficient when writing to disk.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="isAny-com.idevicesinc.sweetblue.BleDeviceState...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAny</h4> +<pre>public boolean isAny(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a>... states)</pre> +<div class="block">Returns whether the device is in any of the provided states.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#is-com.idevicesinc.sweetblue.BleDeviceState-"><code>is(BleDeviceState)</code></a></dd> +</dl> +</li> +</ul> +<a name="isAll-com.idevicesinc.sweetblue.BleDeviceState...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAll</h4> +<pre>public boolean isAll(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a>... states)</pre> +<div class="block">Returns whether the device is in all of the provided states.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isAny-com.idevicesinc.sweetblue.BleDeviceState...-"><code>isAny(BleDeviceState...)</code></a></dd> +</dl> +</li> +</ul> +<a name="isConnectable--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isConnectable</h4> +<pre>public boolean isConnectable()</pre> +<div class="block">Convenience method to tell you whether a call to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>connect()</code></a> (or overloads) has a chance of succeeding. + For example if the device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING_OVERALL"><code>BleDeviceState.CONNECTING_OVERALL</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZED"><code>BleDeviceState.INITIALIZED</code></a> + then this will return <code>false</code>.</div> +</li> +</ul> +<a name="is-com.idevicesinc.sweetblue.BleDeviceState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>is</h4> +<pre>public boolean is(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</pre> +<div class="block">Returns whether the device is in the provided state.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isAny-com.idevicesinc.sweetblue.BleDeviceState...-"><code>isAny(BleDeviceState...)</code></a></dd> +</dl> +</li> +</ul> +<a name="isAny-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAny</h4> +<pre>public boolean isAny(int mask_BleDeviceState)</pre> +<div class="block">Returns <code>true</code> if there is any bitwise overlap between the provided value and <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getStateMask--"><code>getStateMask()</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isAll-int-"><code>isAll(int)</code></a></dd> +</dl> +</li> +</ul> +<a name="isAll-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAll</h4> +<pre>public boolean isAll(int mask_BleDeviceState)</pre> +<div class="block">Returns <code>true</code> if there is complete bitwise overlap between the provided value and <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getStateMask--"><code>getStateMask()</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isAny-int-"><code>isAny(int)</code></a></dd> +</dl> +</li> +</ul> +<a name="is-java.lang.Object...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>is</h4> +<pre>public boolean is(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</pre> +<div class="block">Similar to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#is-com.idevicesinc.sweetblue.BleDeviceState-"><code>is(BleDeviceState)</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isAny-com.idevicesinc.sweetblue.BleDeviceState...-"><code>isAny(BleDeviceState...)</code></a> but allows you to give a simple query + made up of <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> and <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang"><code>Boolean</code></a> pairs. So an example would be + <code>myDevice.is(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING"><code>BleDeviceState.CONNECTING</code></a>, true, <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a>, false)</code>.</div> +</li> +</ul> +<a name="getTimeInState-com.idevicesinc.sweetblue.BleDeviceState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getTimeInState</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> getTimeInState(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</pre> +<div class="block">If <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#is-com.idevicesinc.sweetblue.BleDeviceState-"><code>is(BleDeviceState)</code></a> returns true for the given state (i.e. if + the device is in the given state) then this method will (a) return the + amount of time that the device has been in the state. Otherwise, this + will (b) return the amount of time that the device was *previously* in + that state. Otherwise, if the device has never been in the state, it will + (c) return 0.0 seconds. Case (b) might be useful for example for checking + how long you <i>were</i> connected for after becoming + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>, for analytics purposes or whatever.</div> +</li> +</ul> +<a name="setName-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setName</h4> +<pre>public void setName(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setName(String, UUID, BleDevice.ReadWriteListener)</code></a> but will not attempt to propagate the + name change to the remote device. Only <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_override--"><code>getName_override()</code></a> will be affected by this.</div> +</li> +</ul> +<a name="setName-java.lang.String-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setName</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> setName(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setName(String, UUID, BleDevice.ReadWriteListener)</code></a> but you can use this + if you don't care much whether the device name change actually successfully reaches + the remote device. The write will be attempted regardless.</div> +</li> +</ul> +<a name="setName-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setName</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> setName(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Sets the local name of the device and also attempts a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>write(java.util.UUID, byte[], BleDevice.ReadWriteListener)</code></a> + using the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>. Further calls to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_override--"><code>getName_override()</code></a> will immediately reflect the name given here. + Further calls to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_native--"><code>getName_native()</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_debug--"><code>getName_debug()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_normalized--"><code>getName_normalized()</code></a> will only reflect + the name given here if the write is successful. It is somewhat assumed that doing this write will cause the remote device + to use the new name given here for its device information service <a href="../../../com/idevicesinc/sweetblue/utils/Uuids.html#DEVICE_NAME"><code>Uuids.DEVICE_NAME</code></a>. + If <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#saveNameChangesToDisk"><code>BleDeviceConfig.saveNameChangesToDisk</code></a> is <code>true</code> then this name + will always be returned for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_override--"><code>getName_override()</code></a>, even if you kill/restart the app.</div> +</li> +</ul> +<a name="clearName--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearName</h4> +<pre>public void clearName()</pre> +<div class="block">Clears any name previously provided through <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-"><code>setName(String)</code></a> or overloads.</div> +</li> +</ul> +<a name="getName_override--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getName_override</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getName_override()</pre> +<div class="block">By default returns the same value as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_native--"><code>getName_native()</code></a>. + If you call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-"><code>setName(String)</code></a> (or overloads) + then calling this will return the same string provided in that setter.</div> +</li> +</ul> +<a name="getName_native--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getName_native</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getName_native()</pre> +<div class="block">Returns the raw, unmodified device name retrieved from the stack. + Equivalent to <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#getName--" title="class or interface in android.bluetooth"><code>BluetoothDevice.getName()</code></a>. It's suggested to use + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_normalized--"><code>getName_normalized()</code></a> if you're using the name to match/filter + against something, e.g. an entry in a config file or for advertising + filtering.</div> +</li> +</ul> +<a name="getName_normalized--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getName_normalized</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getName_normalized()</pre> +<div class="block">The name retrieved from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_native--"><code>getName_native()</code></a> can change arbitrarily, + like the last 4 of the MAC address can get appended sometimes, and spaces + might get changed to underscores or vice-versa, caps to lowercase, etc. + This may somehow be standard, to-the-spec behavior but to the newcomer + it's confusing and potentially time-bomb-bug-inducing, like if you're + using device name as a filter for something and everything's working + until one day your app is suddenly broken and you don't know why. This + method is an attempt to normalize name behavior and always return the + same name regardless of the underlying stack's whimsy. The target format + is all lowercase and underscore-delimited with no trailing MAC address.</div> +</li> +</ul> +<a name="getName_debug--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getName_debug</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getName_debug()</pre> +<div class="block">Returns a name useful for logging and debugging. As of this writing it is + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_normalized--"><code>getName_normalized()</code></a> plus the last four digits of the device's + MAC address from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getMacAddress--"><code>getMacAddress()</code></a>. <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#toString--"><code>toString()</code></a> + uses this.</div> +</li> +</ul> +<a name="getNative--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNative</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth">BluetoothDevice</a> getNative()</pre> +<div class="block">Provides just-in-case lower-level access to the native device instance. + <br><br> + WARNING: Be careful with this. It generally should not be needed. Only + invoke "mutators" of this object in times of extreme need. + <br><br> + NOTE: If you are forced to use this please contact library developers to + discuss possible feature addition or report bugs.</div> +</li> +</ul> +<a name="getNativeGatt--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeGatt</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGatt</a> getNativeGatt()</pre> +<div class="block">See pertinent warning for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getNative--"><code>getNative()</code></a>. Generally speaking, this + will return <code>null</code> if the BleDevice is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>. + <br><br> + NOTE: If you are forced to use this please contact library developers to + discuss possible feature addition or report bugs.</div> +</li> +</ul> +<a name="getMacAddress--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getMacAddress</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getMacAddress()</pre> +<div class="block">Returns the MAC address of this device, as retrieved from the native stack or provided through <a href="../../../com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-"><code>BleManager.newDevice(String)</code></a> (or overloads thereof). + You may treat this as the unique ID of the device, suitable as a key in a <a href="http://d.android.com/reference/java/util/HashMap.html?is-external=true" title="class or interface in java.util"><code>HashMap</code></a>, <a href="http://d.android.com/reference/android/content/SharedPreferences.html?is-external=true" title="class or interface in android.content"><code>SharedPreferences</code></a>, etc.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getMacAddress--">getMacAddress</a></code> in class <code><a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></code></dd> +</dl> +</li> +</ul> +<a name="bond-com.idevicesinc.sweetblue.BleDevice.BondListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bond</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a> bond(<a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.BondListener</a> listener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>bond()</code></a> but you can pass a listener to be notified of the details behind success or failure.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>bond()</code></a>).</dd> +</dl> +</li> +</ul> +<a name="bond--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bond</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a> bond()</pre> +<div class="block">Attempts to create a bond. Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#createBond--" title="class or interface in android.bluetooth"><code>BluetoothDevice.createBond()</code></a> This is also sometimes called + pairing, but while pairing and bonding are closely related, they are technically different from each other. + <br><br> + Bonding is required for reading/writing encrypted characteristics and, + anecdotally, may improve connection stability in some cases. This is + mentioned here and there on Internet threads complaining about Android + BLE so take it with a grain of salt because it has been directly observed + by us to degrade stability in some cases as well.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(see similar comment for return value of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#unbond--"><code>unbond()</code></a></dd> +</dl> +</li> +</ul> +<a name="unbond--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>unbond</h4> +<pre>public boolean unbond()</pre> +<div class="block">Opposite of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>bond()</code></a>.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if successfully <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#UNBONDED"><code>BleDeviceState.UNBONDED</code></a>, <code>false</code> if already <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#UNBONDED"><code>BleDeviceState.UNBONDED</code></a>.</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>bond()</code></a></dd> +</dl> +</li> +</ul> +<a name="connect--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> connect()</pre> +<div class="block">Starts a connection process, or does nothing if already <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING"><code>BleDeviceState.CONNECTING</code></a>. + Use <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>setListener_ConnectionFail(ConnectionFailListener)</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_State(StateListener)</code></a> to receive callbacks for + progress and errors.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="connect-com.idevicesinc.sweetblue.BleDevice.StateListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> connect(<a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> stateListener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>connect()</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_State(StateListener)</code></a> for you.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="connect-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> connect(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a> failListener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>connect()</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>setListener_ConnectionFail(ConnectionFailListener)</code></a> for you.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="connect-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> connect(<a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> stateListener, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a> failListener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>connect()</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_State(StateListener)</code></a> and + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>setListener_ConnectionFail(ConnectionFailListener)</code></a> for you.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="connect-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-com.idevicesinc.sweetblue.BleDevice.StateListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> connect(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a> failListener, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> stateListener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleDevice.StateListener, BleDevice.ConnectionFailListener)</code></a> + with reversed arguments.</div> +</li> +</ul> +<a name="connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> connect(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a> authenticationTxn)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>connect()</code></a> but provides a hook for the app to do some kind of authentication handshake if it wishes. This is popular with + commercial BLE devices where you don't want hobbyists or competitors using your devices for nefarious purposes - like releasing a better application + for your device than you ;-). Usually the characteristics read/written inside this transaction are encrypted and so one way or another will require + the device to become <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDED"><code>BleDeviceState.BONDED</code></a>. This should happen automatically for you, i.e you shouldn't need to call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>bond()</code></a> yourself.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>connect()</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#AUTHENTICATING"><code>BleDeviceState.AUTHENTICATING</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#AUTHENTICATED"><code>BleDeviceState.AUTHENTICATED</code></a></dd> +</dl> +</li> +</ul> +<a name="connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleDevice.StateListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> connect(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a> authenticationTxn, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> stateListener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>connect(BleTransaction.Auth)</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_State(StateListener)</code></a> for you.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> connect(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a> authenticationTxn, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> stateListener, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a> failListener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>connect(BleTransaction.Auth)</code></a> but calls + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_State(StateListener)</code></a> and + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>setListener_ConnectionFail(ConnectionFailListener)</code></a> for you.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="connect-com.idevicesinc.sweetblue.BleTransaction.Init-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> connect(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a> initTxn)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>connect()</code></a> but provides a hook for the app to do some kind of initialization before it's considered fully + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZED"><code>BleDeviceState.INITIALIZED</code></a>. For example if you had a BLE-enabled thermometer you could use this transaction to attempt an initial + temperature read before updating your UI to indicate "full" connection success, even though BLE connection itself already succeeded.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>connect()</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZING"><code>BleDeviceState.INITIALIZING</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZED"><code>BleDeviceState.INITIALIZED</code></a></dd> +</dl> +</li> +</ul> +<a name="connect-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> connect(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a> initTxn, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> stateListener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>connect(BleTransaction.Init)</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_State(StateListener)</code></a> for you.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> connect(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a> authTxn, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a> connectionFailListener)</pre> +<div class="block">Yet another overload.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="connect-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> connect(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a> initTxn, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> stateListener, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a> failListener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>connect(BleTransaction.Init)</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_State(StateListener)</code></a> and + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>setListener_ConnectionFail(ConnectionFailListener)</code></a> for you.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> connect(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a> authenticationTxn, + <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a> initTxn)</pre> +<div class="block">Combination of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>connect(BleTransaction.Auth)</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>connect(BleTransaction.Init)</code></a>. See those two methods for explanation.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>connect()</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>connect(BleTransaction.Auth)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>connect(BleTransaction.Init)</code></a></dd> +</dl> +</li> +</ul> +<a name="connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> connect(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a> authenticationTxn, + <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a> initTxn, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> stateListener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>connect(BleTransaction.Auth, BleTransaction.Init)</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_State(StateListener)</code></a> for you.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a> connect(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a> authenticationTxn, + <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a> initTxn, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> stateListener, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a> failListener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>connect(BleTransaction.Auth, BleTransaction.Init)</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_State(StateListener)</code></a> and + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>setListener_ConnectionFail(ConnectionFailListener)</code></a> for you.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>If the attempt could not even "leave the gate" for some resaon, a valid <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent</code></a> is returned telling you why. Otherwise + this method will still return a non-null instance but <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#isNull--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.isNull()</code></a> will be <code>true</code>. + <br><br> + NOTE: your <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener</code></a> will still be called even if this method early-outs. + <br><br> + TIP: You can use the return value as an optimization. Many apps will call this method (or its overloads) and throw up a spinner until receiving a + callback to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener</code></a>. However if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#isNull--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.isNull()</code></a> for the return value is <code>false</code>, meaning + the connection attempt couldn't even start for some reason, then you don't have to throw up the spinner in the first place.</dd> +</dl> +</li> +</ul> +<a name="disconnect--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disconnect</h4> +<pre>public boolean disconnect()</pre> +<div class="block">Disconnects from a connected device or does nothing if already <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>. You can call this at any point + during the connection process as a whole, during reads and writes, during transactions, whenever, and the device will cleanly cancel all ongoing + operations. This method will also bring the device out of the <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a> state.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if this call "had an effect", such as if the device was previously <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING_OVERALL"><code>BleDeviceState.CONNECTING_OVERALL</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZED"><code>BleDeviceState.INITIALIZED</code></a></dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#EXPLICIT_DISCONNECT"><code>BleDevice.ConnectionFailListener.Status.EXPLICIT_DISCONNECT</code></a></dd> +</dl> +</li> +</ul> +<a name="disconnect_remote--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disconnect_remote</h4> +<pre>public boolean disconnect_remote()</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disconnect--"><code>disconnect()</code></a> but this call roughly simulates the disconnect as if it's because of the remote device going down, going out of range, etc. + For example <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getLastDisconnectIntent--"><code>getLastDisconnectIntent()</code></a> will be <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#UNINTENTIONAL"><code>State.ChangeIntent.UNINTENTIONAL</code></a> instead of + <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#INTENTIONAL"><code>State.ChangeIntent.INTENTIONAL</code></a>. + <br><br> + If the device is currently <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING_OVERALL"><code>BleDeviceState.CONNECTING_OVERALL</code></a> then your + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)</code></a> + implementation will be called with <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#ROGUE_DISCONNECT"><code>BleDevice.ConnectionFailListener.Status.ROGUE_DISCONNECT</code></a>. + <br><br> + NOTE: One major difference between this and an actual remote disconnect is that this will not cause the device to enter + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_SHORT_TERM"><code>BleDeviceState.RECONNECTING_SHORT_TERM</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a>.</div> +</li> +</ul> +<a name="undiscover--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>undiscover</h4> +<pre>public boolean undiscover()</pre> +<div class="block">Convenience method that calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#undiscover-com.idevicesinc.sweetblue.BleDevice-"><code>BleManager.undiscover(BleDevice)</code></a>.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if the device was successfully <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#UNDISCOVERED"><code>BleDeviceState.UNDISCOVERED</code></a>, <code>false</code> if BleDevice isn't known to the <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>.</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#undiscover-com.idevicesinc.sweetblue.BleDevice-"><code>BleManager.undiscover(BleDevice)</code></a></dd> +</dl> +</li> +</ul> +<a name="clearSharedPreferences--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearSharedPreferences</h4> +<pre>public void clearSharedPreferences()</pre> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#clearSharedPreferences-java.lang.String-"><code>BleManager.clearSharedPreferences(String)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#clearSharedPreferences-com.idevicesinc.sweetblue.BleDevice-"><code>BleManager.clearSharedPreferences(BleDevice)</code></a></dd> +</dl> +</li> +</ul> +<a name="equals-com.idevicesinc.sweetblue.BleDevice-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>equals</h4> +<pre>public boolean equals(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device_nullable)</pre> +<div class="block">First checks referential equality and if <code>false</code> checks + equality of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getMacAddress--"><code>getMacAddress()</code></a>. Note that ideally this method isn't + useful to you and never returns true (besides the identity case, which + isn't useful to you). Otherwise it probably means your app is holding on + to old references that have been undiscovered, and this may be a bug or + bad design decision in your code. This library will (well, should) never + hold references to two devices such that this method returns true for them.</div> +</li> +</ul> +<a name="equals-java.lang.Object-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>equals</h4> +<pre>public boolean equals(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> object_nullable)</pre> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#equals-com.idevicesinc.sweetblue.BleDevice-"><code>equals(BleDevice)</code></a> if object is an instance of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>. Otherwise calls super.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#equals-com.idevicesinc.sweetblue.BleDevice-"><code>equals(BleDevice)</code></a></dd> +</dl> +</li> +</ul> +<a name="startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startPoll</h4> +<pre>public void startPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Starts a periodic read of a particular characteristic. Use this wherever you can in place of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, ReadWriteListener)</code></a>. One + use case would be to periodically read wind speed from a weather device. You *could* develop your device firmware to send notifications to the app + only when the wind speed changes, but Android has observed stability issues with notifications, so use them only when needed. + <br><br> + TIP: You can call this method when the device is in any <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a>, even <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startChangeTrackingPoll(UUID, Interval, ReadWriteListener)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, ReadWriteListener)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>stopPoll(UUID, ReadWriteListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startPoll</h4> +<pre>public void startPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> but without a listener. + <br><br> + See <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-"><code>read(java.util.UUID)</code></a> for an explanation of why you would do this.</div> +</li> +</ul> +<a name="startPoll-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startPoll</h4> +<pre>public void startPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(UUID, Interval, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="startPoll-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startPoll</h4> +<pre>public void startPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>startPoll(UUID, Interval)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="startPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startPoll</h4> +<pre>public void startPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Convenience to call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> for multiple + characteristic uuids all at once.</div> +</li> +</ul> +<a name="startPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startPoll</h4> +<pre>public void startPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(java.util.UUID[], Interval, BleDevice.ReadWriteListener)</code></a> but without a listener. + <br><br> + See <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-"><code>read(java.util.UUID)</code></a> for an explanation of why you would do this.</div> +</li> +</ul> +<a name="startPoll-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startPoll</h4> +<pre>public void startPoll(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Convenience to call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> for multiple + characteristic uuids all at once.</div> +</li> +</ul> +<a name="startPoll-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startPoll</h4> +<pre>public void startPoll(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(java.util.UUID[], Interval, BleDevice.ReadWriteListener)</code></a> but without a listener. + <br><br> + See <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-"><code>read(java.util.UUID)</code></a> for an explanation of why you would do this.</div> +</li> +</ul> +<a name="startChangeTrackingPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startChangeTrackingPoll</h4> +<pre>public void startChangeTrackingPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Convenience to call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startChangeTrackingPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> for multiple + characteristic uuids all at once.</div> +</li> +</ul> +<a name="startChangeTrackingPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startChangeTrackingPoll</h4> +<pre>public void startChangeTrackingPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startChangeTrackingPoll(java.util.UUID[], Interval, BleDevice.ReadWriteListener)</code></a> but without a listener. + <br><br> + See <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-"><code>read(java.util.UUID)</code></a> for an explanation of why you would do this.</div> +</li> +</ul> +<a name="startChangeTrackingPoll-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startChangeTrackingPoll</h4> +<pre>public void startChangeTrackingPoll(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Convenience to call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startChangeTrackingPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> for multiple + characteristic uuids all at once.</div> +</li> +</ul> +<a name="startChangeTrackingPoll-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startChangeTrackingPoll</h4> +<pre>public void startChangeTrackingPoll(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startChangeTrackingPoll(java.util.UUID[], Interval, BleDevice.ReadWriteListener)</code></a> but without a listener. + <br><br> + See <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-"><code>read(java.util.UUID)</code></a> for an explanation of why you would do this.</div> +</li> +</ul> +<a name="startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startChangeTrackingPoll</h4> +<pre>public void startChangeTrackingPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Similar to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(UUID, Interval, ReadWriteListener)</code></a> but only + invokes a callback when a change in the characteristic value is detected. + Use this in preference to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, ReadWriteListener)</code></a> if possible, + due to instability issues (rare, but still) with notifications on Android. + <br><br> + TIP: You can call this method when the device is in any <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a>, even <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>.</div> +</li> +</ul> +<a name="startChangeTrackingPoll-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startChangeTrackingPoll</h4> +<pre>public void startChangeTrackingPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startChangeTrackingPoll(UUID, Interval, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="stopPoll-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopPoll</h4> +<pre>public void stopPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Stops a poll(s) started by either <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(UUID, Interval, ReadWriteListener)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startChangeTrackingPoll(UUID, Interval, ReadWriteListener)</code></a>. This will stop all polls matching the provided parameters.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(UUID, Interval, ReadWriteListener)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startChangeTrackingPoll(UUID, Interval, ReadWriteListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="stopPoll-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopPoll</h4> +<pre>public void stopPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>stopPoll(java.util.UUID, BleDevice.ReadWriteListener)</code></a> but without the listener.</div> +</li> +</ul> +<a name="stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopPoll</h4> +<pre>public void stopPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>stopPoll(UUID, ReadWriteListener)</code></a> but with added filtering for the poll <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a>.</div> +</li> +</ul> +<a name="stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopPoll</h4> +<pre>public void stopPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>stopPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> but without the listener.</div> +</li> +</ul> +<a name="stopPoll-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopPoll</h4> +<pre>public void stopPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>stopPoll(UUID, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="stopPoll-java.util.UUID-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopPoll</h4> +<pre>public void stopPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-"><code>stopPoll(UUID)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="stopPoll-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopPoll</h4> +<pre>public void stopPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>stopPoll(UUID, Interval, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="stopPoll-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopPoll</h4> +<pre>public void stopPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>stopPoll(UUID, Interval)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="stopPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopPoll</h4> +<pre>public void stopPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>stopPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> multiple times for you.</div> +</li> +</ul> +<a name="stopPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopPoll</h4> +<pre>public void stopPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</pre> +<div class="block">Calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>stopPoll(java.util.UUID, Interval)</code></a> multiple times for you.</div> +</li> +</ul> +<a name="stopPoll-java.util.UUID:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopPoll</h4> +<pre>public void stopPoll(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids)</pre> +<div class="block">Calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-"><code>stopPoll(java.util.UUID)</code></a> multiple times for you.</div> +</li> +</ul> +<a name="stopPoll-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopPoll</h4> +<pre>public void stopPoll(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> uuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>stopPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> multiple times for you.</div> +</li> +</ul> +<a name="stopPoll-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopPoll</h4> +<pre>public void stopPoll(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> uuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</pre> +<div class="block">Calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>stopPoll(java.util.UUID, Interval)</code></a> multiple times for you.</div> +</li> +</ul> +<a name="stopPoll-java.lang.Iterable-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopPoll</h4> +<pre>public void stopPoll(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> uuids)</pre> +<div class="block">Calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-"><code>stopPoll(java.util.UUID)</code></a> multiple times for you.</div> +</li> +</ul> +<a name="write-com.idevicesinc.sweetblue.BleDevice.WriteBuilder-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>write</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> write(<a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a> writeBuilder)</pre> +<div class="block">Writes to the device without a callback.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-java.util.UUID-byte:A-"><code>write(UUID, UUID, byte[])</code></a>).</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-java.util.UUID-byte:A-"><code>write(UUID, UUID, byte[])</code></a></dd> +</dl> +</li> +</ul> +<a name="write-com.idevicesinc.sweetblue.BleDevice.WriteBuilder-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>write</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> write(<a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a> writeBuilder, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Writes to the device with a callback.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>write(UUID, UUID, byte[], ReadWriteListener)</code></a>).</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>write(UUID, UUID, byte[], ReadWriteListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="write-java.util.UUID-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>write</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> write(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + byte[] data)</pre> +<div class="block">Writes to the device without a callback.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>write(UUID, byte[], ReadWriteListener)</code></a>).</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>write(UUID, byte[], ReadWriteListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>write</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> write(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Writes to the device with a callback.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(see similar comment for return value of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>write(UUID, byte[])</code></a></dd> +</dl> +</li> +</ul> +<a name="write-java.util.UUID-java.util.UUID-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>write</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> write(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + byte[] data)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>write(UUID, byte[])</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="write-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>write</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> write(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>write(UUID, byte[], ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>write</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> write(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData)</pre> +<div class="block">Writes to the device without a callback.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>write(UUID, FutureData, ReadWriteListener)</code></a>).</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>write(UUID, FutureData, ReadWriteListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>write</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> write(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Writes to the device with a callback.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(see similar comment for return value of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-"><code>write(UUID, FutureData)</code></a></dd> +</dl> +</li> +</ul> +<a name="write-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>write</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> write(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-"><code>write(UUID, FutureData)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="write-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>write</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> write(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>write(UUID, FutureData, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="writeDescriptor-java.util.UUID-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>writeDescriptor</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> writeDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + byte[] data)</pre> +<div class="block">Writes to the device descriptor without a callback.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>writeDescriptor(UUID, byte[], ReadWriteListener)</code></a>).</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>writeDescriptor(UUID, byte[], ReadWriteListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>writeDescriptor</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> writeDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Writes to the device descriptor with a callback.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(see similar comment for return value of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-"><code>writeDescriptor(UUID, byte[])</code></a></dd> +</dl> +</li> +</ul> +<a name="writeDescriptor-java.util.UUID-java.util.UUID-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>writeDescriptor</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> writeDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + byte[] data)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-"><code>writeDescriptor(UUID, byte[])</code></a> for when you have descriptors with identical uuids under different services.</div> +</li> +</ul> +<a name="writeDescriptor-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>writeDescriptor</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> writeDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>writeDescriptor(UUID, byte[], ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics.</div> +</li> +</ul> +<a name="writeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>writeDescriptor</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> writeDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>writeDescriptor(UUID, byte[], ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics and/or services.</div> +</li> +</ul> +<a name="writeDescriptor-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>writeDescriptor</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> writeDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData)</pre> +<div class="block">Writes to the device descriptor without a callback.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>writeDescriptor(UUID, byte[], ReadWriteListener)</code></a>).</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>writeDescriptor(UUID, byte[], ReadWriteListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="writeDescriptor-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>writeDescriptor</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> writeDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Writes to the device with a callback.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(see similar comment for return value of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-"><code>writeDescriptor(UUID, byte[])</code></a></dd> +</dl> +</li> +</ul> +<a name="writeDescriptor-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>writeDescriptor</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> writeDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-"><code>writeDescriptor(UUID, byte[])</code></a> for when you have descriptors with identical uuids under different services.</div> +</li> +</ul> +<a name="writeDescriptor-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>writeDescriptor</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> writeDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>writeDescriptor(UUID, byte[], ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics.</div> +</li> +</ul> +<a name="writeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>writeDescriptor</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> writeDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>writeDescriptor(UUID, byte[], ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics and/or services.</div> +</li> +</ul> +<a name="readDescriptor-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>readDescriptor</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> readDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid)</pre> +<div class="block">Reads from the device without a callback - the callback will still be sent through any listeners provided + to either <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setListener_ReadWrite(ReadWriteListener)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleManager.setListener_ReadWrite(com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)</code></a>.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>readDescriptor(UUID, BleDevice.ReadWriteListener)</code></a>).</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>readDescriptor(UUID, ReadWriteListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="readDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>readDescriptor</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> readDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Reads from the device with a callback.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(see similar comment for return value of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-"><code>readDescriptor(UUID)</code></a></dd> +</dl> +</li> +</ul> +<a name="readDescriptor-java.util.UUID-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>readDescriptor</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> readDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-"><code>readDescriptor(UUID)</code></a> for when you have descriptors with identical uuids under different services.</div> +</li> +</ul> +<a name="readDescriptor-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>readDescriptor</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> readDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>readDescriptor(UUID, ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics.</div> +</li> +</ul> +<a name="readDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>readDescriptor</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> readDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>readDescriptor(UUID, ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics and/or services.</div> +</li> +</ul> +<a name="readDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>readDescriptor</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> readDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>readDescriptor(UUID, ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics and/or services.</div> +</li> +</ul> +<a name="readRssi--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>readRssi</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> readRssi()</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>readRssi(ReadWriteListener)</code></a> but use this method when you don't much care when/if the RSSI is actually updated.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>readRssi(ReadWriteListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>readRssi</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> readRssi(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Wrapper for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#readRemoteRssi--" title="class or interface in android.bluetooth"><code>BluetoothGatt.readRemoteRssi()</code></a>. This will eventually update the value returned by <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>getRssi()</code></a> but it is not + instantaneous. When a new RSSI is actually received the given listener will be called. The device must be <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a> for + this call to succeed. When the device is not <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a> then the value returned by + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>getRssi()</code></a> will be automatically updated every time this device is discovered (or rediscovered) by a scan operation.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(see similar comment for return value of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setConnectionPriority</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> setConnectionPriority(<a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a> connectionPriority)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setConnectionPriority(BleConnectionPriority, ReadWriteListener)</code></a> but use this method when you don't much care when/if the connection priority is updated.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setConnectionPriority(BleConnectionPriority, ReadWriteListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setConnectionPriority</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> setConnectionPriority(<a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a> connectionPriority, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Wrapper for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#requestConnectionPriority-int-" title="class or interface in android.bluetooth"><code>BluetoothGatt.requestConnectionPriority(int)</code></a> which attempts to change the connection priority for a given connection. + This will eventually update the value returned by <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getConnectionPriority--"><code>getConnectionPriority()</code></a> but it is not + instantaneous. When we receive confirmation from the native stack then this value will be updated. The device must be <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a> for + this call to succeed.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(see similar comment for return value of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setConnectionPriority(BleConnectionPriority, ReadWriteListener)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getConnectionPriority--"><code>getConnectionPriority()</code></a></dd> +</dl> +</li> +</ul> +<a name="getConnectionPriority--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getConnectionPriority</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a> getConnectionPriority()</pre> +<div class="block">Returns the connection priority value set by <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setConnectionPriority(BleConnectionPriority, ReadWriteListener)</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#DEFAULT_MTU_SIZE"><code>BleNodeConfig.DEFAULT_MTU_SIZE</code></a> if + it was never set explicitly.</div> +</li> +</ul> +<a name="getMtu--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getMtu</h4> +<pre>public int getMtu()</pre> +<div class="block">Returns the "maximum transmission unit" value set by <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setMtu(int, ReadWriteListener)</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#DEFAULT_MTU_SIZE"><code>BleNodeConfig.DEFAULT_MTU_SIZE</code></a> if + it was never set explicitly.</div> +</li> +</ul> +<a name="setMtuToDefault--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setMtuToDefault</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> setMtuToDefault()</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtuToDefault-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setMtuToDefault( ReadWriteListener)</code></a> but use this method when you don't much care when/if the "maximum transmission unit" is actually updated.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setMtu(int, ReadWriteListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="setMtuToDefault-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setMtuToDefault</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> setMtuToDefault(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setMtu(int, ReadWriteListener)</code></a> that returns the "maximum transmission unit" to the default. + Unlike <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-"><code>setMtu(int)</code></a>, this can be called when the device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a> in the event that you don't want the + MTU to be auto-set upon next reconnection.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(see similar comment for return value of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="setMtu-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setMtu</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> setMtu(int mtu)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setMtu(int, ReadWriteListener)</code></a> but use this method when you don't much care when/if the "maximum transmission unit" is actually updated.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setMtu(int, ReadWriteListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setMtu</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> setMtu(int mtu, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Wrapper for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#requestMtu-int-" title="class or interface in android.bluetooth"><code>BluetoothGatt.requestMtu(int)</code></a> which attempts to change the "maximum transmission unit" for a given connection. + This will eventually update the value returned by <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getMtu--"><code>getMtu()</code></a> but it is not + instantaneous. When we receive confirmation from the native stack then this value will be updated. The device must be <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a> for + this call to succeed.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(see similar comment for return value of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startRssiPoll</h4> +<pre>public void startRssiPoll(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startPoll(UUID, Interval, ReadWriteListener)</code></a> but for when you don't care when/if the RSSI is actually updated. + <br><br> + TIP: You can call this method when the device is in any <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a>, even <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>.</div> +</li> +</ul> +<a name="startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startRssiPoll</h4> +<pre>public void startRssiPoll(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Kicks off a poll that automatically calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>readRssi(ReadWriteListener)</code></a> at the <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> frequency + specified. This can be called before the device is actually <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>. If you call this more than once in a + row then the most recent call's parameters will be respected. + <br><br> + TIP: You can call this method when the device is in any <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a>, even <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>.</div> +</li> +</ul> +<a name="stopRssiPoll--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopRssiPoll</h4> +<pre>public void stopRssiPoll()</pre> +<div class="block">Stops an RSSI poll previously started either by <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-"><code>startRssiPoll(Interval)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>startRssiPoll(Interval, ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="clearAllData--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearAllData</h4> +<pre>public void clearAllData()</pre> +<div class="block">One method to remove absolutely all "metadata" related to this device that is stored on disk and/or cached in memory in any way. + This method is useful if for example you have a "forget device" feature in your app.</div> +</li> +</ul> +<a name="clearHistoricalData--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearHistoricalData</h4> +<pre>public void clearHistoricalData()</pre> +<div class="block">Clears all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="clearHistoricalData-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearHistoricalData</h4> +<pre>public void clearHistoricalData(long count)</pre> +<div class="block">Clears the first <code>count</code> number of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="clearHistoricalData-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearHistoricalData</h4> +<pre>public void clearHistoricalData(<a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +<div class="block">Clears all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device within the given range.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="clearHistoricalData-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearHistoricalData</h4> +<pre>public void clearHistoricalData(<a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</pre> +<div class="block">Clears the first <code>count</code> number of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device within the given range.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="clearHistoricalData-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearHistoricalData</h4> +<pre>public void clearHistoricalData(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<div class="block">Clears all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="clearHistoricalData-java.util.UUID...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearHistoricalData</h4> +<pre>public void clearHistoricalData(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>... uuids)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-java.util.UUID-"><code>clearHistoricalData(UUID)</code></a> that just calls that method multiple times.</div> +</li> +</ul> +<a name="clearHistoricalData-java.util.UUID-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearHistoricalData</h4> +<pre>public void clearHistoricalData(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + long count)</pre> +<div class="block">Clears the first <code>count</code> number of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="clearHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearHistoricalData</h4> +<pre>public void clearHistoricalData(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +<div class="block">Clears all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> within the given range.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="clearHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearHistoricalData</h4> +<pre>public void clearHistoricalData(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</pre> +<div class="block">Clears the first <code>count</code> number of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> within the given range.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="clearHistoricalData_memoryOnly--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearHistoricalData_memoryOnly</h4> +<pre>public void clearHistoricalData_memoryOnly()</pre> +<div class="block">Clears all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="clearHistoricalData_memoryOnly-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearHistoricalData_memoryOnly</h4> +<pre>public void clearHistoricalData_memoryOnly(long count)</pre> +<div class="block">Clears the first <code>count</code> number of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="clearHistoricalData_memoryOnly-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearHistoricalData_memoryOnly</h4> +<pre>public void clearHistoricalData_memoryOnly(<a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +<div class="block">Clears all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device within the given range.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="clearHistoricalData_memoryOnly-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearHistoricalData_memoryOnly</h4> +<pre>public void clearHistoricalData_memoryOnly(<a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</pre> +<div class="block">Clears the first <code>count</code> number of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device within the given range.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="clearHistoricalData_memoryOnly-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearHistoricalData_memoryOnly</h4> +<pre>public void clearHistoricalData_memoryOnly(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<div class="block">Clears all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="clearHistoricalData_memoryOnly-java.util.UUID-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearHistoricalData_memoryOnly</h4> +<pre>public void clearHistoricalData_memoryOnly(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + long count)</pre> +<div class="block">Clears the first <code>count</code> number of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="clearHistoricalData_memoryOnly-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearHistoricalData_memoryOnly</h4> +<pre>public void clearHistoricalData_memoryOnly(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +<div class="block">Clears all <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> within the given range.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="clearHistoricalData_memoryOnly-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearHistoricalData_memoryOnly</h4> +<pre>public void clearHistoricalData_memoryOnly(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</pre> +<div class="block">Clears the first <code>count</code> number of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> within the given range.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="read-java.util.UUID:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>read</h4> +<pre>public void read(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-"><code>read(UUID)</code></a>.</div> +</li> +</ul> +<a name="read-java.util.UUID:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>read</h4> +<pre>public void read(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>read(UUID, ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="read-java.lang.Iterable-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>read</h4> +<pre>public void read(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-"><code>read(UUID)</code></a>.</div> +</li> +</ul> +<a name="read-java.lang.Iterable-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>read</h4> +<pre>public void read(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>read(UUID, ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="read-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>read</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> read(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>read(java.util.UUID, BleDevice.ReadWriteListener)</code></a> but you can use this + if you don't immediately care about the result. The callback will still be posted to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener</code></a> + instances (if any) provided to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setListener_ReadWrite(BleDevice.ReadWriteListener)</code></a> and + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleManager.setListener_ReadWrite(BleDevice.ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>read</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> read(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Reads a characteristic from the device.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(see similar comment for return value of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="read-java.util.UUID-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>read</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> read(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-"><code>read(UUID)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="read-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>read</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> read(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>read(UUID, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="readBatteryLevel-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>readBatteryLevel</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> readBatteryLevel(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Read the battery level of this device. This just calls <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>read(UUID, UUID, ReadWriteListener)</code></a> using <a href="../../../com/idevicesinc/sweetblue/utils/Uuids.html#BATTERY_SERVICE_UUID"><code>Uuids.BATTERY_SERVICE_UUID</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/utils/Uuids.html#BATTERY_LEVEL"><code>Uuids.BATTERY_LEVEL</code></a>. If your battery service/characteristic uses a custom UUID, then use <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>read(UUID, UUID, ReadWriteListener)</code></a> with + your custom UUIDs.</div> +</li> +</ul> +<a name="readBatteryLevel-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>readBatteryLevel</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> readBatteryLevel(byte[] valueToMatch, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">This method is intended to be used when the device has 2 battery characteristics in the same service. The @param valueToMatch tells SweetBlue which + characteristic to actually read from. NOTE: This expects the FULL byte array for comparison, which by the Bluetooth spec found here + <a href="https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml"</a> + says that it should be 7 bytes. SweetBlue will NOT enforce the 7 byte length, in the odd case that someone implements this descriptor out-of-spec.</div> +</li> +</ul> +<a name="readBatteryLevel-byte:A-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>readBatteryLevel</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> readBatteryLevel(byte[] valueToMatch, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descriptorUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Read the battery level of this device. This method is intended to be used if the device being read has two battery characteristics in the battery service. + This method allows you to state which descriptor to match the @param valueToMatch to, to pick the correct characteristic to read the battery level from. + This method is needed if you do not implement dual battery level exactly to the Bluetooth spec.</div> +</li> +</ul> +<a name="isNotifyEnabled-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNotifyEnabled</h4> +<pre>public boolean isNotifyEnabled(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<div class="block">Returns <code>true</code> if notifications are enabled for the given uuid. + NOTE: <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isNotifyEnabling-java.util.UUID-"><code>isNotifyEnabling(UUID)</code></a> may return true here even if this returns false.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isNotifyEnabling-java.util.UUID-"><code>isNotifyEnabling(UUID)</code></a></dd> +</dl> +</li> +</ul> +<a name="isNotifyEnabling-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNotifyEnabling</h4> +<pre>public boolean isNotifyEnabling(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<div class="block">Returns <code>true</code> if SweetBlue is in the process of enabling notifications for the given uuid.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isNotifyEnabled-java.util.UUID-"><code>isNotifyEnabled(UUID)</code></a></dd> +</dl> +</li> +</ul> +<a name="enableNotify-java.util.UUID:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enableNotify</h4> +<pre>public void enableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids)</pre> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-"><code>enableNotify(UUID)</code></a>.</div> +</li> +</ul> +<a name="enableNotify-java.util.UUID:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enableNotify</h4> +<pre>public void enableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="enableNotify-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enableNotify</h4> +<pre>public void enableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout)</pre> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>enableNotify(UUID, Interval)</code></a>.</div> +</li> +</ul> +<a name="enableNotify-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enableNotify</h4> +<pre>public void enableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, Interval, ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="enableNotify-java.lang.Iterable-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enableNotify</h4> +<pre>public void enableNotify(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids)</pre> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-"><code>enableNotify(UUID)</code></a>.</div> +</li> +</ul> +<a name="enableNotify-java.lang.Iterable-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enableNotify</h4> +<pre>public void enableNotify(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="enableNotify-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enableNotify</h4> +<pre>public void enableNotify(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout)</pre> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>enableNotify(UUID, Interval)</code></a>.</div> +</li> +</ul> +<a name="enableNotify-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enableNotify</h4> +<pre>public void enableNotify(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, Interval, ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="enableNotify-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enableNotify</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> enableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(java.util.UUID, BleDevice.ReadWriteListener)</code></a> but you can use + this if you don't need a callback. Callbacks will still be posted to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener</code></a> + instances (if any) provided to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setListener_ReadWrite(BleDevice.ReadWriteListener)</code></a> and + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleManager.setListener_ReadWrite(BleDevice.ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enableNotify</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> enableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Enables notification on the given characteristic. The listener will be called both for the notifications themselves and for the actual + registration for the notification. <code>switch</code> on <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#ENABLING_NOTIFICATION"><code>BleDevice.ReadWriteListener.Type.ENABLING_NOTIFICATION</code></a> + and <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#NOTIFICATION"><code>BleDevice.ReadWriteListener.Type.NOTIFICATION</code></a> (or <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#INDICATION"><code>BleDevice.ReadWriteListener.Type.INDICATION</code></a>) in your listener to distinguish between these.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(see similar comment for return value of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enableNotify</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> enableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> but you can use + this if you don't need a callback. Callbacks will still be posted to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener</code></a> + instances (if any) provided to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setListener_ReadWrite(BleDevice.ReadWriteListener)</code></a> and + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleManager.setListener_ReadWrite(BleDevice.ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enableNotify</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> enableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, ReadWriteListener)</code></a> but forces a read after a given amount of time. If you received <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#SUCCESS"><code>BleDevice.ReadWriteListener.Status.SUCCESS</code></a> for + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#ENABLING_NOTIFICATION"><code>BleDevice.ReadWriteListener.Type.ENABLING_NOTIFICATION</code></a> but haven't received an actual notification in some time it may be a sign that notifications have broken + in the underlying stack.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, ReadWriteListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="enableNotify-java.util.UUID-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enableNotify</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> enableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-"><code>enableNotify(UUID)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="enableNotify-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enableNotify</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> enableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="enableNotify-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enableNotify</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> enableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>enableNotify(UUID, Interval)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="enableNotify-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enableNotify</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> enableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, Interval, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disableNotify</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> disableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Disables all notifications enabled by <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, ReadWriteListener)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, Interval, ReadWriteListener)</code></a>. The listener + provided should be the same one that you passed to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>enableNotify(UUID, ReadWriteListener)</code></a>. Listen for + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#DISABLING_NOTIFICATION"><code>BleDevice.ReadWriteListener.Type.DISABLING_NOTIFICATION</code></a> in your listener to know when the remote device actually confirmed.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(see similar comment for return value of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disableNotify</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> disableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(UUID, ReadWriteListener)</code></a> but filters on the given <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a>.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(UUID, ReadWriteListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="disableNotify-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disableNotify</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> disableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(java.util.UUID, BleDevice.ReadWriteListener)</code></a> but you can use this if you don't care about the result. + The callback will still be posted to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener</code></a> + instances (if any) provided to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>setListener_ReadWrite(BleDevice.ReadWriteListener)</code></a> and + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleManager.setListener_ReadWrite(BleDevice.ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disableNotify</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> disableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(UUID, ReadWriteListener)</code></a> but filters on the given <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> without a listener.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>(same as <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(UUID, ReadWriteListener)</code></a>).</dd> +</dl> +</li> +</ul> +<a name="disableNotify-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disableNotify</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> disableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(UUID, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="disableNotify-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disableNotify</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> disableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(UUID, Interval, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="disableNotify-java.util.UUID-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disableNotify</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> disableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-"><code>disableNotify(UUID)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="disableNotify-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disableNotify</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> disableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> characteristicUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>disableNotify(UUID, Interval)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="disableNotify-java.util.UUID:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disableNotify</h4> +<pre>public void disableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(UUID, ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="disableNotify-java.util.UUID:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disableNotify</h4> +<pre>public void disableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids)</pre> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-"><code>disableNotify(UUID)</code></a>.</div> +</li> +</ul> +<a name="disableNotify-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disableNotify</h4> +<pre>public void disableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout)</pre> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>disableNotify(UUID, Interval)</code></a>.</div> +</li> +</ul> +<a name="disableNotify-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disableNotify</h4> +<pre>public void disableNotify(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(UUID, Interval, BleDevice.ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="disableNotify-java.lang.Iterable-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disableNotify</h4> +<pre>public void disableNotify(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids)</pre> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-"><code>disableNotify(UUID)</code></a>.</div> +</li> +</ul> +<a name="disableNotify-java.lang.Iterable-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disableNotify</h4> +<pre>public void disableNotify(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(UUID, ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="disableNotify-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disableNotify</h4> +<pre>public void disableNotify(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout)</pre> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>disableNotify(UUID, Interval)</code></a>.</div> +</li> +</ul> +<a name="disableNotify-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disableNotify</h4> +<pre>public void disableNotify(<a href="http://d.android.com/reference/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> charUuids, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> forceReadTimeout, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener)</pre> +<div class="block">Overload for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>disableNotify(UUID, Interval, ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="performOta-com.idevicesinc.sweetblue.BleTransaction.Ota-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>performOta</h4> +<pre>public boolean performOta(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Ota</a> txn)</pre> +<div class="block">Kicks off an "over the air" long-term transaction if it's not already + taking place and the device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZED"><code>BleDeviceState.INITIALIZED</code></a>. This + will put the device into the <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#PERFORMING_OTA"><code>BleDeviceState.PERFORMING_OTA</code></a> state + if <code>true</code> is returned. You can use this to do firmware + updates, file transfers, etc. + <br><br> + TIP: Use the <a href="../../../com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils"><code>TimeEstimator</code></a> class to let your users know roughly + how much time it will take for the ota to complete. + <br><br> + TIP: For shorter-running transactions consider using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#performTransaction-com.idevicesinc.sweetblue.BleTransaction-"><code>performTransaction(BleTransaction)</code></a>.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if OTA has started, otherwise <code>false</code> if device is either already + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#PERFORMING_OTA"><code>BleDeviceState.PERFORMING_OTA</code></a> or is not <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZED"><code>BleDeviceState.INITIALIZED</code></a>.</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#includeOtaReadWriteTimesInAverage"><code>BleDeviceConfig.includeOtaReadWriteTimesInAverage</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanDuringOta"><code>BleManagerConfig.autoScanDuringOta</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDevice.html#performTransaction-com.idevicesinc.sweetblue.BleTransaction-"><code>performTransaction(BleTransaction)</code></a></dd> +</dl> +</li> +</ul> +<a name="performTransaction-com.idevicesinc.sweetblue.BleTransaction-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>performTransaction</h4> +<pre>public boolean performTransaction(<a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a> txn)</pre> +<div class="block">Allows you to perform an arbitrary transaction that is not associated with any <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> like + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#PERFORMING_OTA"><code>BleDeviceState.PERFORMING_OTA</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#AUTHENTICATING"><code>BleDeviceState.AUTHENTICATING</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZING"><code>BleDeviceState.INITIALIZING</code></a>. + Generally this transaction should be short, several reads and writes. For longer-term transaction consider using + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#performOta-com.idevicesinc.sweetblue.BleTransaction.Ota-"><code>performOta(BleTransaction.Ota)</code></a>. + <br><br> + The device must be <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZED"><code>BleDeviceState.INITIALIZED</code></a>. + <br><br> + TIP: For long-term transactions consider using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#performOta-com.idevicesinc.sweetblue.BleTransaction.Ota-"><code>performOta(BleTransaction.Ota)</code></a>.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if the transaction successfully started, <code>false</code> otherwise if device is not <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZED"><code>BleDeviceState.INITIALIZED</code></a>.</dd> +</dl> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<div class="block">Returns the device's name and current state for logging and debugging purposes.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block">Returns <code>true</code> if <code>this</code> is referentially equal to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>NULL</code></a>.</div> +</li> +</ul> +<a name="getNext--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNext</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getNext()</pre> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-"><code>BleManager.getDevice_next(BleDevice)</code></a>.</div> +</li> +</ul> +<a name="getNext-com.idevicesinc.sweetblue.BleDeviceState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNext</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getNext(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</pre> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleManager.getDevice_next(BleDevice, BleDeviceState)</code></a>.</div> +</li> +</ul> +<a name="getNext-java.lang.Object...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNext</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getNext(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</pre> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-java.lang.Object...-"><code>BleManager.getDevice_next(BleDevice, Object...)</code></a>.</div> +</li> +</ul> +<a name="getPrevious--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getPrevious</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getPrevious()</pre> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-"><code>BleManager.getDevice_previous(BleDevice)</code></a>.</div> +</li> +</ul> +<a name="getPrevious-com.idevicesinc.sweetblue.BleDeviceState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getPrevious</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getPrevious(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</pre> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleManager.getDevice_previous(BleDevice, BleDeviceState)</code></a>.</div> +</li> +</ul> +<a name="getPrevious-java.lang.Object...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getPrevious</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getPrevious(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</pre> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-java.lang.Object...-"><code>BleManager.getDevice_previous(BleDevice, Object...)</code></a>.</div> +</li> +</ul> +<a name="getIndex--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getIndex</h4> +<pre>public int getIndex()</pre> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDeviceIndex-com.idevicesinc.sweetblue.BleDevice-"><code>BleManager.getDeviceIndex(BleDevice)</code></a>.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDevice.html" target="_top">Frames</a></li> +<li><a href="BleDevice.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..5517c28e6aa93e489514c7d1d3d13d3c5c16c32b --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html @@ -0,0 +1,320 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDeviceConfig.BondFilter.CharacteristicEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDeviceConfig.BondFilter.CharacteristicEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" target="_top">Frames</a></li> +<li><a href="BleDeviceConfig.BondFilter.CharacteristicEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleDeviceConfig.BondFilter.CharacteristicEvent" class="title">Class BleDeviceConfig.BondFilter.CharacteristicEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.CharacteristicEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleDeviceConfig.BondFilter.CharacteristicEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></pre> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html#onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.CharacteristicEvent-"><code>BleDeviceConfig.BondFilter.onEvent(CharacteristicEvent)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html#charUuid--">charUuid</a></span>()</code> +<div class="block">Returns the <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the characteristic in question.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html#device--">device</a></span>()</code> +<div class="block">Returns the <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> in question.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html#macAddress--">macAddress</a></span>()</code> +<div class="block">Convience to return the mac address of <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html#device--"><code>device()</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEventType</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html#type--">type</a></span>()</code> +<div class="block">Returns the type of characteristic operation, read, write, etc.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="device--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>device</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device()</pre> +<div class="block">Returns the <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> in question.</div> +</li> +</ul> +<a name="macAddress--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>macAddress</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress()</pre> +<div class="block">Convience to return the mac address of <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html#device--"><code>device()</code></a>.</div> +</li> +</ul> +<a name="charUuid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>charUuid</h4> +<pre>public <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid()</pre> +<div class="block">Returns the <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the characteristic in question.</div> +</li> +</ul> +<a name="type--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>type</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEventType</a> type()</pre> +<div class="block">Returns the type of characteristic operation, read, write, etc.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" target="_top">Frames</a></li> +<li><a href="BleDeviceConfig.BondFilter.CharacteristicEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html new file mode 100644 index 0000000000000000000000000000000000000000..2e43a8af9c0a0714430691b66ffe10e26c8fcdc5 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html @@ -0,0 +1,365 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDeviceConfig.BondFilter.CharacteristicEventType (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDeviceConfig.BondFilter.CharacteristicEventType (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" target="_top">Frames</a></li> +<li><a href="BleDeviceConfig.BondFilter.CharacteristicEventType.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleDeviceConfig.BondFilter.CharacteristicEventType" class="title">Enum BleDeviceConfig.BondFilter.CharacteristicEventType</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEventType</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.CharacteristicEventType</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEventType</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleDeviceConfig.BondFilter.CharacteristicEventType</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEventType</a>></pre> +<div class="block">An enumeration of the type of characteristic operation for a <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig.BondFilter.CharacteristicEvent</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html#ENABLE_NOTIFY">ENABLE_NOTIFY</a></span></code> +<div class="block">Started from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a> or overloads.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html#READ">READ</a></span></code> +<div class="block">Started from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(UUID, ReadWriteListener)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(UUID, Interval, ReadWriteListener)</code></a>, etc.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html#WRITE">WRITE</a></span></code> +<div class="block">Started from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.write(UUID, byte[], ReadWriteListener)</code></a> or overloads.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEventType</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEventType</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="READ"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>READ</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEventType</a> READ</pre> +<div class="block">Started from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(UUID, ReadWriteListener)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(UUID, Interval, ReadWriteListener)</code></a>, etc.</div> +</li> +</ul> +<a name="WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WRITE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEventType</a> WRITE</pre> +<div class="block">Started from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.write(UUID, byte[], ReadWriteListener)</code></a> or overloads.</div> +</li> +</ul> +<a name="ENABLE_NOTIFY"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>ENABLE_NOTIFY</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEventType</a> ENABLE_NOTIFY</pre> +<div class="block">Started from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a> or overloads.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEventType</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleDeviceConfig.BondFilter.CharacteristicEventType c : BleDeviceConfig.BondFilter.CharacteristicEventType.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEventType</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" target="_top">Frames</a></li> +<li><a href="BleDeviceConfig.BondFilter.CharacteristicEventType.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html new file mode 100644 index 0000000000000000000000000000000000000000..8d4880b246494f9a7f920427822014093def1453 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html @@ -0,0 +1,342 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDeviceConfig.BondFilter.Please (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDeviceConfig.BondFilter.Please (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" target="_top">Frames</a></li> +<li><a href="BleDeviceConfig.BondFilter.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleDeviceConfig.BondFilter.Please" class="title">Class BleDeviceConfig.BondFilter.Please</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.Please</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleDeviceConfig.BondFilter.Please</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Return value for the various interface methods of <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleDeviceConfig.BondFilter</code></a>. + Use static constructor methods to create instances.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bond--">bond</a></span>()</code> +<div class="block">Device should be bonded if it isn't already.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bond-com.idevicesinc.sweetblue.BleDevice.BondListener-">bond</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.BondListener</a> listener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bond--"><code>bond()</code></a> but lets you pass a <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.BondListener</code></a> as well.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bondIf-boolean-">bondIf</a></span>(boolean condition)</code> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bond--"><code>bond()</code></a> if the given condition holds <code>true</code>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#doNothing--"><code>doNothing()</code></a> otherwise.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bondIf-boolean-com.idevicesinc.sweetblue.BleDevice.BondListener-">bondIf</a></span>(boolean condition, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.BondListener</a> listener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bondIf-boolean-"><code>bondIf(boolean)</code></a> but lets you pass a <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.BondListener</code></a> as well.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#doNothing--">doNothing</a></span>()</code> +<div class="block">Device's bond state should not be affected.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#unbond--">unbond</a></span>()</code> +<div class="block">Device should be unbonded if it isn't already.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#unbondIf-boolean-">unbondIf</a></span>(boolean condition)</code> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bond--"><code>bond()</code></a> if the given condition holds <code>true</code>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#doNothing--"><code>doNothing()</code></a> otherwise.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="bond--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bond</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a> bond()</pre> +<div class="block">Device should be bonded if it isn't already.</div> +</li> +</ul> +<a name="bondIf-boolean-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bondIf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a> bondIf(boolean condition)</pre> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bond--"><code>bond()</code></a> if the given condition holds <code>true</code>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#doNothing--"><code>doNothing()</code></a> otherwise.</div> +</li> +</ul> +<a name="bondIf-boolean-com.idevicesinc.sweetblue.BleDevice.BondListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bondIf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a> bondIf(boolean condition, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.BondListener</a> listener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bondIf-boolean-"><code>bondIf(boolean)</code></a> but lets you pass a <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.BondListener</code></a> as well.</div> +</li> +</ul> +<a name="bond-com.idevicesinc.sweetblue.BleDevice.BondListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bond</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a> bond(<a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.BondListener</a> listener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bond--"><code>bond()</code></a> but lets you pass a <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.BondListener</code></a> as well.</div> +</li> +</ul> +<a name="unbond--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>unbond</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a> unbond()</pre> +<div class="block">Device should be unbonded if it isn't already.</div> +</li> +</ul> +<a name="unbondIf-boolean-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>unbondIf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a> unbondIf(boolean condition)</pre> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bond--"><code>bond()</code></a> if the given condition holds <code>true</code>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#doNothing--"><code>doNothing()</code></a> otherwise.</div> +</li> +</ul> +<a name="doNothing--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>doNothing</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a> doNothing()</pre> +<div class="block">Device's bond state should not be affected.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" target="_top">Frames</a></li> +<li><a href="BleDeviceConfig.BondFilter.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..a58cdb77c6e1771f639d7a3f4a8f75786f212878 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html @@ -0,0 +1,236 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDeviceConfig.BondFilter.StateChangeEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDeviceConfig.BondFilter.StateChangeEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" target="_top">Frames</a></li> +<li><a href="BleDeviceConfig.BondFilter.StateChangeEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#methods.inherited.from.class.com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleDeviceConfig.BondFilter.StateChangeEvent" class="title">Class BleDeviceConfig.BondFilter.StateChangeEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.State.ChangeEvent</a><<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a>></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.StateChangeEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleDeviceConfig.BondFilter.StateChangeEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.StateListener.StateEvent</a></pre> +<div class="block">Just a dummy subclass of <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.StateListener.StateEvent</code></a> so that this gets auto-imported for implementations of <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleDeviceConfig.BondFilter</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.StateListener.StateEvent</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html#device--">device</a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html#gattStatus--">gattStatus</a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html#macAddress--">macAddress</a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html#toString--">toString</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.State.ChangeEvent"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnter-T_State-">didEnter</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAll-T_State...-">didEnterAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAny-T_State...-">didEnterAny</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExit-T_State-">didExit</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAll-T_State...-">didExitAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAny-T_State...-">didExitAny</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#enterMask--">enterMask</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#exitMask--">exitMask</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#getIntent-T_State-">getIntent</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#intentMask--">intentMask</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isFor-T_State-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isForAll-T_State...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isForAny-T_State...-">isForAny</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#newStateBits--">newStateBits</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#oldStateBits--">oldStateBits</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" target="_top">Frames</a></li> +<li><a href="BleDeviceConfig.BondFilter.StateChangeEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#methods.inherited.from.class.com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html new file mode 100644 index 0000000000000000000000000000000000000000..9f1343de939db7a42ee85c4f65a68aebc61ba5b9 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html @@ -0,0 +1,298 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDeviceConfig.BondFilter (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDeviceConfig.BondFilter (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6,"i1":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" target="_top">Frames</a></li> +<li><a href="BleDeviceConfig.BondFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleDeviceConfig.BondFilter" class="title">Interface BleDeviceConfig.BondFilter</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.DefaultBondFilter</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleDeviceConfig.BondFilter</span></pre> +<div class="block">As of now there are two main default uses for this class... + <br><br> + The first is that in at least some cases it's not possible to determine beforehand whether a given characteristic requires + bonding, so implementing this interface on <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#bondFilter"><code>BleDeviceConfig.bondFilter</code></a> lets the app give + a hint to the library so it can bond before attempting to read or write an encrypted characteristic. + Providing these hints lets the library handle things in a more deterministic and optimized fashion, but is not required. + <br><br> + The second is that some android devices have issues when it comes to bonding. So far the worst culprits + are certain Sony and Motorola phones, so if it looks like <a href="http://d.android.com/reference/android/os/Build.html?is-external=true#MANUFACTURER" title="class or interface in android.os"><code>Build.MANUFACTURER</code></a> + is either one of those, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig.DefaultBondFilter</code></a> is set to unbond upon discoveries and disconnects. + Please look at the source of <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig.DefaultBondFilter</code></a> for the most up-to-date spec. + The problem seems to be associated with mismanagement of pairing keys by the OS and + this brute force solution seems to be the only way to smooth things out.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEvent</a></span></code> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html#onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.CharacteristicEvent-"><code>onEvent(CharacteristicEvent)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEventType</a></span></code> +<div class="block">An enumeration of the type of characteristic operation for a <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig.BondFilter.CharacteristicEvent</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></span></code> +<div class="block">Return value for the various interface methods of <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleDeviceConfig.BondFilter</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.StateChangeEvent</a></span></code> +<div class="block">Just a dummy subclass of <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.StateListener.StateEvent</code></a> so that this gets auto-imported for implementations of <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleDeviceConfig.BondFilter</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html#onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.CharacteristicEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEvent</a> e)</code> +<div class="block">Called immediately before reading, writing, or enabling notification on a characteristic.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html#onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.StateChangeEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.StateChangeEvent</a> e)</code> +<div class="block">Called after a device undergoes a change in its <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.StateChangeEvent-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>onEvent</h4> +<pre><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a> onEvent(<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.StateChangeEvent</a> e)</pre> +<div class="block">Called after a device undergoes a change in its <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a>.</div> +</li> +</ul> +<a name="onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.CharacteristicEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a> onEvent(<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEvent</a> e)</pre> +<div class="block">Called immediately before reading, writing, or enabling notification on a characteristic.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" target="_top">Frames</a></li> +<li><a href="BleDeviceConfig.BondFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html new file mode 100644 index 0000000000000000000000000000000000000000..e7e25f5127fd99c049b1ef417a63764961312d31 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html @@ -0,0 +1,340 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDeviceConfig.DefaultBondFilter (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDeviceConfig.DefaultBondFilter (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" target="_top">Frames</a></li> +<li><a href="BleDeviceConfig.DefaultBondFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleDeviceConfig.DefaultBondFilter" class="title">Class BleDeviceConfig.DefaultBondFilter</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDeviceConfig.DefaultBondFilter</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleDeviceConfig.DefaultBondFilter</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter</a></pre> +<div class="block">Default implementation of <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleDeviceConfig.BondFilter</code></a> that unbonds for certain phone models upon discovery and disconnects. + See further explanation in documentation for <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleDeviceConfig.BondFilter</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEvent</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEventType</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.StateChangeEvent</a></code></li> +</ul> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html#DefaultBondFilter--">DefaultBondFilter</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html#onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.CharacteristicEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEvent</a> e)</code> +<div class="block">Called immediately before reading, writing, or enabling notification on a characteristic.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html#onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.StateChangeEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.StateChangeEvent</a> e)</code> +<div class="block">Called after a device undergoes a change in its <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html#phoneHasBondingIssues--">phoneHasBondingIssues</a></span>()</code> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/utils/Utils.html#phoneHasBondingIssues--"><code>Utils.phoneHasBondingIssues()</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="DefaultBondFilter--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>DefaultBondFilter</h4> +<pre>public DefaultBondFilter()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="phoneHasBondingIssues--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>phoneHasBondingIssues</h4> +<pre>public boolean phoneHasBondingIssues()</pre> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/utils/Utils.html#phoneHasBondingIssues--"><code>Utils.phoneHasBondingIssues()</code></a>. Override to make this <code>true</code> for more (or fewer) phones.</div> +</li> +</ul> +<a name="onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.StateChangeEvent-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a> onEvent(<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.StateChangeEvent</a> e)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html#onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.StateChangeEvent-">BleDeviceConfig.BondFilter</a></code></span></div> +<div class="block">Called after a device undergoes a change in its <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html#onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.StateChangeEvent-">onEvent</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter</a></code></dd> +</dl> +</li> +</ul> +<a name="onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.CharacteristicEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a> onEvent(<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEvent</a> e)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html#onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.CharacteristicEvent-">BleDeviceConfig.BondFilter</a></code></span></div> +<div class="block">Called immediately before reading, writing, or enabling notification on a characteristic.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html#onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.CharacteristicEvent-">onEvent</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" target="_top">Frames</a></li> +<li><a href="BleDeviceConfig.DefaultBondFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.html new file mode 100644 index 0000000000000000000000000000000000000000..6df1c0f732d44a21f9e408f072792c2900306533 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceConfig.html @@ -0,0 +1,1115 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDeviceConfig (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDeviceConfig (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceConfig.html" target="_top">Frames</a></li> +<li><a href="BleDeviceConfig.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleDeviceConfig" class="title">Class BleDeviceConfig</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">com.idevicesinc.sweetblue.BleNodeConfig</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDeviceConfig</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a></dd> +</dl> +<dl> +<dt>Direct Known Subclasses:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">BleDeviceConfig</span> +extends <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a> +implements <a href="http://d.android.com/reference/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a></pre> +<div class="block">Provides a number of options to (optionally) pass to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConfig-com.idevicesinc.sweetblue.BleDeviceConfig-"><code>BleDevice.setConfig(BleDeviceConfig)</code></a>. + This class is also a super class of <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a>, which you can pass + to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(Context, BleManagerConfig)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setConfig-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.setConfig(BleManagerConfig)</code></a> to set default base options for all devices at once. + For all options in this class, you may set the value to <code>null</code> when passed to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConfig-com.idevicesinc.sweetblue.BleDeviceConfig-"><code>BleDevice.setConfig(BleDeviceConfig)</code></a> + and the value will then be inherited from the <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(Context, BleManagerConfig)</code></a>. + Otherwise, if the value is not <code>null</code> it will override any option in the <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a>. + If an option is ultimately <code>null</code> (<code>null</code> when passed to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConfig-com.idevicesinc.sweetblue.BleDeviceConfig-"><code>BleDevice.setConfig(BleDeviceConfig)</code></a> + *and* <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(Context, BleManagerConfig)</code></a>) then it is interpreted as <code>false</code> or <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a>. + <br><br> + TIP: You can use <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a> instead of <code>null</code> to disable any keepalive-based options, for code readability's sake. + <br><br> + TIP: You can use <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#newNulled--"><code>newNulled()</code></a> (or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#nullOut--"><code>BleNodeConfig.nullOut()</code></a>) then only set the few options you want for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConfig-com.idevicesinc.sweetblue.BleDeviceConfig-"><code>BleDevice.setConfig(BleDeviceConfig)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Class and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter</a></span></code> +<div class="block">As of now there are two main default uses for this class...</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.DefaultBondFilter</a></span></code> +<div class="block">Default implementation of <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleDeviceConfig.BondFilter</code></a> that unbonds for certain phone models upon discovery and disconnects.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleNodeConfig"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultHistoricalDataLogFilter</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultReconnectFilter</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultTaskTimeoutRequestFilter</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataFactory</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter</a></code></li> +</ul> +</li> +</ul> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#allowDuplicatePollEntries">allowDuplicatePollEntries</a></span></code> +<div class="block">Default is <code>false</code> - if <code>true</code> and you call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(UUID, Interval, BleDevice.ReadWriteListener)</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startChangeTrackingPoll(UUID, Interval, BleDevice.ReadWriteListener)()</code></a> with identical + parameters then two identical polls would run which would probably be wasteful and unintentional.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#autoEnableNotifiesOnReconnect">autoEnableNotifiesOnReconnect</a></span></code> +<div class="block">Default is <code>true</code> - whether to automatically enable notifications that were enabled via a call to any of the enableNotify() methods + in <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> upon device reconnection.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#autoGetServices">autoGetServices</a></span></code> +<div class="block">Default is <code>true</code> - whether to automatically get services immediately after a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> is + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#autoReconnectDeviceWhenBleTurnsBackOn">autoReconnectDeviceWhenBleTurnsBackOn</a></span></code> +<div class="block">Default is <code>true</code> - if devices are kept in memory for a <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOff--"><code>BleManager.turnOff()</code></a>/<a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOn--"><code>BleManager.turnOn()</code></a> cycle + (or a <a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a>) because <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#retainDeviceWhenBleTurnsOff"><code>retainDeviceWhenBleTurnsOff</code></a> is <code>true</code>, then a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> + will be attempted for any devices that were previously <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#bondFilter">bondFilter</a></span></code> +<div class="block">Default is instance of <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig.DefaultBondFilter</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#bondingFailFailsConnection">bondingFailFailsConnection</a></span></code> +<div class="block">Default is <code>true</code> - controls whether <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#BONDING_FAILED"><code>BleDevice.ConnectionFailListener.Status.BONDING_FAILED</code></a> is capable of + inducing <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent)</code></a> + while a device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING_OVERALL"><code>BleDeviceState.CONNECTING_OVERALL</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#cacheDeviceOnUndiscovery">cacheDeviceOnUndiscovery</a></span></code> +<div class="block">Default is <code>true</code> - controls whether a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> is placed into an in-memory cache when it becomes <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#UNDISCOVERED"><code>BleDeviceState.UNDISCOVERED</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_MINIMUM_SCAN_TIME">DEFAULT_MINIMUM_SCAN_TIME</a></span></code> +<div class="block">Default value for <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#minScanTimeNeededForUndiscovery"><code>minScanTimeNeededForUndiscovery</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_AUTO_POLL_RATE">DEFAULT_RSSI_AUTO_POLL_RATE</a></span></code> +<div class="block">Default value for <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#rssiAutoPollRate"><code>rssiAutoPollRate</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_MAX">DEFAULT_RSSI_MAX</a></span></code> +<div class="block">Default fallback value for <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#rssi_max"><code>rssi_max</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_MIN">DEFAULT_RSSI_MIN</a></span></code> +<div class="block">Default fallback value for <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#rssi_min"><code>rssi_min</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RUNNING_AVERAGE_N">DEFAULT_RUNNING_AVERAGE_N</a></span></code> +<div class="block">Default value for <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningReadTime"><code>nForAverageRunningReadTime</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningWriteTime"><code>nForAverageRunningWriteTime</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_SCAN_KEEP_ALIVE">DEFAULT_SCAN_KEEP_ALIVE</a></span></code> +<div class="block">This is a good default value for <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#undiscoveryKeepAlive"><code>undiscoveryKeepAlive</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_TX_POWER">DEFAULT_TX_POWER</a></span></code> +<div class="block">Default value for <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#defaultTxPower"><code>defaultTxPower</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#defaultAuthTransaction">defaultAuthTransaction</a></span></code> +<div class="block">Set a default <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue"><code>BleTransaction.Auth</code></a> which will be used when + auto connecting.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#defaultInitTransaction">defaultInitTransaction</a></span></code> +<div class="block">Set a default <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue"><code>BleTransaction.Init</code></a> which will be used when + auto connecting.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#defaultTxPower">defaultTxPower</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_TX_POWER"><code>DEFAULT_TX_POWER</code></a> - this value is used if we can't establish a device's calibrated transmission power from the device itself, + either through its scan record or by reading the standard characteristic.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#forceBondDialog">forceBondDialog</a></span></code> +<div class="block">Default is <code>false</code>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#includeOtaReadWriteTimesInAverage">includeOtaReadWriteTimesInAverage</a></span></code> +<div class="block">Default is <code>false</code> - <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getAverageReadTime--"><code>BleDevice.getAverageReadTime()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getAverageWriteTime--"><code>BleDevice.getAverageWriteTime()</code></a> can be + skewed if the peripheral you are connecting to adjusts its maximum throughput for OTA firmware updates and the like.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#manageLastDisconnectOnDisk">manageLastDisconnectOnDisk</a></span></code> +<div class="block">Default is <code>true</code> - controls whether the <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils"><code>State.ChangeIntent</code></a> behind a device going <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a> + is saved to and loaded from disk so that it can be restored across app sessions, undiscoveries, and BLE + <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>-><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a> cycles.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#minScanTimeNeededForUndiscovery">minScanTimeNeededForUndiscovery</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_MINIMUM_SCAN_TIME"><code>DEFAULT_MINIMUM_SCAN_TIME</code></a> seconds - Undiscovery of devices must be + approximated by checking when the last time was that we discovered a device, + and if this time is greater than <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#undiscoveryKeepAlive"><code>undiscoveryKeepAlive</code></a> then the device is undiscovered.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningReadTime">nForAverageRunningReadTime</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RUNNING_AVERAGE_N"><code>DEFAULT_RUNNING_AVERAGE_N</code></a> - Same thing as <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningWriteTime"><code>nForAverageRunningWriteTime</code></a> but for reads.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningWriteTime">nForAverageRunningWriteTime</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RUNNING_AVERAGE_N"><code>DEFAULT_RUNNING_AVERAGE_N</code></a> - The number of historical write times that the library should keep track of when calculating average time.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#retainDeviceWhenBleTurnsOff">retainDeviceWhenBleTurnsOff</a></span></code> +<div class="block">Default is <code>true</code> - controls whether <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> will keep a device in active memory when it goes <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#rssi_max">rssi_max</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_MAX"><code>DEFAULT_RSSI_MAX</code></a> - the estimated maximum value for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>BleDevice.getRssi()</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#rssi_min">rssi_min</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_MIN"><code>DEFAULT_RSSI_MIN</code></a> - the estimated minimum value for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>BleDevice.getRssi()</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#rssiAutoPollRate">rssiAutoPollRate</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_AUTO_POLL_RATE"><code>DEFAULT_RSSI_AUTO_POLL_RATE</code></a> - The rate at which a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> will automatically poll for its <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>BleDevice.getRssi()</code></a> value + after it's <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#saveNameChangesToDisk">saveNameChangesToDisk</a></span></code> +<div class="block">Default is <code>true</code> - controls whether changes to a device's name through <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-"><code>BleDevice.setName(String)</code></a> are remembered on disk through + <a href="http://d.android.com/reference/android/content/SharedPreferences.html?is-external=true" title="class or interface in android.content"><code>SharedPreferences</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#tryBondingWhileDisconnected">tryBondingWhileDisconnected</a></span></code> +<div class="block">Default is <code>true</code> - some devices can only reliably become <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDED"><code>BleDeviceState.BONDED</code></a> while <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>, + so this option controls whether the library will internally change any bonding flow dictated by <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#bondFilter"><code>bondFilter</code></a> when a bond fails and try + to bond again the next time the device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#tryBondingWhileDisconnected_manageOnDisk">tryBondingWhileDisconnected_manageOnDisk</a></span></code> +<div class="block">Default is <code>true</code> - controls whether any bonding issues worked around if <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#tryBondingWhileDisconnected"><code>tryBondingWhileDisconnected</code></a> is <code>true</code> are remembered on disk + (through <a href="http://d.android.com/reference/android/content/SharedPreferences.html?is-external=true" title="class or interface in android.content"><code>SharedPreferences</code></a>) so that bonding is as stable as possible across application sessions.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#undiscoverDeviceWhenBleTurnsOff">undiscoverDeviceWhenBleTurnsOff</a></span></code> +<div class="block">Default is <code>true</code> - only applicable if <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#retainDeviceWhenBleTurnsOff"><code>retainDeviceWhenBleTurnsOff</code></a> is also true.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#undiscoveryKeepAlive">undiscoveryKeepAlive</a></span></code> +<div class="block">Default is disabled - If a device exceeds this amount of time since its + last discovery then it is a candidate for being undiscovered.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#useGattRefresh">useGattRefresh</a></span></code> +<div class="block">Default is <code>false</code> - whether to use <code>BluetoothGatt.refresh()</code> right before service discovery.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#useLeTransportForBonding">useLeTransportForBonding</a></span></code> +<div class="block">The below explanation is wrong, only in that the default is now <code>false</code>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.com.idevicesinc.sweetblue.BleNodeConfig"> +<!-- --> +</a> +<h3>Fields inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#allowCallsFromAllThreads">allowCallsFromAllThreads</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#alwaysUseAutoConnect">alwaysUseAutoConnect</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#DEFAULT_MTU_SIZE">DEFAULT_MTU_SIZE</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#disconnectIsCancellable">disconnectIsCancellable</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#GATT_MTU_OVERHEAD">GATT_MTU_OVERHEAD</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataFactory">historicalDataFactory</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataLogFilter">historicalDataLogFilter</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#INVALID_TX_POWER">INVALID_TX_POWER</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#reconnectFilter">reconnectFilter</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter">taskTimeoutRequestFilter</a></code></li> +</ul> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#BleDeviceConfig--">BleDeviceConfig</a></span>()</code> +<div class="block">Creates a <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> with all default options set.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>protected <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#clone--">clone</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#newNulled--">newNulled</a></span>()</code> +<div class="block">Convenience method that returns a nulled out <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a>, which is useful + when using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConfig-com.idevicesinc.sweetblue.BleDeviceConfig-"><code>BleDevice.setConfig(BleDeviceConfig)</code></a> to only override a few options + from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(Context, BleManagerConfig)</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setConfig-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.setConfig(BleManagerConfig)</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.BleNodeConfig"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#nullOut--">nullOut</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="DEFAULT_MINIMUM_SCAN_TIME"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_MINIMUM_SCAN_TIME</h4> +<pre>public static final double DEFAULT_MINIMUM_SCAN_TIME</pre> +<div class="block">Default value for <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#minScanTimeNeededForUndiscovery"><code>minScanTimeNeededForUndiscovery</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleDeviceConfig.DEFAULT_MINIMUM_SCAN_TIME">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="DEFAULT_RUNNING_AVERAGE_N"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_RUNNING_AVERAGE_N</h4> +<pre>public static final int DEFAULT_RUNNING_AVERAGE_N</pre> +<div class="block">Default value for <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningReadTime"><code>nForAverageRunningReadTime</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningWriteTime"><code>nForAverageRunningWriteTime</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleDeviceConfig.DEFAULT_RUNNING_AVERAGE_N">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="DEFAULT_SCAN_KEEP_ALIVE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_SCAN_KEEP_ALIVE</h4> +<pre>public static final double DEFAULT_SCAN_KEEP_ALIVE</pre> +<div class="block">This is a good default value for <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#undiscoveryKeepAlive"><code>undiscoveryKeepAlive</code></a>. By default <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#undiscoveryKeepAlive"><code>undiscoveryKeepAlive</code></a> is <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleDeviceConfig.DEFAULT_SCAN_KEEP_ALIVE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="DEFAULT_RSSI_AUTO_POLL_RATE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_RSSI_AUTO_POLL_RATE</h4> +<pre>public static final double DEFAULT_RSSI_AUTO_POLL_RATE</pre> +<div class="block">Default value for <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#rssiAutoPollRate"><code>rssiAutoPollRate</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleDeviceConfig.DEFAULT_RSSI_AUTO_POLL_RATE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="DEFAULT_RSSI_MIN"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_RSSI_MIN</h4> +<pre>public static final int DEFAULT_RSSI_MIN</pre> +<div class="block">Default fallback value for <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#rssi_min"><code>rssi_min</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleDeviceConfig.DEFAULT_RSSI_MIN">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="DEFAULT_RSSI_MAX"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_RSSI_MAX</h4> +<pre>public static final int DEFAULT_RSSI_MAX</pre> +<div class="block">Default fallback value for <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#rssi_max"><code>rssi_max</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleDeviceConfig.DEFAULT_RSSI_MAX">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="DEFAULT_TX_POWER"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_TX_POWER</h4> +<pre>public static final int DEFAULT_TX_POWER</pre> +<div class="block">Default value for <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#defaultTxPower"><code>defaultTxPower</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleDeviceConfig.DEFAULT_TX_POWER">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="forceBondDialog"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>forceBondDialog</h4> +<pre>public boolean forceBondDialog</pre> +<div class="block">Default is <code>false</code>. If the bluetooth device you are trying to connect to requires a pairing dialog to show up, you should + set this to <code>true</code>. Android will do one of two things when you try to pair to the device. It will either A) show the pairing dialog, or + B) show a notification in the notification area. When B happens, most people probably won't notice it, and think your app can't connect to the device. + This uses an ugly hack to get the dialog to always display...it starts a CLASSIC bluetooth scan for a second, then stops it, and starts the bond. As crazy + as it sounds, it works. Note that no devices will be discovered during this one second scan.</div> +</li> +</ul> +<a name="tryBondingWhileDisconnected"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>tryBondingWhileDisconnected</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> tryBondingWhileDisconnected</pre> +<div class="block">Default is <code>true</code> - some devices can only reliably become <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDED"><code>BleDeviceState.BONDED</code></a> while <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>, + so this option controls whether the library will internally change any bonding flow dictated by <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#bondFilter"><code>bondFilter</code></a> when a bond fails and try + to bond again the next time the device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>. + <br><br> + NOTE: This option was added after noticing this behavior with the Samsung Tab 4 running 4.4.4.</div> +</li> +</ul> +<a name="tryBondingWhileDisconnected_manageOnDisk"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>tryBondingWhileDisconnected_manageOnDisk</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> tryBondingWhileDisconnected_manageOnDisk</pre> +<div class="block">Default is <code>true</code> - controls whether any bonding issues worked around if <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#tryBondingWhileDisconnected"><code>tryBondingWhileDisconnected</code></a> is <code>true</code> are remembered on disk + (through <a href="http://d.android.com/reference/android/content/SharedPreferences.html?is-external=true" title="class or interface in android.content"><code>SharedPreferences</code></a>) so that bonding is as stable as possible across application sessions.</div> +</li> +</ul> +<a name="saveNameChangesToDisk"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>saveNameChangesToDisk</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> saveNameChangesToDisk</pre> +<div class="block">Default is <code>true</code> - controls whether changes to a device's name through <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-"><code>BleDevice.setName(String)</code></a> are remembered on disk through + <a href="http://d.android.com/reference/android/content/SharedPreferences.html?is-external=true" title="class or interface in android.content"><code>SharedPreferences</code></a>. If true, this means calls to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_override--"><code>BleDevice.getName_override()</code></a> will return the same thing + even across app restarts.</div> +</li> +</ul> +<a name="autoGetServices"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>autoGetServices</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> autoGetServices</pre> +<div class="block">Default is <code>true</code> - whether to automatically get services immediately after a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> is + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>. Currently this is the only way to get a device's services.</div> +</li> +</ul> +<a name="autoEnableNotifiesOnReconnect"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>autoEnableNotifiesOnReconnect</h4> +<pre>public boolean autoEnableNotifiesOnReconnect</pre> +<div class="block">Default is <code>true</code> - whether to automatically enable notifications that were enabled via a call to any of the enableNotify() methods + in <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> upon device reconnection. Basically, if you enable notifications in an <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue"><code>BleTransaction.Init</code></a> transaction, + then set this to <code>false</code>, and use your transaction.</div> +</li> +</ul> +<a name="allowDuplicatePollEntries"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>allowDuplicatePollEntries</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> allowDuplicatePollEntries</pre> +<div class="block">Default is <code>false</code> - if <code>true</code> and you call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(UUID, Interval, BleDevice.ReadWriteListener)</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startChangeTrackingPoll(UUID, Interval, BleDevice.ReadWriteListener)()</code></a> with identical + parameters then two identical polls would run which would probably be wasteful and unintentional. + This option provides a defense against that situation.</div> +</li> +</ul> +<a name="includeOtaReadWriteTimesInAverage"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>includeOtaReadWriteTimesInAverage</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> includeOtaReadWriteTimesInAverage</pre> +<div class="block">Default is <code>false</code> - <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getAverageReadTime--"><code>BleDevice.getAverageReadTime()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getAverageWriteTime--"><code>BleDevice.getAverageWriteTime()</code></a> can be + skewed if the peripheral you are connecting to adjusts its maximum throughput for OTA firmware updates and the like. + Use this option to let the library know whether you want read/writes to factor in while <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#PERFORMING_OTA"><code>BleDeviceState.PERFORMING_OTA</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getAverageReadTime--"><code>BleDevice.getAverageReadTime()</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getAverageWriteTime--"><code>BleDevice.getAverageWriteTime()</code></a></dd> +</dl> +</li> +</ul> +<a name="retainDeviceWhenBleTurnsOff"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>retainDeviceWhenBleTurnsOff</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> retainDeviceWhenBleTurnsOff</pre> +<div class="block">Default is <code>true</code> - controls whether <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> will keep a device in active memory when it goes <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>. + If <code>false</code> then a device will be purged and you'll have to do <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a> again to discover devices + if/when <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> goes back <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a>. + <br><br> + NOTE: if this flag is true for <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(Context, BleManagerConfig)</code></a> then this + applies to all devices.</div> +</li> +</ul> +<a name="undiscoverDeviceWhenBleTurnsOff"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>undiscoverDeviceWhenBleTurnsOff</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> undiscoverDeviceWhenBleTurnsOff</pre> +<div class="block">Default is <code>true</code> - only applicable if <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#retainDeviceWhenBleTurnsOff"><code>retainDeviceWhenBleTurnsOff</code></a> is also true. If <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#retainDeviceWhenBleTurnsOff"><code>retainDeviceWhenBleTurnsOff</code></a> + is false then devices will be undiscovered when <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> goes <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a> regardless. + <br><br> + NOTE: See NOTE for <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#retainDeviceWhenBleTurnsOff"><code>retainDeviceWhenBleTurnsOff</code></a> for how this applies to <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#retainDeviceWhenBleTurnsOff"><code>retainDeviceWhenBleTurnsOff</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#autoReconnectDeviceWhenBleTurnsBackOn"><code>autoReconnectDeviceWhenBleTurnsBackOn</code></a></dd> +</dl> +</li> +</ul> +<a name="autoReconnectDeviceWhenBleTurnsBackOn"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>autoReconnectDeviceWhenBleTurnsBackOn</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> autoReconnectDeviceWhenBleTurnsBackOn</pre> +<div class="block">Default is <code>true</code> - if devices are kept in memory for a <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOff--"><code>BleManager.turnOff()</code></a>/<a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOn--"><code>BleManager.turnOn()</code></a> cycle + (or a <a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a>) because <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#retainDeviceWhenBleTurnsOff"><code>retainDeviceWhenBleTurnsOff</code></a> is <code>true</code>, then a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> + will be attempted for any devices that were previously <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>. + <br><br> + NOTE: See NOTE for <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#retainDeviceWhenBleTurnsOff"><code>retainDeviceWhenBleTurnsOff</code></a> for how this applies to <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#retainDeviceWhenBleTurnsOff"><code>retainDeviceWhenBleTurnsOff</code></a></dd> +</dl> +</li> +</ul> +<a name="manageLastDisconnectOnDisk"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>manageLastDisconnectOnDisk</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> manageLastDisconnectOnDisk</pre> +<div class="block">Default is <code>true</code> - controls whether the <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils"><code>State.ChangeIntent</code></a> behind a device going <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a> + is saved to and loaded from disk so that it can be restored across app sessions, undiscoveries, and BLE + <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>-><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a> cycles. This uses Android's <a href="http://d.android.com/reference/android/content/SharedPreferences.html?is-external=true" title="class or interface in android.content"><code>SharedPreferences</code></a> so does not require + any extra permissions. The main advantage of this is the following scenario: User connects to a device through your app, + does what they want, kills the app, then opens the app sometime later. <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getLastDisconnectIntent--"><code>BleDevice.getLastDisconnectIntent()</code></a> returns + <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#UNINTENTIONAL"><code>State.ChangeIntent.UNINTENTIONAL</code></a>, which lets you know that you can probably automatically connect to this device without user confirmation.</div> +</li> +</ul> +<a name="cacheDeviceOnUndiscovery"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>cacheDeviceOnUndiscovery</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> cacheDeviceOnUndiscovery</pre> +<div class="block">Default is <code>true</code> - controls whether a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> is placed into an in-memory cache when it becomes <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#UNDISCOVERED"><code>BleDeviceState.UNDISCOVERED</code></a>. + If <code>true</code>, subsequent calls to <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"><code>BleManager.DiscoveryListener.onEvent(BleManager.DiscoveryListener.DiscoveryEvent)</code></a> with + <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#DISCOVERED"><code>BleManager.DiscoveryListener.LifeCycle.DISCOVERED</code></a> (or calls to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-"><code>BleManager.newDevice(String)</code></a>) will return the cached <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> instead of creating a new one. + <br><br> + The advantages of caching are:<br> + <ul> + <li>Slightly better performance at the cost of some retained memory, especially in situations where you're frequently discovering and undiscovering many devices. + <li>Resistance to future stack failures that would otherwise mean missing data like <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getAdvertisedServices--"><code>BleDevice.getAdvertisedServices()</code></a> for future discovery events. + <li>More resistant to potential "user error" of retaining devices in app-land after BleManager undiscovery. + <ul><br> + This is kept as an option in case there's some unforeseen problem with devices being cached for a certain application. + + See also <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#minScanTimeNeededForUndiscovery"><code>minScanTimeNeededForUndiscovery</code></a>.</div> +</li> +</ul> +<a name="bondingFailFailsConnection"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bondingFailFailsConnection</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> bondingFailFailsConnection</pre> +<div class="block">Default is <code>true</code> - controls whether <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#BONDING_FAILED"><code>BleDevice.ConnectionFailListener.Status.BONDING_FAILED</code></a> is capable of + inducing <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent)</code></a> + while a device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING_OVERALL"><code>BleDeviceState.CONNECTING_OVERALL</code></a>.</div> +</li> +</ul> +<a name="useGattRefresh"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>useGattRefresh</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> useGattRefresh</pre> +<div class="block">Default is <code>false</code> - whether to use <code>BluetoothGatt.refresh()</code> right before service discovery. + This method is not in the public Android API, so its use is disabled by default. You may find it useful to enable + if your remote device is routinely changing its gatt service profile. This method call supposedly clears a cache + that would otherwise prevent changes from being discovered.</div> +</li> +</ul> +<a name="useLeTransportForBonding"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>useLeTransportForBonding</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> useLeTransportForBonding</pre> +<div class="block">The below explanation is wrong, only in that the default is now <code>false</code>. This is for backwards + compatibility, as a customer noted bonding not working after this change. This will most likely go back to being + <code>true</code> when version 3 comes out. + + Default is <code>true</code> - The normal way to bond in the native API is to use <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#createBond--" title="class or interface in android.bluetooth"><code>BluetoothDevice.createBond()</code></a>. + There is however also a overload method that's made invisible using the "hide" annotation that takes an int + representing the desired transport mode. The default for <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#createBond--" title="class or interface in android.bluetooth"><code>BluetoothDevice.createBond()</code></a> is <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#TRANSPORT_AUTO" title="class or interface in android.bluetooth"><code>BluetoothDevice.TRANSPORT_AUTO</code></a>. + You can look at the source to see that this is the case. The thing is, you *never* want the Android stack to automatically decide something. + So if you set <code>useLeTransportForBonding</code> to true then SweetBlue will use the "private" overloaded method with + <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#TRANSPORT_LE" title="class or interface in android.bluetooth"><code>BluetoothDevice.TRANSPORT_LE</code></a>. This workaround anecdotally fixed bonding issues with LG G4 and Samsung S6 phones. + Anecdotally because the public <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#createBond--" title="class or interface in android.bluetooth"><code>BluetoothDevice.createBond()</code></a> was not working, tried the private one, it worked, + but then the public <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#createBond--" title="class or interface in android.bluetooth"><code>BluetoothDevice.createBond()</code></a> also worked flawlessly after that. + But again, regardless, you should always choose explicit behavior over automatic when dealing with Android BLE.</div> +</li> +</ul> +<a name="minScanTimeNeededForUndiscovery"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>minScanTimeNeededForUndiscovery</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> minScanTimeNeededForUndiscovery</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_MINIMUM_SCAN_TIME"><code>DEFAULT_MINIMUM_SCAN_TIME</code></a> seconds - Undiscovery of devices must be + approximated by checking when the last time was that we discovered a device, + and if this time is greater than <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#undiscoveryKeepAlive"><code>undiscoveryKeepAlive</code></a> then the device is undiscovered. However a scan + operation must be allowed a certain amount of time to make sure it discovers all nearby devices that are + still advertising. This is that time in seconds. + <br><br> + Use <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a> to disable undiscovery altogether.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"><code>BleManager.DiscoveryListener.onEvent(DiscoveryEvent)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#undiscoveryKeepAlive"><code>undiscoveryKeepAlive</code></a></dd> +</dl> +</li> +</ul> +<a name="undiscoveryKeepAlive"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>undiscoveryKeepAlive</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> undiscoveryKeepAlive</pre> +<div class="block">Default is disabled - If a device exceeds this amount of time since its + last discovery then it is a candidate for being undiscovered. + The default for this option attempts to accommodate the worst Android phones (BLE-wise), which may make it seem + like it takes a long time to undiscover a device. You may want to configure this number based on the phone or + manufacturer. For example, based on testing, in order to make undiscovery snappier the Galaxy S5 could use lower times. + <br><br> + Use <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a> to disable undiscovery altogether.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"><code>BleManager.DiscoveryListener.onEvent(DiscoveryEvent)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#minScanTimeNeededForUndiscovery"><code>minScanTimeNeededForUndiscovery</code></a></dd> +</dl> +</li> +</ul> +<a name="rssiAutoPollRate"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>rssiAutoPollRate</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> rssiAutoPollRate</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_AUTO_POLL_RATE"><code>DEFAULT_RSSI_AUTO_POLL_RATE</code></a> - The rate at which a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> will automatically poll for its <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>BleDevice.getRssi()</code></a> value + after it's <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>. You may also use <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startRssiPoll(Interval, ReadWriteListener)</code></a> for more control and feedback.</div> +</li> +</ul> +<a name="nForAverageRunningWriteTime"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>nForAverageRunningWriteTime</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> nForAverageRunningWriteTime</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RUNNING_AVERAGE_N"><code>DEFAULT_RUNNING_AVERAGE_N</code></a> - The number of historical write times that the library should keep track of when calculating average time.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getAverageWriteTime--"><code>BleDevice.getAverageWriteTime()</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningReadTime"><code>nForAverageRunningReadTime</code></a></dd> +</dl> +</li> +</ul> +<a name="nForAverageRunningReadTime"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>nForAverageRunningReadTime</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> nForAverageRunningReadTime</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RUNNING_AVERAGE_N"><code>DEFAULT_RUNNING_AVERAGE_N</code></a> - Same thing as <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningWriteTime"><code>nForAverageRunningWriteTime</code></a> but for reads.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getAverageWriteTime--"><code>BleDevice.getAverageWriteTime()</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningWriteTime"><code>nForAverageRunningWriteTime</code></a></dd> +</dl> +</li> +</ul> +<a name="defaultTxPower"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>defaultTxPower</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> defaultTxPower</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_TX_POWER"><code>DEFAULT_TX_POWER</code></a> - this value is used if we can't establish a device's calibrated transmission power from the device itself, + either through its scan record or by reading the standard characteristic. To get a good value for this on a per-remote-device basis + experimentally, simply run a sample app and use <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startRssiPoll(Interval, ReadWriteListener)</code></a> and spit <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>BleDevice.getRssi()</code></a> + to your log. The average value of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>BleDevice.getRssi()</code></a> at one meter away is the value you should use for this config option.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getTxPower--"><code>BleDevice.getTxPower()</code></a></dd> +</dl> +</li> +</ul> +<a name="rssi_min"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>rssi_min</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> rssi_min</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_MIN"><code>DEFAULT_RSSI_MIN</code></a> - the estimated minimum value for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>BleDevice.getRssi()</code></a>.</div> +</li> +</ul> +<a name="rssi_max"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>rssi_max</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a> rssi_max</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_MAX"><code>DEFAULT_RSSI_MAX</code></a> - the estimated maximum value for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>BleDevice.getRssi()</code></a>.</div> +</li> +</ul> +<a name="bondFilter"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bondFilter</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter</a> bondFilter</pre> +<div class="block">Default is instance of <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig.DefaultBondFilter</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleDeviceConfig.BondFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="defaultAuthTransaction"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>defaultAuthTransaction</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a> defaultAuthTransaction</pre> +<div class="block">Set a default <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue"><code>BleTransaction.Auth</code></a> which will be used when + auto connecting.</div> +</li> +</ul> +<a name="defaultInitTransaction"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>defaultInitTransaction</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a> defaultInitTransaction</pre> +<div class="block">Set a default <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue"><code>BleTransaction.Init</code></a> which will be used when + auto connecting.</div> +</li> +</ul> +</li> +</ul> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="BleDeviceConfig--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BleDeviceConfig</h4> +<pre>public BleDeviceConfig()</pre> +<div class="block">Creates a <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> with all default options set. See each member of this class + for what the default options are set to. Consider using <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#newNulled--"><code>newNulled()</code></a> also.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="newNulled--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newNulled</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a> newNulled()</pre> +<div class="block">Convenience method that returns a nulled out <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a>, which is useful + when using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConfig-com.idevicesinc.sweetblue.BleDeviceConfig-"><code>BleDevice.setConfig(BleDeviceConfig)</code></a> to only override a few options + from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(Context, BleManagerConfig)</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setConfig-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.setConfig(BleManagerConfig)</code></a>.</div> +</li> +</ul> +<a name="clone--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>clone</h4> +<pre>protected <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a> clone()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#clone--">clone</a></code> in class <code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceConfig.html" target="_top">Frames</a></li> +<li><a href="BleDeviceConfig.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceIterator.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceIterator.html new file mode 100644 index 0000000000000000000000000000000000000000..ee72c61670444d01cf8459bc81cec2239ba79269 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceIterator.html @@ -0,0 +1,351 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDeviceIterator (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDeviceIterator (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceIterator.html" target="_top">Frames</a></li> +<li><a href="BleDeviceIterator.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleDeviceIterator" class="title">Class BleDeviceIterator</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDeviceIterator</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">BleDeviceIterator</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>></pre> +<div class="block">Implementation of <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util"><code>Iterator</code></a> for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> instances, returned from <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices--"><code>BleManager.getDevices()</code></a> and its overloads.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html#BleDeviceIterator-java.util.List-">BleDeviceIterator</a></span>(<a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> all)</code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html#BleDeviceIterator-java.util.List-int-">BleDeviceIterator</a></span>(<a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> all, + int mask)</code> </td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html#BleDeviceIterator-java.util.List-java.lang.Object...-">BleDeviceIterator</a></span>(<a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> all, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html#hasNext--">hasNext</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html#next--">next</a></span>()</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html#remove--">remove</a></span>()</code> +<div class="block">Calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#undiscover-com.idevicesinc.sweetblue.BleDevice-"><code>BleManager.undiscover(BleDevice)</code></a>, removing it from the <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> singleton's internal list.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.util.Iterator"> +<!-- --> +</a> +<h3>Methods inherited from interface java.util.<a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a></h3> +<code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true#forEachRemaining-java.util.function.Consumer-" title="class or interface in java.util">forEachRemaining</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="BleDeviceIterator-java.util.List-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleDeviceIterator</h4> +<pre>public BleDeviceIterator(<a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> all)</pre> +</li> +</ul> +<a name="BleDeviceIterator-java.util.List-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleDeviceIterator</h4> +<pre>public BleDeviceIterator(<a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> all, + int mask)</pre> +</li> +</ul> +<a name="BleDeviceIterator-java.util.List-java.lang.Object...-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BleDeviceIterator</h4> +<pre>public BleDeviceIterator(<a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> all, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="hasNext--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasNext</h4> +<pre>public boolean hasNext()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true#hasNext--" title="class or interface in java.util">hasNext</a></code> in interface <code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>></code></dd> +</dl> +</li> +</ul> +<a name="next--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>next</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> next()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true#next--" title="class or interface in java.util">next</a></code> in interface <code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>></code></dd> +</dl> +</li> +</ul> +<a name="remove--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>remove</h4> +<pre>public void remove()</pre> +<div class="block">Calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#undiscover-com.idevicesinc.sweetblue.BleDevice-"><code>BleManager.undiscover(BleDevice)</code></a>, removing it from the <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> singleton's internal list.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true#remove--" title="class or interface in java.util">remove</a></code> in interface <code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceIterator.html" target="_top">Frames</a></li> +<li><a href="BleDeviceIterator.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceOrigin.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceOrigin.html new file mode 100644 index 0000000000000000000000000000000000000000..a492d9f141cf1595a93ebcdc5a1952501e0f67fd --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceOrigin.html @@ -0,0 +1,348 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDeviceOrigin (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDeviceOrigin (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceOrigin.html" target="_top">Frames</a></li> +<li><a href="BleDeviceOrigin.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleDeviceOrigin" class="title">Enum BleDeviceOrigin</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue">BleDeviceOrigin</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDeviceOrigin</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue">BleDeviceOrigin</a>></dd> +</dl> +<hr> +<br> +<pre>public enum <span class="typeNameLabel">BleDeviceOrigin</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue">BleDeviceOrigin</a>></pre> +<div class="block">Enumeration signifying how a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> instance was created.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html#EXPLICIT">EXPLICIT</a></span></code> +<div class="block">Created from <a href="../../../com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-java.lang.String-"><code>BleManager.newDevice(String, String)</code></a> or overloads.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html#FROM_DISCOVERY">FROM_DISCOVERY</a></span></code> +<div class="block">Created from an advertising discovery right before <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"><code>BleManager.DiscoveryListener.onEvent(com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent)</code></a> is called.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue">BleDeviceOrigin</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue">BleDeviceOrigin</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="EXPLICIT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>EXPLICIT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue">BleDeviceOrigin</a> EXPLICIT</pre> +<div class="block">Created from <a href="../../../com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-java.lang.String-"><code>BleManager.newDevice(String, String)</code></a> or overloads. + This type of device can only be <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#UNDISCOVERED"><code>BleDeviceState.UNDISCOVERED</code></a> by using + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#undiscover-com.idevicesinc.sweetblue.BleDevice-"><code>BleManager.undiscover(BleDevice)</code></a>.</div> +</li> +</ul> +<a name="FROM_DISCOVERY"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>FROM_DISCOVERY</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue">BleDeviceOrigin</a> FROM_DISCOVERY</pre> +<div class="block">Created from an advertising discovery right before <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"><code>BleManager.DiscoveryListener.onEvent(com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent)</code></a> is called.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue">BleDeviceOrigin</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleDeviceOrigin c : BleDeviceOrigin.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue">BleDeviceOrigin</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceOrigin.html" target="_top">Frames</a></li> +<li><a href="BleDeviceOrigin.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceState.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceState.html new file mode 100644 index 0000000000000000000000000000000000000000..3372ed647612457d2b541c43a30cc82eba2186f1 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleDeviceState.html @@ -0,0 +1,936 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleDeviceState (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleDeviceState (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9,"i9":9,"i10":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceState.html" target="_top">Frames</a></li> +<li><a href="BleDeviceState.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleDeviceState" class="title">Enum BleDeviceState</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleDeviceState</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>, <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a>></dd> +</dl> +<hr> +<br> +<pre>public enum <span class="typeNameLabel">BleDeviceState</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></pre> +<div class="block">An enumeration of the various states that a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> can be in. + Note that a device can and usually will be in multiple states simultaneously. + Use <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleDevice.setListener_State(StateListener)</code></a> to be notified of state changes.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.StateListener</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.utils.State"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a><<a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a> extends <a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a></code></li> +</ul> +</li> +</ul> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#ADVERTISING">ADVERTISING</a></span></code> +<div class="block">When <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getOrigin--"><code>BleDevice.getOrigin()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html#FROM_DISCOVERY"><code>BleDeviceOrigin.FROM_DISCOVERY</code></a>, a device will always be in this state while <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>CONNECTED</code></a> + is not active.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#AUTHENTICATED">AUTHENTICATED</a></span></code> +<div class="block">This state becomes active either if the <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleTransaction</code></a> provided to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>BleDevice.connect(BleTransaction.Auth)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Auth, BleTransaction.Init)</code></a> succeeds with <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#succeed--"><code>BleTransaction.succeed()</code></a>, OR if you use + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Init)</code></a> - i.e.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#AUTHENTICATING">AUTHENTICATING</a></span></code> +<div class="block">This state can only become active if you use <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>BleDevice.connect(BleTransaction.Auth)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Auth, BleTransaction.Init)</code></a> + to start a connection with an authentication transaction.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDED">BONDED</a></span></code> +<div class="block">Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#BOND_BONDED" title="class or interface in android.bluetooth"><code>BluetoothDevice.BOND_BONDED</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDING">BONDING</a></span></code> +<div class="block">Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#BOND_BONDING" title="class or interface in android.bluetooth"><code>BluetoothDevice.BOND_BONDING</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED">CONNECTED</a></span></code> +<div class="block">Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothProfile.html?is-external=true#STATE_CONNECTED" title="class or interface in android.bluetooth"><code>BluetoothProfile.STATE_CONNECTED</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING">CONNECTING</a></span></code> +<div class="block">Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothProfile.html?is-external=true#STATE_CONNECTING" title="class or interface in android.bluetooth"><code>BluetoothProfile.STATE_CONNECTING</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING_OVERALL">CONNECTING_OVERALL</a></span></code> +<div class="block">A convenience flag for checking if the device is connecting in an overall sense.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED">DISCONNECTED</a></span></code> +<div class="block">The device will always be in this state while <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>CONNECTED</code></a> is not active.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCOVERED">DISCOVERED</a></span></code> +<div class="block">The device will always be in this state unless it becomes <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#UNDISCOVERED"><code>UNDISCOVERED</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCOVERING_SERVICES">DISCOVERING_SERVICES</a></span></code> +<div class="block">This state is active while we request a list of services from the native stack after becoming <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>CONNECTED</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZED">INITIALIZED</a></span></code> +<div class="block">This is generally the state you want to listen for to consider your <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> "fully" connected and ready to go, instead of + basing it off of just <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>CONNECTED</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZING">INITIALIZING</a></span></code> +<div class="block">This state can only become active if you use <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Init)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Auth, BleTransaction.Init)</code></a> + to start a connection with an initialization transaction.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#NULL">NULL</a></span></code> +<div class="block">Dummy value returned from any method that would otherwise return Java's built-in <code>null</code>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#PERFORMING_OTA">PERFORMING_OTA</a></span></code> +<div class="block">This state for "over-the-air" updates becomes active when you call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#performOta-com.idevicesinc.sweetblue.BleTransaction.Ota-"><code>BleDevice.performOta(BleTransaction.Ota)</code></a> and remains active until the provided + <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleTransaction</code></a> calls <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#succeed--"><code>BleTransaction.succeed()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--"><code>BleTransaction.fail()</code></a> (or of course if your <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> + becomes <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>DISCONNECTED</code></a>).</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM">RECONNECTING_LONG_TERM</a></span></code> +<div class="block">If <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#reconnectFilter"><code>BleNodeConfig.reconnectFilter</code></a> is set appropriately and the device implicitly disconnects, either through going out of range, + signal disruption, or whatever, then the device will enter this state.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_SHORT_TERM">RECONNECTING_SHORT_TERM</a></span></code> +<div class="block">If <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#reconnectFilter"><code>BleNodeConfig.reconnectFilter</code></a> is set appropriately and the device implicitly disconnects this state will be entered.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#SERVICES_DISCOVERED">SERVICES_DISCOVERED</a></span></code> +<div class="block">This state is active after <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCOVERING_SERVICES"><code>DISCOVERING_SERVICES</code></a> completes successfully.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#UNBONDED">UNBONDED</a></span></code> +<div class="block">Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#BOND_NONE" title="class or interface in android.bluetooth"><code>BluetoothDevice.BOND_NONE</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#UNDISCOVERED">UNDISCOVERED</a></span></code> +<div class="block">The device has been undiscovered and you should have been notified through <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"><code>BleManager.DiscoveryListener.onEvent(DiscoveryEvent)</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#FULL_MASK">FULL_MASK</a></span></code> +<div class="block">Full bitwise mask made by ORing all <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> instances together.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#bit--">bit</a></span>()</code> +<div class="block">Returns the bit (0x1, 0x2, 0x4, etc.) this enum represents based on the <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--"><code>BitwiseEnum.ordinal()</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#didEnter-int-int-">didEnter</a></span>(int oldStateBits, + int newStateBits)</code> +<div class="block">Given an old and new state mask, for example from <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent-"><code>BleDevice.StateListener.onEvent(com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent)</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent-"><code>BleManager.StateListener.onEvent(com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent)</code></a>, this method tells you whether the + the 'this' state was appended.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#didExit-int-int-">didExit</a></span>(int oldStateBits, + int newStateBits)</code> +<div class="block">Reverse of <a href="../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-"><code>State.didEnter(int, int)</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#getTransitoryConnectionState-int-">getTransitoryConnectionState</a></span>(int stateMask)</code> +<div class="block">A convenience for UI purposes, this returns the "highest" connection state representing + a transition from one state to another, so something with "ING" in the name (except <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#PERFORMING_OTA"><code>PERFORMING_OTA</code></a>).</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if this state is meant to stand in for Java's built-in <code>null</code>.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a> state)</code> +<div class="block">Does a bitwise OR for this state and the given state.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#or-int-">or</a></span>(int bits)</code> +<div class="block">Does a bitwise OR for this state and the given bits.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#overlaps-int-">overlaps</a></span>(int mask)</code> +<div class="block">Convenience method for checking if <code>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--"><code>BitwiseEnum.bit()</code></a> & mask) != 0x0</code>.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#VALUES--">VALUES</a></span>()</code> +<div class="block">Returns same as <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#values--"><code>values()</code></a>, but for performance reasons this does not return a new array every time.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.BitwiseEnum"> +<!-- --> +</a> +<h3>Methods inherited from interface com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#name--">name</a>, <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--">ordinal</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> NULL</pre> +<div class="block">Dummy value returned from any method that would otherwise return Java's built-in <code>null</code>. + A normal <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> will never be in this state, but this will be the sole state of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a>.</div> +</li> +</ul> +<a name="UNDISCOVERED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>UNDISCOVERED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> UNDISCOVERED</pre> +<div class="block">The device has been undiscovered and you should have been notified through <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"><code>BleManager.DiscoveryListener.onEvent(DiscoveryEvent)</code></a>. + This means the object is effectively dead. <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> has removed all references to it and you should do the same.</div> +</li> +</ul> +<a name="RECONNECTING_LONG_TERM"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>RECONNECTING_LONG_TERM</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> RECONNECTING_LONG_TERM</pre> +<div class="block">If <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#reconnectFilter"><code>BleNodeConfig.reconnectFilter</code></a> is set appropriately and the device implicitly disconnects, either through going out of range, + signal disruption, or whatever, then the device will enter this state. It will continue in this state until you return + <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#stopRetrying--"><code>BleNodeConfig.ReconnectFilter.Please.stopRetrying()</code></a> from <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)</code></a> + or call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disconnect--"><code>BleDevice.disconnect()</code></a> or when the device actually successfully reconnects.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_SHORT_TERM"><code>RECONNECTING_SHORT_TERM</code></a></dd> +</dl> +</li> +</ul> +<a name="RECONNECTING_SHORT_TERM"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>RECONNECTING_SHORT_TERM</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> RECONNECTING_SHORT_TERM</pre> +<div class="block">If <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#reconnectFilter"><code>BleNodeConfig.reconnectFilter</code></a> is set appropriately and the device implicitly disconnects this state will be entered. + Unlike with <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>RECONNECTING_LONG_TERM</code></a>, entering this state does not mean that the <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> becomes <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>DISCONNECTED</code></a>. + By all outward appearances the library treats the <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> as still being <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>CONNECTED</code></a> while transparently trying + to reconnect under the hood using <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#reconnectFilter"><code>BleNodeConfig.reconnectFilter</code></a>. You can even perform + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(UUID, BleDevice.ReadWriteListener)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>BleDevice.write(java.util.UUID, byte[])</code></a>, etc. + and they will be queued up until the device *actually* reconnects under the hood.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>RECONNECTING_LONG_TERM</code></a></dd> +</dl> +</li> +</ul> +<a name="DISCOVERED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DISCOVERED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> DISCOVERED</pre> +<div class="block">The device will always be in this state unless it becomes <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#UNDISCOVERED"><code>UNDISCOVERED</code></a>.</div> +</li> +</ul> +<a name="ADVERTISING"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ADVERTISING</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> ADVERTISING</pre> +<div class="block">When <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getOrigin--"><code>BleDevice.getOrigin()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html#FROM_DISCOVERY"><code>BleDeviceOrigin.FROM_DISCOVERY</code></a>, a device will always be in this state while <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>CONNECTED</code></a> + is not active. Note that this doesn't *necessarily* mean that the actual physical device is advertising, just that it was <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#DISCOVERED"><code>BleManager.DiscoveryListener.LifeCycle.DISCOVERED</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#REDISCOVERED"><code>BleManager.DiscoveryListener.LifeCycle.REDISCOVERED</code></a> through a <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a>, so it is still assumed to be advertising.</div> +</li> +</ul> +<a name="DISCONNECTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DISCONNECTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> DISCONNECTED</pre> +<div class="block">The device will always be in this state while <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>CONNECTED</code></a> is not active. Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothProfile.html?is-external=true#STATE_DISCONNECTED" title="class or interface in android.bluetooth"><code>BluetoothProfile.STATE_DISCONNECTED</code></a>.</div> +</li> +</ul> +<a name="UNBONDED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>UNBONDED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> UNBONDED</pre> +<div class="block">Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#BOND_NONE" title="class or interface in android.bluetooth"><code>BluetoothDevice.BOND_NONE</code></a>. May not be relevant for your application if you don't use encrypted characteristics.</div> +</li> +</ul> +<a name="BONDING"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BONDING</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> BONDING</pre> +<div class="block">Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#BOND_BONDING" title="class or interface in android.bluetooth"><code>BluetoothDevice.BOND_BONDING</code></a>. May not be relevant for your application if you don't use encrypted characteristics. + From this state, a device will either become <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDED"><code>BONDED</code></a> (if successful) or <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#UNBONDED"><code>UNBONDED</code></a>. + If the latter, use <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.BondListener</code></a> to get further information on what happened.</div> +</li> +</ul> +<a name="BONDED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BONDED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> BONDED</pre> +<div class="block">Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#BOND_BONDED" title="class or interface in android.bluetooth"><code>BluetoothDevice.BOND_BONDED</code></a>. May not be relevant for your application if you don't use encrypted characteristics.</div> +</li> +</ul> +<a name="CONNECTING_OVERALL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CONNECTING_OVERALL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> CONNECTING_OVERALL</pre> +<div class="block">A convenience flag for checking if the device is connecting in an overall sense. This state is active if any one of <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING"><code>CONNECTING</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCOVERING_SERVICES"><code>DISCOVERING_SERVICES</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#AUTHENTICATING"><code>AUTHENTICATING</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZING"><code>INITIALIZING</code></a> is also active. It is suggested to have <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDING"><code>BONDING</code></a> + be a part of this also using <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#bondFilter"><code>BleDeviceConfig.bondFilter</code></a> but technically <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDING"><code>BONDING</code></a> can be done outside of this state.</div> +</li> +</ul> +<a name="CONNECTING"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CONNECTING</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> CONNECTING</pre> +<div class="block">Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothProfile.html?is-external=true#STATE_CONNECTING" title="class or interface in android.bluetooth"><code>BluetoothProfile.STATE_CONNECTING</code></a>. If this state is active then we're in the middle of establishing an actual BLE connection.</div> +</li> +</ul> +<a name="CONNECTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CONNECTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> CONNECTED</pre> +<div class="block">Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothProfile.html?is-external=true#STATE_CONNECTED" title="class or interface in android.bluetooth"><code>BluetoothProfile.STATE_CONNECTED</code></a>. Once this state becomes active we don't consider ourselves "fully" connected + because we still generally have to discover services and maybe do a few reads or writes to initialize things. So generally speaking + no significant action should be taken when the <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> becomes <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>CONNECTED</code></a>. Instead it's best to listen for <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZED"><code>INITIALIZED</code></a>.</div> +</li> +</ul> +<a name="DISCOVERING_SERVICES"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DISCOVERING_SERVICES</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> DISCOVERING_SERVICES</pre> +<div class="block">This state is active while we request a list of services from the native stack after becoming <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>CONNECTED</code></a>.</div> +</li> +</ul> +<a name="SERVICES_DISCOVERED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SERVICES_DISCOVERED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> SERVICES_DISCOVERED</pre> +<div class="block">This state is active after <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCOVERING_SERVICES"><code>DISCOVERING_SERVICES</code></a> completes successfully.</div> +</li> +</ul> +<a name="AUTHENTICATING"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>AUTHENTICATING</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> AUTHENTICATING</pre> +<div class="block">This state can only become active if you use <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>BleDevice.connect(BleTransaction.Auth)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Auth, BleTransaction.Init)</code></a> + to start a connection with an authentication transaction.</div> +</li> +</ul> +<a name="AUTHENTICATED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>AUTHENTICATED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> AUTHENTICATED</pre> +<div class="block">This state becomes active either if the <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleTransaction</code></a> provided to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>BleDevice.connect(BleTransaction.Auth)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Auth, BleTransaction.Init)</code></a> succeeds with <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#succeed--"><code>BleTransaction.succeed()</code></a>, OR if you use + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Init)</code></a> - i.e. you connect without authentication. + In the latter case the <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#AUTHENTICATING"><code>AUTHENTICATING</code></a> state is skipped and we go straight to being implicitly <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#AUTHENTICATED"><code>AUTHENTICATED</code></a>.</div> +</li> +</ul> +<a name="INITIALIZING"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>INITIALIZING</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> INITIALIZING</pre> +<div class="block">This state can only become active if you use <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Init)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Auth, BleTransaction.Init)</code></a> + to start a connection with an initialization transaction.</div> +</li> +</ul> +<a name="INITIALIZED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>INITIALIZED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> INITIALIZED</pre> +<div class="block">This is generally the state you want to listen for to consider your <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> "fully" connected and ready to go, instead of + basing it off of just <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>CONNECTED</code></a>. + <br><br> + This state becomes active either if the <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleTransaction</code></a> provided to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Init)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Auth, BleTransaction.Init)</code></a> succeeds with <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#succeed--"><code>BleTransaction.succeed()</code></a>, OR if you use + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>BleDevice.connect(BleTransaction.Auth)</code></a> or etc.- i.e. you connect without an initialization + transaction. In the latter case the <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZING"><code>INITIALIZING</code></a> state is skipped and we go straight to being implicitly <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZED"><code>INITIALIZED</code></a>.</div> +</li> +</ul> +<a name="PERFORMING_OTA"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>PERFORMING_OTA</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> PERFORMING_OTA</pre> +<div class="block">This state for "over-the-air" updates becomes active when you call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#performOta-com.idevicesinc.sweetblue.BleTransaction.Ota-"><code>BleDevice.performOta(BleTransaction.Ota)</code></a> and remains active until the provided + <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleTransaction</code></a> calls <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#succeed--"><code>BleTransaction.succeed()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--"><code>BleTransaction.fail()</code></a> (or of course if your <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> + becomes <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>DISCONNECTED</code></a>).</div> +</li> +</ul> +</li> +</ul> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="FULL_MASK"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>FULL_MASK</h4> +<pre>public static final int FULL_MASK</pre> +<div class="block">Full bitwise mask made by ORing all <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> instances together.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleDeviceState c : BleDeviceState.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="overlaps-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>overlaps</h4> +<pre>public boolean overlaps(int mask)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#overlaps-int-">BitwiseEnum</a></code></span></div> +<div class="block">Convenience method for checking if <code>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--"><code>BitwiseEnum.bit()</code></a> & mask) != 0x0</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#overlaps-int-">overlaps</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="bit--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bit</h4> +<pre>public int bit()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--">BitwiseEnum</a></code></span></div> +<div class="block">Returns the bit (0x1, 0x2, 0x4, etc.) this enum represents based on the <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--"><code>BitwiseEnum.ordinal()</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--">bit</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="didEnter-int-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>didEnter</h4> +<pre>public boolean didEnter(int oldStateBits, + int newStateBits)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-">State</a></code></span></div> +<div class="block">Given an old and new state mask, for example from <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent-"><code>BleDevice.StateListener.onEvent(com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent)</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent-"><code>BleManager.StateListener.onEvent(com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent)</code></a>, this method tells you whether the + the 'this' state was appended.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-">didEnter</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></code></dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/State.html#didExit-int-int-"><code>State.didExit(int, int)</code></a></dd> +</dl> +</li> +</ul> +<a name="didExit-int-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>didExit</h4> +<pre>public boolean didExit(int oldStateBits, + int newStateBits)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/State.html#didExit-int-int-">State</a></code></span></div> +<div class="block">Reverse of <a href="../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-"><code>State.didEnter(int, int)</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/State.html#didExit-int-int-">didExit</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></code></dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-"><code>State.didEnter(int, int)</code></a></dd> +</dl> +</li> +</ul> +<a name="or-com.idevicesinc.sweetblue.utils.BitwiseEnum-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>or</h4> +<pre>public int or(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a> state)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">BitwiseEnum</a></code></span></div> +<div class="block">Does a bitwise OR for this state and the given state.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="or-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>or</h4> +<pre>public int or(int bits)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-int-">BitwiseEnum</a></code></span></div> +<div class="block">Does a bitwise OR for this state and the given bits.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-int-">or</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="VALUES--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>VALUES</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a>[] VALUES()</pre> +<div class="block">Returns same as <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#values--"><code>values()</code></a>, but for performance reasons this does not return a new array every time.</div> +</li> +</ul> +<a name="getTransitoryConnectionState-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getTransitoryConnectionState</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> getTransitoryConnectionState(int stateMask)</pre> +<div class="block">A convenience for UI purposes, this returns the "highest" connection state representing + a transition from one state to another, so something with "ING" in the name (except <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#PERFORMING_OTA"><code>PERFORMING_OTA</code></a>). + Chronologically this method returns <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING"><code>CONNECTING</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCOVERING_SERVICES"><code>DISCOVERING_SERVICES</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#AUTHENTICATING"><code>AUTHENTICATING</code></a> (if <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>BleDevice.connect(BleTransaction.Auth)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Auth, BleTransaction.Init)</code></a> is called), <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDING"><code>BONDING</code></a> (if relevant), + and <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZING"><code>INITIALIZING</code></a> (if <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Init)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Auth, BleTransaction.Init)</code></a> is called).</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>stateMask</code> - Generally the value returned by <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getStateMask--"><code>BleDevice.getStateMask()</code></a>.</dd> +</dl> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/State.html#isNull--">State</a></code></span></div> +<div class="block">Returns <code>true</code> if this state is meant to stand in for Java's built-in <code>null</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/State.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></code></dd> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleDeviceState.html" target="_top">Frames</a></li> +<li><a href="BleDeviceState.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..1916af2cd653ff72b2fb08fa4a710ecf5997b1a1 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html @@ -0,0 +1,304 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManager.AssertListener.AssertEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManager.AssertListener.AssertEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" target="_top">Frames</a></li> +<li><a href="BleManager.AssertListener.AssertEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleManager.AssertListener.AssertEvent" class="title">Class BleManager.AssertListener.AssertEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleManager.AssertListener.AssertEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.AssertListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleManager.AssertListener.AssertEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></pre> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.AssertListener.AssertEvent-"><code>BleManager.AssertListener.onEvent(BleManager.AssertListener.AssertEvent)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html#manager--">manager</a></span>()</code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> instance for your application.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html#message--">message</a></span>()</code> +<div class="block">Message associated with the assert, or an empty string.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/StackTraceElement.html?is-external=true" title="class or interface in java.lang">StackTraceElement</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html#stackTrace--">stackTrace</a></span>()</code> +<div class="block">Stack trace leading up to the assert.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="manager--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>manager</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> manager()</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> instance for your application.</div> +</li> +</ul> +<a name="message--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>message</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> message()</pre> +<div class="block">Message associated with the assert, or an empty string.</div> +</li> +</ul> +<a name="stackTrace--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stackTrace</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/StackTraceElement.html?is-external=true" title="class or interface in java.lang">StackTraceElement</a>[] stackTrace()</pre> +<div class="block">Stack trace leading up to the assert.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" target="_top">Frames</a></li> +<li><a href="BleManager.AssertListener.AssertEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.AssertListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.AssertListener.html new file mode 100644 index 0000000000000000000000000000000000000000..428f4c99202f0b8af5f80d240c2d15a915ed10be --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.AssertListener.html @@ -0,0 +1,250 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManager.AssertListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManager.AssertListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.AssertListener.html" target="_top">Frames</a></li> +<li><a href="BleManager.AssertListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleManager.AssertListener" class="title">Interface BleManager.AssertListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleManager.AssertListener</span></pre> +<div class="block">Mostly only for SweetBlue library developers. Provide an implementation to + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Assert-com.idevicesinc.sweetblue.BleManager.AssertListener-"><code>BleManager.setListener_Assert(BleManager.AssertListener)</code></a> to be notified whenever + an assertion fails through <a href="../../../com/idevicesinc/sweetblue/BleManager.html#ASSERT-boolean-java.lang.String-"><code>BleManager.ASSERT(boolean, String)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.AssertListener.AssertEvent</a></span></code> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.AssertListener.AssertEvent-"><code>onEvent(BleManager.AssertListener.AssertEvent)</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.AssertListener.AssertEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.AssertListener.AssertEvent</a> e)</code> +<div class="block">Provides additional info about the circumstances surrounding the assert.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleManager.AssertListener.AssertEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>void onEvent(<a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.AssertListener.AssertEvent</a> e)</pre> +<div class="block">Provides additional info about the circumstances surrounding the assert.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.AssertListener.html" target="_top">Frames</a></li> +<li><a href="BleManager.AssertListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..332c250cd135841054f41a9a48b04c72f0877f9a --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html @@ -0,0 +1,368 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManager.DiscoveryListener.DiscoveryEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManager.DiscoveryListener.DiscoveryEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" target="_top">Frames</a></li> +<li><a href="BleManager.DiscoveryListener.DiscoveryEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleManager.DiscoveryListener.DiscoveryEvent" class="title">Class BleManager.DiscoveryListener.DiscoveryEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleManager.DiscoveryListener.DiscoveryEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></pre> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"><code>BleManager.DiscoveryListener.onEvent(BleManager.DiscoveryListener.DiscoveryEvent)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#device--">device</a></span>()</code> +<div class="block">The device in question.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#lifeCycle--">lifeCycle</a></span>()</code> +<div class="block">The discovery <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.DiscoveryListener.LifeCycle</code></a> that the device has undergone.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#macAddress--">macAddress</a></span>()</code> +<div class="block">Convience to return the mac address of <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#device--"><code>device()</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#manager--">manager</a></span>()</code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> which is currently <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#SCANNING"><code>BleManagerState.SCANNING</code></a>.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#rssi_percent--">rssi_percent</a></span>()</code> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssiPercent--"><code>BleDevice.getRssiPercent()</code></a>.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#rssi--">rssi</a></span>()</code> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>BleDevice.getRssi()</code></a>.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#was-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.LifeCycle-">was</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a> lifeCycle)</code> +<div class="block">Convenience method for checking equality of given <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.DiscoveryListener.LifeCycle</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#lifeCycle--"><code>lifeCycle()</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="manager--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>manager</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> manager()</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> which is currently <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#SCANNING"><code>BleManagerState.SCANNING</code></a>.</div> +</li> +</ul> +<a name="device--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>device</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device()</pre> +<div class="block">The device in question.</div> +</li> +</ul> +<a name="macAddress--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>macAddress</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress()</pre> +<div class="block">Convience to return the mac address of <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#device--"><code>device()</code></a>.</div> +</li> +</ul> +<a name="lifeCycle--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>lifeCycle</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a> lifeCycle()</pre> +<div class="block">The discovery <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.DiscoveryListener.LifeCycle</code></a> that the device has undergone.</div> +</li> +</ul> +<a name="rssi--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>rssi</h4> +<pre>public int rssi()</pre> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>BleDevice.getRssi()</code></a>.</div> +</li> +</ul> +<a name="rssi_percent--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>rssi_percent</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a> rssi_percent()</pre> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getRssiPercent--"><code>BleDevice.getRssiPercent()</code></a>.</div> +</li> +</ul> +<a name="was-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.LifeCycle-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>was</h4> +<pre>public boolean was(<a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a> lifeCycle)</pre> +<div class="block">Convenience method for checking equality of given <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.DiscoveryListener.LifeCycle</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#lifeCycle--"><code>lifeCycle()</code></a>.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" target="_top">Frames</a></li> +<li><a href="BleManager.DiscoveryListener.DiscoveryEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html new file mode 100644 index 0000000000000000000000000000000000000000..c2c4a89dc00af0d0a528858e18ca4007c867085c --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html @@ -0,0 +1,379 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManager.DiscoveryListener.LifeCycle (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManager.DiscoveryListener.LifeCycle (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" target="_top">Frames</a></li> +<li><a href="BleManager.DiscoveryListener.LifeCycle.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleManager.DiscoveryListener.LifeCycle" class="title">Enum BleManager.DiscoveryListener.LifeCycle</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleManager.DiscoveryListener.LifeCycle</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleManager.DiscoveryListener.LifeCycle</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a>></pre> +<div class="block">Enumerates changes in the "discovered" state of a device. + Used at <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#lifeCycle--"><code>BleManager.DiscoveryListener.DiscoveryEvent.lifeCycle()</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#DISCOVERED">DISCOVERED</a></span></code> +<div class="block">Used when a device is discovered for the first time after + calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a> (or its overloads) + or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>BleManager.startPeriodicScan(Interval, Interval)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#REDISCOVERED">REDISCOVERED</a></span></code> +<div class="block">Used when a device is rediscovered after already being discovered at least once.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#UNDISCOVERED">UNDISCOVERED</a></span></code> +<div class="block">Used when a device is "undiscovered" after being discovered at least once.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="DISCOVERED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DISCOVERED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a> DISCOVERED</pre> +<div class="block">Used when a device is discovered for the first time after + calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a> (or its overloads) + or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>BleManager.startPeriodicScan(Interval, Interval)</code></a>.</div> +</li> +</ul> +<a name="REDISCOVERED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>REDISCOVERED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a> REDISCOVERED</pre> +<div class="block">Used when a device is rediscovered after already being discovered at least once.</div> +</li> +</ul> +<a name="UNDISCOVERED"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>UNDISCOVERED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a> UNDISCOVERED</pre> +<div class="block">Used when a device is "undiscovered" after being discovered at least once. There is no native equivalent + for this callback. Undiscovery is approximated with a timeout based on the last time we discovered a device, configured + by <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#undiscoveryKeepAlive"><code>BleDeviceConfig.undiscoveryKeepAlive</code></a>. This option is disabled by default. If set, you should expect that the undiscovery + callback will take some amount of time to receive after an advertising device is turned off or goes out of range or what have you. + It's generally not as fast as other state changes like <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a> or getting <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCOVERED"><code>BleDeviceState.DISCOVERED</code></a> in the first place.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#minScanTimeNeededForUndiscovery"><code>BleDeviceConfig.minScanTimeNeededForUndiscovery</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#undiscoveryKeepAlive"><code>BleDeviceConfig.undiscoveryKeepAlive</code></a></dd> +</dl> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleManager.DiscoveryListener.LifeCycle c : BleManager.DiscoveryListener.LifeCycle.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" target="_top">Frames</a></li> +<li><a href="BleManager.DiscoveryListener.LifeCycle.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html new file mode 100644 index 0000000000000000000000000000000000000000..74a590827452ff0a99c170112b900f66c551f03a --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html @@ -0,0 +1,260 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManager.DiscoveryListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManager.DiscoveryListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" target="_top">Frames</a></li> +<li><a href="BleManager.DiscoveryListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleManager.DiscoveryListener" class="title">Interface BleManager.DiscoveryListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleManager.DiscoveryListener</span></pre> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>BleManager.setListener_Discovery(BleManager.DiscoveryListener)</code></a> to receive + callbacks when a device is newly discovered, rediscovered, or undiscovered after calling various <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>BleManager.startPeriodicScan(Interval, Interval)</code></a> methods. You can also provide this to various + overloads of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>BleManager.startPeriodicScan(Interval, Interval)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.DiscoveryEvent</a></span></code> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"><code>onEvent(BleManager.DiscoveryListener.DiscoveryEvent)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a></span></code> +<div class="block">Enumerates changes in the "discovered" state of a device.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.DiscoveryEvent</a> e)</code> +<div class="block">Called when the discovery lifecycle of a device is updated.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>void onEvent(<a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.DiscoveryEvent</a> e)</pre> +<div class="block">Called when the discovery lifecycle of a device is updated. + <br><br> + TIP: Take a look at <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getLastDisconnectIntent--"><code>BleDevice.getLastDisconnectIntent()</code></a>. If it is <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#UNINTENTIONAL"><code>State.ChangeIntent.UNINTENTIONAL</code></a> + then from a user-experience perspective it's most often best to automatically connect without user confirmation.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" target="_top">Frames</a></li> +<li><a href="BleManager.DiscoveryListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..220370ed2832e05491094f48d03e12107e6f418e --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html @@ -0,0 +1,236 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManager.NativeStateListener.NativeStateEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManager.NativeStateListener.NativeStateEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html" target="_top">Frames</a></li> +<li><a href="BleManager.NativeStateListener.NativeStateEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#methods.inherited.from.class.com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleManager.NativeStateListener.NativeStateEvent" class="title">Class BleManager.NativeStateListener.NativeStateEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.State.ChangeEvent</a><<a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a>></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleManager.NativeStateListener.NativeStateEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.NativeStateListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleManager.NativeStateListener.NativeStateEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.StateListener.StateEvent</a></pre> +<div class="block">Class declared here to be make it implicitly imported for overrides.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.StateListener.StateEvent</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html#manager--">manager</a>, <a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html#toString--">toString</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.State.ChangeEvent"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnter-T_State-">didEnter</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAll-T_State...-">didEnterAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAny-T_State...-">didEnterAny</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExit-T_State-">didExit</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAll-T_State...-">didExitAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAny-T_State...-">didExitAny</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#enterMask--">enterMask</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#exitMask--">exitMask</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#getIntent-T_State-">getIntent</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#intentMask--">intentMask</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isFor-T_State-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isForAll-T_State...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isForAny-T_State...-">isForAny</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#newStateBits--">newStateBits</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#oldStateBits--">oldStateBits</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html" target="_top">Frames</a></li> +<li><a href="BleManager.NativeStateListener.NativeStateEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#methods.inherited.from.class.com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.NativeStateListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.NativeStateListener.html new file mode 100644 index 0000000000000000000000000000000000000000..c5b5ef3c2697f5d0e649431c1fe624f11f335782 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.NativeStateListener.html @@ -0,0 +1,251 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManager.NativeStateListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManager.NativeStateListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.NativeStateListener.html" target="_top">Frames</a></li> +<li><a href="BleManager.NativeStateListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleManager.NativeStateListener" class="title">Interface BleManager.NativeStateListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleManager.NativeStateListener</span></pre> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_NativeState-com.idevicesinc.sweetblue.BleManager.NativeStateListener-"><code>BleManager.setListener_NativeState(BleManager.NativeStateListener)</code></a> to receive callbacks + when the <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> undergoes a *native* <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> change. This is similar to <a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleManager.StateListener</code></a> + but reflects what is going on in the actual underlying stack, which may lag slightly behind the + abstracted state reflected by <a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleManager.StateListener</code></a>. Most apps will not find this callback useful.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.NativeStateListener.NativeStateEvent</a></span></code> +<div class="block">Class declared here to be make it implicitly imported for overrides.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.NativeStateListener.NativeStateEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.NativeStateListener.NativeStateEvent</a> e)</code> +<div class="block">Called when the manager's native bitwise <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> changes.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleManager.NativeStateListener.NativeStateEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>void onEvent(<a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.NativeStateListener.NativeStateEvent</a> e)</pre> +<div class="block">Called when the manager's native bitwise <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> changes. As many bits as possible are flipped at the same time.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.NativeStateListener.html" target="_top">Frames</a></li> +<li><a href="BleManager.NativeStateListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html new file mode 100644 index 0000000000000000000000000000000000000000..4034ff8efc76f9f3436ff4602c88b2b93c92451a --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html @@ -0,0 +1,336 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManager.ResetListener.Progress (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManager.ResetListener.Progress (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" target="_top">Frames</a></li> +<li><a href="BleManager.ResetListener.Progress.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleManager.ResetListener.Progress" class="title">Enum BleManager.ResetListener.Progress</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue">BleManager.ResetListener.Progress</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleManager.ResetListener.Progress</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue">BleManager.ResetListener.Progress</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.ResetListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleManager.ResetListener.Progress</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue">BleManager.ResetListener.Progress</a>></pre> +<div class="block">Enumeration of the progress of the reset. + More entries may be added in the future.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html#COMPLETED">COMPLETED</a></span></code> +<div class="block">The reset has completed successfully.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue">BleManager.ResetListener.Progress</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue">BleManager.ResetListener.Progress</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="COMPLETED"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>COMPLETED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue">BleManager.ResetListener.Progress</a> COMPLETED</pre> +<div class="block">The reset has completed successfully.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue">BleManager.ResetListener.Progress</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleManager.ResetListener.Progress c : BleManager.ResetListener.Progress.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue">BleManager.ResetListener.Progress</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" target="_top">Frames</a></li> +<li><a href="BleManager.ResetListener.Progress.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..e2364832a98898b8be9b9633f7f918a55865ce09 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html @@ -0,0 +1,288 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManager.ResetListener.ResetEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManager.ResetListener.ResetEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" target="_top">Frames</a></li> +<li><a href="BleManager.ResetListener.ResetEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleManager.ResetListener.ResetEvent" class="title">Class BleManager.ResetListener.ResetEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleManager.ResetListener.ResetEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.ResetListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleManager.ResetListener.ResetEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></pre> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.ResetListener.ResetEvent-"><code>BleManager.ResetListener.onEvent(BleManager.ResetListener.ResetEvent)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html#manager--">manager</a></span>()</code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> the reset was applied to.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue">BleManager.ResetListener.Progress</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html#progress--">progress</a></span>()</code> +<div class="block">The progress of the reset.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="manager--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>manager</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> manager()</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> the reset was applied to.</div> +</li> +</ul> +<a name="progress--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>progress</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue">BleManager.ResetListener.Progress</a> progress()</pre> +<div class="block">The progress of the reset.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" target="_top">Frames</a></li> +<li><a href="BleManager.ResetListener.ResetEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.ResetListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.ResetListener.html new file mode 100644 index 0000000000000000000000000000000000000000..4e94104da23557a96546c0eafea4ed71983d2d39 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.ResetListener.html @@ -0,0 +1,259 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManager.ResetListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManager.ResetListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.ResetListener.html" target="_top">Frames</a></li> +<li><a href="BleManager.ResetListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleManager.ResetListener" class="title">Interface BleManager.ResetListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleManager.ResetListener</span></pre> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset-com.idevicesinc.sweetblue.BleManager.ResetListener-"><code>BleManager.reset(BleManager.ResetListener)</code></a> + to be notified when a reset operation is complete.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset-com.idevicesinc.sweetblue.BleManager.ResetListener-"><code>BleManager.reset(BleManager.ResetListener)</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue">BleManager.ResetListener.Progress</a></span></code> +<div class="block">Enumeration of the progress of the reset.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.ResetListener.ResetEvent</a></span></code> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.ResetListener.ResetEvent-"><code>onEvent(BleManager.ResetListener.ResetEvent)</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.ResetListener.ResetEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.ResetListener.ResetEvent</a> e)</code> +<div class="block">The reset event, for now only fired when the reset is completed.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleManager.ResetListener.ResetEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>void onEvent(<a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.ResetListener.ResetEvent</a> e)</pre> +<div class="block">The reset event, for now only fired when the reset is completed. Hopefully the bluetooth stack is OK now.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.ResetListener.html" target="_top">Frames</a></li> +<li><a href="BleManager.ResetListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..0d9ecef0fe200da6891e171ec6f041b9f431304c --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html @@ -0,0 +1,288 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManager.StateListener.StateEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManager.StateListener.StateEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" target="_top">Frames</a></li> +<li><a href="BleManager.StateListener.StateEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleManager.StateListener.StateEvent" class="title">Class BleManager.StateListener.StateEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.State.ChangeEvent</a><<a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Direct Known Subclasses:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.NativeStateListener.NativeStateEvent</a></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.StateListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleManager.StateListener.StateEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a><<a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a>></pre> +<div class="block">Subclass that adds the manager field.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html#manager--">manager</a></span>()</code> +<div class="block">The singleton manager undergoing the state change.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.State.ChangeEvent"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnter-T_State-">didEnter</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAll-T_State...-">didEnterAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAny-T_State...-">didEnterAny</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExit-T_State-">didExit</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAll-T_State...-">didExitAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAny-T_State...-">didExitAny</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#enterMask--">enterMask</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#exitMask--">exitMask</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#getIntent-T_State-">getIntent</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#intentMask--">intentMask</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isFor-T_State-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isForAll-T_State...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isForAny-T_State...-">isForAny</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#newStateBits--">newStateBits</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#oldStateBits--">oldStateBits</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="manager--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>manager</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> manager()</pre> +<div class="block">The singleton manager undergoing the state change.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" target="_top">Frames</a></li> +<li><a href="BleManager.StateListener.StateEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.StateListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.StateListener.html new file mode 100644 index 0000000000000000000000000000000000000000..4371da7afe0017e3653afddecf06e886ba09485d --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.StateListener.html @@ -0,0 +1,249 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManager.StateListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManager.StateListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.StateListener.html" target="_top">Frames</a></li> +<li><a href="BleManager.StateListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleManager.StateListener" class="title">Interface BleManager.StateListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleManager.StateListener</span></pre> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_State-com.idevicesinc.sweetblue.BleManager.StateListener-"><code>BleManager.setListener_State(BleManager.StateListener)</code></a> to receive callbacks + when the <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> undergoes a <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> change.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.StateListener.StateEvent</a></span></code> +<div class="block">Subclass that adds the manager field.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.StateListener.StateEvent</a> e)</code> +<div class="block">Called when the manager's abstracted <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> changes.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>void onEvent(<a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.StateListener.StateEvent</a> e)</pre> +<div class="block">Called when the manager's abstracted <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> changes.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.StateListener.html" target="_top">Frames</a></li> +<li><a href="BleManager.StateListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html new file mode 100644 index 0000000000000000000000000000000000000000..74b77a482a33e78e5e22949fd613dfe1430c9804 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html @@ -0,0 +1,370 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManager.UhOhListener.Remedy (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManager.UhOhListener.Remedy (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" target="_top">Frames</a></li> +<li><a href="BleManager.UhOhListener.Remedy.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleManager.UhOhListener.Remedy" class="title">Enum BleManager.UhOhListener.Remedy</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleManager.UhOhListener.Remedy</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.UhOhListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleManager.UhOhListener.Remedy</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a>></pre> +<div class="block">The suggested remedy for each <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a>. This can be used as a proxy for the severity + of the issue.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html#RESET_BLE">RESET_BLE</a></span></code> +<div class="block">Calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a> is probably in order.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html#RESTART_PHONE">RESTART_PHONE</a></span></code> +<div class="block">Might want to notify your user that a phone restart is in order.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html#WAIT_AND_SEE">WAIT_AND_SEE</a></span></code> +<div class="block">Nothing you can really do, hopefully the library can soldier on.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="WAIT_AND_SEE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WAIT_AND_SEE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a> WAIT_AND_SEE</pre> +<div class="block">Nothing you can really do, hopefully the library can soldier on.</div> +</li> +</ul> +<a name="RESET_BLE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>RESET_BLE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a> RESET_BLE</pre> +<div class="block">Calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a> is probably in order.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a></dd> +</dl> +</li> +</ul> +<a name="RESTART_PHONE"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>RESTART_PHONE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a> RESTART_PHONE</pre> +<div class="block">Might want to notify your user that a phone restart is in order.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleManager.UhOhListener.Remedy c : BleManager.UhOhListener.Remedy.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" target="_top">Frames</a></li> +<li><a href="BleManager.UhOhListener.Remedy.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html new file mode 100644 index 0000000000000000000000000000000000000000..5909ecf5cd27231f35f2a6f04e3c41ddba06379a --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html @@ -0,0 +1,629 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManager.UhOhListener.UhOh (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManager.UhOhListener.UhOh (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9,"i2":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" target="_top">Frames</a></li> +<li><a href="BleManager.UhOhListener.UhOh.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleManager.UhOhListener.UhOh" class="title">Enum BleManager.UhOhListener.UhOh</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOh</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.UhOhListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleManager.UhOhListener.UhOh</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a>></pre> +<div class="block">An UhOh is a warning about an exceptional (in the bad sense) and unfixable problem with the underlying stack that + the app can warn its user about. It's kind of like an <a href="http://d.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><code>Exception</code></a> but they can be so common + that using <a href="http://d.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><code>Exception</code></a> would render this library unusable without a rat's nest of try/catches. + Instead you implement <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener</code></a> to receive them. Each <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a> has a <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#getRemedy--"><code>getRemedy()</code></a> + that suggests what might be done about it.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_UhOh-com.idevicesinc.sweetblue.BleManager.UhOhListener-"><code>BleManager.setListener_UhOh(BleManager.UhOhListener)</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#BOND_TIMED_OUT">BOND_TIMED_OUT</a></span></code> +<div class="block">A <a href="../../../com/idevicesinc/sweetblue/BleTask.html#BOND"><code>BleTask.BOND</code></a> operation timed out.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#CANNOT_DISABLE_BLUETOOTH">CANNOT_DISABLE_BLUETOOTH</a></span></code> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#disable--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.disable()</code></a>, through <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOff--"><code>BleManager.turnOff()</code></a>, is failing to complete.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#CANNOT_ENABLE_BLUETOOTH">CANNOT_ENABLE_BLUETOOTH</a></span></code> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#enable--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.enable()</code></a>, through <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOn--"><code>BleManager.turnOn()</code></a>, is failing to complete.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#CLASSIC_DISCOVERY_FAILED">CLASSIC_DISCOVERY_FAILED</a></span></code> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startLeScan-android.bluetooth.BluetoothAdapter.LeScanCallback-" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startLeScan(BluetoothAdapter.LeScanCallback)</code></a> failed and <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#revertToClassicDiscoveryIfNeeded"><code>BleManagerConfig.revertToClassicDiscoveryIfNeeded</code></a> is <code>true</code> + so we try <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startDiscovery--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startDiscovery()</code></a> but that also fails...fun!</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#CONNECTED_WITHOUT_EVER_CONNECTING">CONNECTED_WITHOUT_EVER_CONNECTING</a></span></code> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#getConnectionState-android.bluetooth.BluetoothDevice-" title="class or interface in android.bluetooth"><code>BluetoothGatt.getConnectionState(BluetoothDevice)</code></a> says we're connected but we never tried to connect in the first place.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#DEAD_OBJECT_EXCEPTION">DEAD_OBJECT_EXCEPTION</a></span></code> +<div class="block">Similar in concept to <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#RANDOM_EXCEPTION"><code>RANDOM_EXCEPTION</code></a> but used when <a href="http://d.android.com/reference/android/os/DeadObjectException.html?is-external=true" title="class or interface in android.os"><code>DeadObjectException</code></a> is thrown.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#DUPLICATE_SERVICE_FOUND">DUPLICATE_SERVICE_FOUND</a></span></code> +<div class="block">A <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#discoverServices--" title="class or interface in android.bluetooth"><code>BluetoothGatt.discoverServices()</code></a> operation returned two duplicate services.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#INCONSISTENT_NATIVE_BLE_STATE">INCONSISTENT_NATIVE_BLE_STATE</a></span></code> +<div class="block">When the underlying stack meets a race condition where <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#getState--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.getState()</code></a> does not + match the value provided through <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#ACTION_STATE_CHANGED" title="class or interface in android.bluetooth"><code>BluetoothAdapter.ACTION_STATE_CHANGED</code></a> with <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#EXTRA_STATE" title="class or interface in android.bluetooth"><code>BluetoothAdapter.EXTRA_STATE</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#OLD_DUPLICATE_SERVICE_FOUND">OLD_DUPLICATE_SERVICE_FOUND</a></span></code> +<div class="block">A <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#discoverServices--" title="class or interface in android.bluetooth"><code>BluetoothGatt.discoverServices()</code></a> operation returned a service instance that we already received before + after disconnecting and reconnecting.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#RANDOM_EXCEPTION">RANDOM_EXCEPTION</a></span></code> +<div class="block">The underlying native BLE stack enjoys surprising you with random exceptions.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#READ_RETURNED_NULL">READ_RETURNED_NULL</a></span></code> +<div class="block">A <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(java.util.UUID, BleDevice.ReadWriteListener)</code></a> returned with a <code>null</code> + characteristic value.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#READ_TIMED_OUT">READ_TIMED_OUT</a></span></code> +<div class="block">A <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(java.util.UUID, BleDevice.ReadWriteListener)</code></a> + took longer than timeout set by <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter"><code>BleNodeConfig.taskTimeoutRequestFilter</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#SERVICE_DISCOVERY_IMMEDIATELY_FAILED">SERVICE_DISCOVERY_IMMEDIATELY_FAILED</a></span></code> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#discoverServices--" title="class or interface in android.bluetooth"><code>BluetoothGatt.discoverServices()</code></a> failed right off the bat and returned false.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#START_BLE_SCAN_FAILED">START_BLE_SCAN_FAILED</a></span></code> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startLeScan-android.bluetooth.BluetoothAdapter.LeScanCallback-" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startLeScan(BluetoothAdapter.LeScanCallback)</code></a> failed and <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#revertToClassicDiscoveryIfNeeded"><code>BleManagerConfig.revertToClassicDiscoveryIfNeeded</code></a> is <code>false</code>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#START_BLE_SCAN_FAILED__USING_CLASSIC">START_BLE_SCAN_FAILED__USING_CLASSIC</a></span></code> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startLeScan-android.bluetooth.BluetoothAdapter.LeScanCallback-" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startLeScan(BluetoothAdapter.LeScanCallback)</code></a> failed for an unknown reason.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#UNKNOWN_BLE_ERROR">UNKNOWN_BLE_ERROR</a></span></code> +<div class="block">Just a blanket case for when the library has to completely shrug its shoulders.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#WRITE_TIMED_OUT">WRITE_TIMED_OUT</a></span></code> +<div class="block">Similar to <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#READ_TIMED_OUT"><code>READ_TIMED_OUT</code></a> but for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>BleDevice.write(java.util.UUID, byte[])</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#getRemedy--">getRemedy</a></span>()</code> +<div class="block">Returns the <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.Remedy</code></a> for this <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="BOND_TIMED_OUT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BOND_TIMED_OUT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> BOND_TIMED_OUT</pre> +<div class="block">A <a href="../../../com/idevicesinc/sweetblue/BleTask.html#BOND"><code>BleTask.BOND</code></a> operation timed out. This can happen a lot with the Galaxy Tab 4, and doing <a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a> seems to fix it. + SweetBlue does as much as it can to work around the issue that causes bond timeouts, but some might still slip through.</div> +</li> +</ul> +<a name="READ_TIMED_OUT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>READ_TIMED_OUT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> READ_TIMED_OUT</pre> +<div class="block">A <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(java.util.UUID, BleDevice.ReadWriteListener)</code></a> + took longer than timeout set by <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter"><code>BleNodeConfig.taskTimeoutRequestFilter</code></a>. + You will also get a <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> with <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#TIMED_OUT"><code>BleDevice.ReadWriteListener.Status.TIMED_OUT</code></a> + but a timeout is a sort of fringe case that should not regularly happen.</div> +</li> +</ul> +<a name="READ_RETURNED_NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>READ_RETURNED_NULL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> READ_RETURNED_NULL</pre> +<div class="block">A <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(java.util.UUID, BleDevice.ReadWriteListener)</code></a> returned with a <code>null</code> + characteristic value. The <code>null</code> value will end up as an empty array in <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.data()</code></a> + so app-land doesn't have to do any special <code>null</code> handling.</div> +</li> +</ul> +<a name="WRITE_TIMED_OUT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WRITE_TIMED_OUT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> WRITE_TIMED_OUT</pre> +<div class="block">Similar to <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#READ_TIMED_OUT"><code>READ_TIMED_OUT</code></a> but for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>BleDevice.write(java.util.UUID, byte[])</code></a>.</div> +</li> +</ul> +<a name="INCONSISTENT_NATIVE_BLE_STATE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>INCONSISTENT_NATIVE_BLE_STATE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> INCONSISTENT_NATIVE_BLE_STATE</pre> +<div class="block">When the underlying stack meets a race condition where <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#getState--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.getState()</code></a> does not + match the value provided through <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#ACTION_STATE_CHANGED" title="class or interface in android.bluetooth"><code>BluetoothAdapter.ACTION_STATE_CHANGED</code></a> with <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#EXTRA_STATE" title="class or interface in android.bluetooth"><code>BluetoothAdapter.EXTRA_STATE</code></a>.</div> +</li> +</ul> +<a name="DUPLICATE_SERVICE_FOUND"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DUPLICATE_SERVICE_FOUND</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> DUPLICATE_SERVICE_FOUND</pre> +<div class="block">A <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#discoverServices--" title="class or interface in android.bluetooth"><code>BluetoothGatt.discoverServices()</code></a> operation returned two duplicate services. Not the same instance + necessarily but the same UUID.</div> +</li> +</ul> +<a name="OLD_DUPLICATE_SERVICE_FOUND"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>OLD_DUPLICATE_SERVICE_FOUND</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> OLD_DUPLICATE_SERVICE_FOUND</pre> +<div class="block">A <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#discoverServices--" title="class or interface in android.bluetooth"><code>BluetoothGatt.discoverServices()</code></a> operation returned a service instance that we already received before + after disconnecting and reconnecting.</div> +</li> +</ul> +<a name="START_BLE_SCAN_FAILED__USING_CLASSIC"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>START_BLE_SCAN_FAILED__USING_CLASSIC</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> START_BLE_SCAN_FAILED__USING_CLASSIC</pre> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startLeScan-android.bluetooth.BluetoothAdapter.LeScanCallback-" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startLeScan(BluetoothAdapter.LeScanCallback)</code></a> failed for an unknown reason. The library is now using + <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startDiscovery--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startDiscovery()</code></a> instead.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#revertToClassicDiscoveryIfNeeded"><code>BleManagerConfig.revertToClassicDiscoveryIfNeeded</code></a></dd> +</dl> +</li> +</ul> +<a name="CONNECTED_WITHOUT_EVER_CONNECTING"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CONNECTED_WITHOUT_EVER_CONNECTING</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> CONNECTED_WITHOUT_EVER_CONNECTING</pre> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#getConnectionState-android.bluetooth.BluetoothDevice-" title="class or interface in android.bluetooth"><code>BluetoothGatt.getConnectionState(BluetoothDevice)</code></a> says we're connected but we never tried to connect in the first place. + My theory is that this can happen on some phones when you quickly restart the app and the stack doesn't have + a chance to disconnect from the device entirely.</div> +</li> +</ul> +<a name="DEAD_OBJECT_EXCEPTION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEAD_OBJECT_EXCEPTION</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> DEAD_OBJECT_EXCEPTION</pre> +<div class="block">Similar in concept to <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#RANDOM_EXCEPTION"><code>RANDOM_EXCEPTION</code></a> but used when <a href="http://d.android.com/reference/android/os/DeadObjectException.html?is-external=true" title="class or interface in android.os"><code>DeadObjectException</code></a> is thrown.</div> +</li> +</ul> +<a name="RANDOM_EXCEPTION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>RANDOM_EXCEPTION</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> RANDOM_EXCEPTION</pre> +<div class="block">The underlying native BLE stack enjoys surprising you with random exceptions. Every time a new one is discovered + it is wrapped in a try/catch and this <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a> is dispatched.</div> +</li> +</ul> +<a name="START_BLE_SCAN_FAILED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>START_BLE_SCAN_FAILED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> START_BLE_SCAN_FAILED</pre> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startLeScan-android.bluetooth.BluetoothAdapter.LeScanCallback-" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startLeScan(BluetoothAdapter.LeScanCallback)</code></a> failed and <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#revertToClassicDiscoveryIfNeeded"><code>BleManagerConfig.revertToClassicDiscoveryIfNeeded</code></a> is <code>false</code>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#revertToClassicDiscoveryIfNeeded"><code>BleManagerConfig.revertToClassicDiscoveryIfNeeded</code></a></dd> +</dl> +</li> +</ul> +<a name="CLASSIC_DISCOVERY_FAILED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CLASSIC_DISCOVERY_FAILED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> CLASSIC_DISCOVERY_FAILED</pre> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startLeScan-android.bluetooth.BluetoothAdapter.LeScanCallback-" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startLeScan(BluetoothAdapter.LeScanCallback)</code></a> failed and <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#revertToClassicDiscoveryIfNeeded"><code>BleManagerConfig.revertToClassicDiscoveryIfNeeded</code></a> is <code>true</code> + so we try <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startDiscovery--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startDiscovery()</code></a> but that also fails...fun!</div> +</li> +</ul> +<a name="SERVICE_DISCOVERY_IMMEDIATELY_FAILED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SERVICE_DISCOVERY_IMMEDIATELY_FAILED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> SERVICE_DISCOVERY_IMMEDIATELY_FAILED</pre> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#discoverServices--" title="class or interface in android.bluetooth"><code>BluetoothGatt.discoverServices()</code></a> failed right off the bat and returned false.</div> +</li> +</ul> +<a name="CANNOT_DISABLE_BLUETOOTH"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CANNOT_DISABLE_BLUETOOTH</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> CANNOT_DISABLE_BLUETOOTH</pre> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#disable--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.disable()</code></a>, through <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOff--"><code>BleManager.turnOff()</code></a>, is failing to complete. + We always end up back at <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#STATE_ON" title="class or interface in android.bluetooth"><code>BluetoothAdapter.STATE_ON</code></a>.</div> +</li> +</ul> +<a name="CANNOT_ENABLE_BLUETOOTH"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CANNOT_ENABLE_BLUETOOTH</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> CANNOT_ENABLE_BLUETOOTH</pre> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#enable--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.enable()</code></a>, through <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOn--"><code>BleManager.turnOn()</code></a>, is failing to complete. + We always end up back at <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#STATE_OFF" title="class or interface in android.bluetooth"><code>BluetoothAdapter.STATE_OFF</code></a>. Opposite problem of <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#CANNOT_DISABLE_BLUETOOTH"><code>CANNOT_DISABLE_BLUETOOTH</code></a></div> +</li> +</ul> +<a name="UNKNOWN_BLE_ERROR"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>UNKNOWN_BLE_ERROR</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> UNKNOWN_BLE_ERROR</pre> +<div class="block">Just a blanket case for when the library has to completely shrug its shoulders.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleManager.UhOhListener.UhOh c : BleManager.UhOhListener.UhOh.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="getRemedy--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getRemedy</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a> getRemedy()</pre> +<div class="block">Returns the <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.Remedy</code></a> for this <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a>.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" target="_top">Frames</a></li> +<li><a href="BleManager.UhOhListener.UhOh.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..ddabe46427a364274f978ff1346a476a8a28d5af --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html @@ -0,0 +1,304 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManager.UhOhListener.UhOhEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManager.UhOhListener.UhOhEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" target="_top">Frames</a></li> +<li><a href="BleManager.UhOhListener.UhOhEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleManager.UhOhListener.UhOhEvent" class="title">Class BleManager.UhOhListener.UhOhEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOhEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.UhOhListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleManager.UhOhListener.UhOhEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></pre> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOhEvent-"><code>BleManager.UhOhListener.onEvent(BleManager.UhOhListener.UhOhEvent)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html#manager--">manager</a></span>()</code> +<div class="block">The manager associated with the <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOhEvent</code></a></div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html#remedy--">remedy</a></span>()</code> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#getRemedy--"><code>BleManager.UhOhListener.UhOh.getRemedy()</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html#uhOh--">uhOh</a></span>()</code> +<div class="block">Returns the type of <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a> that occurred.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="manager--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>manager</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> manager()</pre> +<div class="block">The manager associated with the <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOhEvent</code></a></div> +</li> +</ul> +<a name="uhOh--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>uhOh</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a> uhOh()</pre> +<div class="block">Returns the type of <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a> that occurred.</div> +</li> +</ul> +<a name="remedy--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>remedy</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a> remedy()</pre> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#getRemedy--"><code>BleManager.UhOhListener.UhOh.getRemedy()</code></a>.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" target="_top">Frames</a></li> +<li><a href="BleManager.UhOhListener.UhOhEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.UhOhListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.UhOhListener.html new file mode 100644 index 0000000000000000000000000000000000000000..c1e33bc381fd80bae4d595b54f6dde734ac9dccf --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.UhOhListener.html @@ -0,0 +1,266 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManager.UhOhListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManager.UhOhListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.UhOhListener.html" target="_top">Frames</a></li> +<li><a href="BleManager.UhOhListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleManager.UhOhListener" class="title">Interface BleManager.UhOhListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleManager.UhOhListener</span></pre> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_UhOh-com.idevicesinc.sweetblue.BleManager.UhOhListener-"><code>BleManager.setListener_UhOh(BleManager.UhOhListener)</code></a> + to receive a callback when an <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a> occurs.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a></span></code> +<div class="block">The suggested remedy for each <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a></span></code> +<div class="block">An UhOh is a warning about an exceptional (in the bad sense) and unfixable problem with the underlying stack that + the app can warn its user about.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOhEvent</a></span></code> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOhEvent-"><code>onEvent(BleManager.UhOhListener.UhOhEvent)</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOhEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOhEvent</a> e)</code> +<div class="block">Run for the hills.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOhEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>void onEvent(<a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOhEvent</a> e)</pre> +<div class="block">Run for the hills.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.UhOhListener.html" target="_top">Frames</a></li> +<li><a href="BleManager.UhOhListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.html new file mode 100644 index 0000000000000000000000000000000000000000..6e1aa5945c28a96082a69fb7b2040dd7e9a1edf1 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManager.html @@ -0,0 +1,3011 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManager (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManager (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9,"i9":9,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":10,"i132":10,"i133":10,"i134":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.html" target="_top">Frames</a></li> +<li><a href="BleManager.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleManager" class="title">Class BleManager</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleManager</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">BleManager</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">The entry point to the library. Get a singleton instance using <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>get(android.content.Context, BleManagerConfig)</code></a> or its overloads. Make sure + to hook up this manager to lifecycle events for your app as a whole: <a href="../../../com/idevicesinc/sweetblue/BleManager.html#onPause--"><code>onPause()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManager.html#onResume--"><code>onResume()</code></a>. + <br><br> + Also put the following entries (or something similar) in the root of your AndroidManifest.xml: + <br><br> + <code><uses-sdk android:minSdkVersion="18" android:targetSdkVersion="23" /></code><br> + <code><uses-permission android:name="android.permission.BLUETOOTH" /> </code><br> + <code><uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> </code><br> + <code><uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" /> </code><br> + <code><uses-permission android:name="android.permission.WAKE_LOCK" /> </code> <br> + <code><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> </code> <br> + <code><uses-feature android:name="android.hardware.bluetooth_le" android:required="true" /> </code><br> + <br><br> + <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#WAKE_LOCK" title="class or interface in android"><code>Manifest.permission.WAKE_LOCK</code></a> is recommended but optional, needed if <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#manageCpuWakeLock"><code>BleManagerConfig.manageCpuWakeLock</code></a> is enabled to aid with reconnect loops. + As of now it's enabled by default. + <br><br> + <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#ACCESS_COARSE_LOCATION" title="class or interface in android"><code>Manifest.permission.ACCESS_COARSE_LOCATION</code></a> (or <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#ACCESS_FINE_LOCATION" title="class or interface in android"><code>Manifest.permission.ACCESS_FINE_LOCATION</code></a>) + is also strongly recommended but optional. Without it, <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>startScan()</code></a> and overloads will not properly return results in <a href="http://d.android.com/reference/android/os/Build.VERSION_CODES.html?is-external=true#M" title="class or interface in android.os"><code>Build.VERSION_CODES.M</code></a> and above. + See <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>startScan(Interval, BleManagerConfig.ScanFilter, DiscoveryListener)</code></a> for more information. + <br><br> + Now here is a simple example usage:<pre><code> + public class MyActivity extends Activity + { + @Override protected void onCreate(Bundle savedInstanceState) + { + // A ScanFilter decides whether a BleDevice instance will be created + // and passed to the DiscoveryListener implementation below. + final ScanFilter scanFilter = new ScanFilter() + { + @Override public Please onEvent(ScanEvent e) + { + return Please.acknowledgeIf(e.name_normalized().contains("my_device")) + .thenStopScan(); + } + }; + + // New BleDevice instances are provided through this listener. + // Nested listeners then listen for connection and read results. + final DiscoveryListener discoveryListener = new DiscoveryListener() + { + @Override public void onEvent(DiscoveryEvent e) + { + if( e.was(LifeCycle.DISCOVERED) ) + { + e.device().connect(new StateListener() + { + @Override public void onEvent(StateEvent e) + { + if( e.didEnter(BleDeviceState.INITIALIZED) ) + { + e.device().read(Uuids.BATTERY_LEVEL, new ReadWriteListener() + { + @Override public void onEvent(ReadWriteEvent e) + { + if( e.wasSuccess() ) + { + Log.i("", "Battery level is " + e.data_byte() + "%"); + } + } + }); + } + } + }); + } + } + }; + + // Helps you navigate the treacherous waters of Android M Location requirements for scanning. + BluetoothEnabler.start(this, new DefaultBluetoothEnablerFilter() + { + @Override public Please onEvent(BluetoothEnablerEvent e) + { + if( e.isDone() ) + { + e.bleManager().startScan(scanFilter, discoveryListener); + } + + return super.onEvent(e); + } + }); + } + </code> + </pre></div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Class and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.AssertListener</a></span></code> +<div class="block">Mostly only for SweetBlue library developers.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a></span></code> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>setListener_Discovery(BleManager.DiscoveryListener)</code></a> to receive + callbacks when a device is newly discovered, rediscovered, or undiscovered after calling various <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>startScan()</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>startPeriodicScan(Interval, Interval)</code></a> methods.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.NativeStateListener</a></span></code> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_NativeState-com.idevicesinc.sweetblue.BleManager.NativeStateListener-"><code>setListener_NativeState(BleManager.NativeStateListener)</code></a> to receive callbacks + when the <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> undergoes a *native* <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> change.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.ResetListener</a></span></code> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset-com.idevicesinc.sweetblue.BleManager.ResetListener-"><code>reset(BleManager.ResetListener)</code></a> + to be notified when a reset operation is complete.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.StateListener</a></span></code> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_State-com.idevicesinc.sweetblue.BleManager.StateListener-"><code>setListener_State(BleManager.StateListener)</code></a> to receive callbacks + when the <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> undergoes a <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> change.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.UhOhListener</a></span></code> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_UhOh-com.idevicesinc.sweetblue.BleManager.UhOhListener-"><code>setListener_UhOh(BleManager.UhOhListener)</code></a> + to receive a callback when an <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a> occurs.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#appData">appData</a></span></code> +<div class="block">Field for app to associate any data it wants with the singleton instance of this class + instead of having to subclass or manage associative hash maps or something.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#ASSERT-boolean-">ASSERT</a></span>(boolean condition)</code> +<div class="block">Fires a callback to <a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleManager.AssertListener</code></a> if condition is false.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#ASSERT-boolean-java.lang.String-">ASSERT</a></span>(boolean condition, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> message)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#ASSERT-boolean-"><code>ASSERT(boolean)</code></a> but with an added message.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#clearQueue--">clearQueue</a></span>()</code> +<div class="block">This method will clear the task queue of all tasks.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#clearSharedPreferences--">clearSharedPreferences</a></span>()</code> +<div class="block">Clears all data currently being held in <a href="http://d.android.com/reference/android/content/SharedPreferences.html?is-external=true" title="class or interface in android.content"><code>SharedPreferences</code></a> for all devices.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#clearSharedPreferences-com.idevicesinc.sweetblue.BleDevice-">clearSharedPreferences</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</code> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#clearSharedPreferences-java.lang.String-"><code>clearSharedPreferences(String)</code></a>.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#clearSharedPreferences-java.lang.String-">clearSharedPreferences</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</code> +<div class="block">Clears all data currently being held in <a href="http://d.android.com/reference/android/content/SharedPreferences.html?is-external=true" title="class or interface in android.content"><code>SharedPreferences</code></a> for a particular device.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#disconnectAll_remote--">disconnectAll_remote</a></span>()</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#disconnectAll--"><code>disconnectAll()</code></a> but drills down to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disconnect_remote--"><code>BleDevice.disconnect_remote()</code></a> instead.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#disconnectAll--">disconnectAll</a></span>()</code> +<div class="block">Disconnects all devices that are <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-">get</a></span>(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context)</code> +<div class="block">Create the singleton instance or retrieve the already-created singleton instance with default configuration options set.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-">get</a></span>(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context, + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a> config)</code> +<div class="block">Create the singleton instance or retrieve the already-created singleton instance with custom configuration options set.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getApplicationContext--">getApplicationContext</a></span>()</code> +<div class="block">Returns the <a href="http://d.android.com/reference/android/app/Application.html?is-external=true" title="class or interface in android.app"><code>Application</code></a> provided to the constructor.</div> +</td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-">getDevice_next</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>getDevice_next(BleDevice, BleDeviceState)</code></a> but just returns the next device in the internal list + with no state checking.</div> +</td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-">getDevice_next</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device, + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>getDevice_previous(BleDevice, BleDeviceState)</code></a> but returns the next device in the internal list + with no state checking.</div> +</td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-java.lang.Object...-">getDevice_next</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>getDevice_next(BleDevice, BleDeviceState)</code></a> but allows you to pass a query.</div> +</td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-">getDevice_previous</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</code> </td> +</tr> +<tr id="i15" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-">getDevice_previous</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device, + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</code> +<div class="block">Returns the first device previous to the provided one in the internal list that is in the given state.</div> +</td> +</tr> +<tr id="i16" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-java.lang.Object...-">getDevice_previous</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>getDevice_previous(BleDevice, BleDeviceState)</code></a> but allows you to pass a query.</div> +</td> +</tr> +<tr id="i17" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice--">getDevice</a></span>()</code> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDeviceAt-int-"><code>getDeviceAt(int)</code></a> with index of 0.</div> +</td> +</tr> +<tr id="i18" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice-com.idevicesinc.sweetblue.BleDeviceState-">getDevice</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</code> +<div class="block">Returns the first device that is in the given state, or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> if no match is found.</div> +</td> +</tr> +<tr id="i19" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice-int-">getDevice</a></span>(int mask_BleDeviceState)</code> +<div class="block">Returns the first device which returns <code>true</code> for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isAny-int-"><code>BleDevice.isAny(int)</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> if no such device is found.</div> +</td> +</tr> +<tr id="i20" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice-java.lang.Object...-">getDevice</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</code> +<div class="block">Returns the first device that matches the query, or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> if no match is found.</div> +</td> +</tr> +<tr id="i21" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice-java.lang.String-">getDevice</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</code> +<div class="block">Gets a known <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCOVERED"><code>BleDeviceState.DISCOVERED</code></a> device by MAC address, or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> if there is no such device.</div> +</td> +</tr> +<tr id="i22" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDeviceAt-int-">getDeviceAt</a></span>(int index)</code> +<div class="block">Accessor into the underlying array used to store <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> instances.</div> +</td> +</tr> +<tr id="i23" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDeviceCount--">getDeviceCount</a></span>()</code> +<div class="block">Returns the total number of devices this manager is...managing.</div> +</td> +</tr> +<tr id="i24" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDeviceCount-com.idevicesinc.sweetblue.BleDeviceState-">getDeviceCount</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</code> +<div class="block">Returns the number of devices that are in the current state.</div> +</td> +</tr> +<tr id="i25" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDeviceCount-java.lang.Object...-">getDeviceCount</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</code> +<div class="block">Returns the number of devices that match the given query.</div> +</td> +</tr> +<tr id="i26" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDeviceIndex-com.idevicesinc.sweetblue.BleDevice-">getDeviceIndex</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</code> +<div class="block">Returns the index of this device in the internal list, or -1 if it's not found.</div> +</td> +</tr> +<tr id="i27" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_bonded--">getDevices_bonded</a></span>()</code> +<div class="block">Convenience method to return a <a href="http://d.android.com/reference/java/util/Set.html?is-external=true" title="class or interface in java.util"><code>Set</code></a> of currently bonded devices.</div> +</td> +</tr> +<tr id="i28" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_List_sorted--">getDevices_List_sorted</a></span>()</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_List--"><code>getDevices_List()</code></a>, but sorts the list using <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#defaultListComparator"><code>BleManagerConfig.defaultListComparator</code></a>.</div> +</td> +</tr> +<tr id="i29" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_List_sorted-com.idevicesinc.sweetblue.BleDeviceState-">getDevices_List_sorted</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_List-com.idevicesinc.sweetblue.BleDeviceState-"><code>getDevices_List(BleDeviceState)</code></a> except the list is sorted using <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#defaultListComparator"><code>BleManagerConfig.defaultListComparator</code></a>.</div> +</td> +</tr> +<tr id="i30" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_List_sorted-int-">getDevices_List_sorted</a></span>(int mask_BleDeviceState)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_List-int-"><code>getDevices_List(int)</code></a> except the list is sorted using <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#defaultListComparator"><code>BleManagerConfig.defaultListComparator</code></a>.</div> +</td> +</tr> +<tr id="i31" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_List_sorted-java.lang.Object...-">getDevices_List_sorted</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_List-java.lang.Object...-"><code>getDevices_List(Object...)</code></a> except the list is sorted using <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#defaultListComparator"><code>BleManagerConfig.defaultListComparator</code></a>.</div> +</td> +</tr> +<tr id="i32" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_List--">getDevices_List</a></span>()</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices--"><code>getDevices()</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</td> +</tr> +<tr id="i33" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_List-com.idevicesinc.sweetblue.BleDeviceState-">getDevices_List</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.BleDeviceState-"><code>getDevices(BleDeviceState)</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</td> +</tr> +<tr id="i34" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_List-int-">getDevices_List</a></span>(int mask_BleDeviceState)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-int-"><code>getDevices(int)</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</td> +</tr> +<tr id="i35" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_List-java.lang.Object...-">getDevices_List</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-java.lang.Object...-"><code>getDevices(Object...)</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</td> +</tr> +<tr id="i36" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_previouslyConnected--">getDevices_previouslyConnected</a></span>()</code> +<div class="block">Returns the mac addresses of all devices that we know about from both current and previous + app sessions.</div> +</td> +</tr> +<tr id="i37" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue">BleDeviceIterator</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_sorted--">getDevices_sorted</a></span>()</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices--"><code>getDevices()</code></a>, but with the devices sorted using <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#defaultListComparator"><code>BleManagerConfig.defaultListComparator</code></a>, which + by default sorts by <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_debug--"><code>BleDevice.getName_debug()</code></a>.</div> +</td> +</tr> +<tr id="i38" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue">BleDeviceIterator</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices--">getDevices</a></span>()</code> +<div class="block">Returns all the devices managed by this class.</div> +</td> +</tr> +<tr id="i39" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue">BleDeviceIterator</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.BleDeviceState-">getDevices</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>getDevice(BleDeviceState)</code></a> except returns all matching devices.</div> +</td> +</tr> +<tr id="i40" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getDevices</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> forEach)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.utils.ForEach_Void-"><code>getDevices(ForEach_Void)</code></a> + if you need to break out of the iteration at any point.</div> +</td> +</tr> +<tr id="i41" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.utils.ForEach_Breakable-com.idevicesinc.sweetblue.BleDeviceState-">getDevices</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> forEach, + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.utils.ForEach_Void-com.idevicesinc.sweetblue.BleDeviceState-"><code>getDevices(ForEach_Void, BleDeviceState)</code></a> + if you need to break out of the iteration at any point.</div> +</td> +</tr> +<tr id="i42" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.utils.ForEach_Void-">getDevices</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> forEach)</code> +<div class="block">Offers a more "functional" means of iterating through the internal list of devices instead of + using <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices--"><code>getDevices()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_List--"><code>getDevices_List()</code></a>.</div> +</td> +</tr> +<tr id="i43" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.utils.ForEach_Void-com.idevicesinc.sweetblue.BleDeviceState-">getDevices</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> forEach, + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.utils.ForEach_Void-"><code>getDevices(ForEach_Void)</code></a> but will only return devices + in the given state provided.</div> +</td> +</tr> +<tr id="i44" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue">BleDeviceIterator</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-int-">getDevices</a></span>(int mask_BleDeviceState)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices--"><code>getDevices()</code></a> except filters using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isAny-int-"><code>BleDevice.isAny(int)</code></a>.</div> +</td> +</tr> +<tr id="i45" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue">BleDeviceIterator</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-java.lang.Object...-">getDevices</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice-java.lang.Object...-"><code>getDevice(Object...)</code></a> except returns all matching devices.</div> +</td> +</tr> +<tr id="i46" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getListener_Discovery--">getListener_Discovery</a></span>()</code> +<div class="block">Returns the discovery listener set with <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>setListener_Discovery(BleManager.DiscoveryListener)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#defaultDiscoveryListener"><code>BleManagerConfig.defaultDiscoveryListener</code></a>, or <code>null</code> if not set.</div> +</td> +</tr> +<tr id="i47" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothManager.html?is-external=true" title="class or interface in android.bluetooth">BluetoothManager</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getNative--">getNative</a></span>()</code> +<div class="block">Returns the native manager.</div> +</td> +</tr> +<tr id="i48" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true" title="class or interface in android.bluetooth">BluetoothAdapter</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getNativeAdapter--">getNativeAdapter</a></span>()</code> +<div class="block">Returns the native bluetooth adapter.</div> +</td> +</tr> +<tr id="i49" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getNativeStateMask--">getNativeStateMask</a></span>()</code> +<div class="block">Returns the native bitwise state mask representation of <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> for this device.</div> +</td> +</tr> +<tr id="i50" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getServer--">getServer</a></span>()</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getServer-com.idevicesinc.sweetblue.BleServer.IncomingListener-"><code>getServer(BleServer.IncomingListener)</code></a> without any initial set-up parameters.</div> +</td> +</tr> +<tr id="i51" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getServer-com.idevicesinc.sweetblue.BleServer.IncomingListener-">getServer</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.IncomingListener</a> incomingListener)</code> +<div class="block">Returns a <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> instance.</div> +</td> +</tr> +<tr id="i52" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getStateMask--">getStateMask</a></span>()</code> +<div class="block">Returns the abstracted bitwise state mask representation of <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> for this device.</div> +</td> +</tr> +<tr id="i53" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getTimeInNativeState-com.idevicesinc.sweetblue.BleManagerState-">getTimeInNativeState</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a> state)</code> +<div class="block">See similar comment for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getTimeInState-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleDevice.getTimeInState(BleDeviceState)</code></a>.</div> +</td> +</tr> +<tr id="i54" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getTimeInState-com.idevicesinc.sweetblue.BleManagerState-">getTimeInState</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a> state)</code> +<div class="block">See similar comment for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getTimeInState-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleDevice.getTimeInState(BleDeviceState)</code></a>.</div> +</td> +</tr> +<tr id="i55" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#getUpdateLoop--">getUpdateLoop</a></span>()</code> </td> +</tr> +<tr id="i56" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#hasDevice-com.idevicesinc.sweetblue.BleDevice-">hasDevice</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</code> +<div class="block">Calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#hasDevice-java.lang.String-"><code>hasDevice(String)</code></a>.</div> +</td> +</tr> +<tr id="i57" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#hasDevice-com.idevicesinc.sweetblue.BleDeviceState-">hasDevice</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</code> +<div class="block">Returns true if we have a device in the given state.</div> +</td> +</tr> +<tr id="i58" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#hasDevice-int-">hasDevice</a></span>(int mask_BleDeviceState)</code> +<div class="block">Returns <code>true</code> if there is any <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> for which <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isAny-int-"><code>BleDevice.isAny(int)</code></a> with the given mask returns <code>true</code>.</div> +</td> +</tr> +<tr id="i59" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#hasDevice-java.lang.Object...-">hasDevice</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</code> +<div class="block">Returns true if we have a device that matches the given query.</div> +</td> +</tr> +<tr id="i60" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#hasDevice-java.lang.String-">hasDevice</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</code> +<div class="block">Shortcut for checking if <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice-java.lang.String-"><code>getDevice(String)</code></a> returns <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a>.</div> +</td> +</tr> +<tr id="i61" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#hasDevices--">hasDevices</a></span>()</code> +<div class="block">Returns whether we have any devices.</div> +</td> +</tr> +<tr id="i62" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#is-com.idevicesinc.sweetblue.BleManagerState-">is</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a> state)</code> +<div class="block">Returns whether the manager is in the provided state.</div> +</td> +</tr> +<tr id="i63" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isAdvertisingSupported--">isAdvertisingSupported</a></span>()</code> +<div class="block">Checks to see if the device supports advertising BLE services.</div> +</td> +</tr> +<tr id="i64" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isAdvertisingSupportedByAndroidVersion--">isAdvertisingSupportedByAndroidVersion</a></span>()</code> +<div class="block">Checks to see if the device is running an Android OS which supports + advertising.</div> +</td> +</tr> +<tr id="i65" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isAdvertisingSupportedByChipset--">isAdvertisingSupportedByChipset</a></span>()</code> +<div class="block">Checks to see if the device supports advertising.</div> +</td> +</tr> +<tr id="i66" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isAll-com.idevicesinc.sweetblue.BleManagerState...-">isAll</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a>... states)</code> +<div class="block">Returns whether the manager is in all of the provided states.</div> +</td> +</tr> +<tr id="i67" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isAll-int-">isAll</a></span>(int mask_BleManagerState)</code> +<div class="block">Returns <code>true</code> if there is complete bitwise overlap between the provided value and <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getStateMask--"><code>getStateMask()</code></a>.</div> +</td> +</tr> +<tr id="i68" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isAny-com.idevicesinc.sweetblue.BleManagerState...-">isAny</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a>... states)</code> +<div class="block">Returns whether the manager is in any of the provided states.</div> +</td> +</tr> +<tr id="i69" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isAny-int-">isAny</a></span>(int mask_BleManagerState)</code> +<div class="block">Returns <code>true</code> if there is partial bitwise overlap between the provided value and <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getStateMask--"><code>getStateMask()</code></a>.</div> +</td> +</tr> +<tr id="i70" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isBleSupported--">isBleSupported</a></span>()</code> +<div class="block">Checks the underlying stack to see if BLE is supported on the phone.</div> +</td> +</tr> +<tr id="i71" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isForegrounded--">isForegrounded</a></span>()</code> +<div class="block">Returns this manager's knowledge of the app's foreground state, which must be + controlled manually from appland through <a href="../../../com/idevicesinc/sweetblue/BleManager.html#onResume--"><code>onResume()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManager.html#onPause--"><code>onPause()</code></a>.</div> +</td> +</tr> +<tr id="i72" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byManifestPermissions--">isLocationEnabledForScanning_byManifestPermissions</a></span>()</code> +<div class="block">Returns <code>true</code> if you're either pre-Android-M, or app has permission for either <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#ACCESS_COARSE_LOCATION" title="class or interface in android"><code>Manifest.permission.ACCESS_COARSE_LOCATION</code></a> + or <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#ACCESS_FINE_LOCATION" title="class or interface in android"><code>Manifest.permission.ACCESS_FINE_LOCATION</code></a> in your AndroidManifest.xml, <code>false</code> otherwise.</div> +</td> +</tr> +<tr id="i73" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byOsServices--">isLocationEnabledForScanning_byOsServices</a></span>()</code> +<div class="block">Returns <code>true</code> if you're either pre-Android-M, or location services are enabled, the same is if you go to the Android Settings app + and manually toggle Location ON/OFF.</div> +</td> +</tr> +<tr id="i74" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byRuntimePermissions--">isLocationEnabledForScanning_byRuntimePermissions</a></span>()</code> +<div class="block">Returns <code>true</code> if you're either pre-Android-M, or app has runtime permissions enabled by checking + <a href="https://developer.android.com/reference/android/support/v4/content/ContextCompat.html#checkSelfPermission(android.content.Context, java.lang.String)"</a> * + See more information at https://developer.android.com/training/permissions/index.html.</div> +</td> +</tr> +<tr id="i75" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning--">isLocationEnabledForScanning</a></span>()</code> +<div class="block">Returns <code>true</code> if location is enabled to a degree that allows scanning on <a href="http://d.android.com/reference/android/os/Build.VERSION_CODES.html?is-external=true#M" title="class or interface in android.os"><code>Build.VERSION_CODES.M</code></a> and above.</div> +</td> +</tr> +<tr id="i76" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isScanningReady--">isScanningReady</a></span>()</code> +<div class="block">Tells you whether a call to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>startScan()</code></a> (or overloads), will succeed or not.</div> +</td> +</tr> +<tr id="i77" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-">newDevice</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-java.lang.String-com.idevicesinc.sweetblue.BleDeviceConfig-"><code>newDevice(String, String, BleDeviceConfig)</code></a> but uses an empty string for the name + and passes a <code>null</code> <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a>, which results in inherited options from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a>.</div> +</td> +</tr> +<tr id="i78" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-com.idevicesinc.sweetblue.BleDeviceConfig-">newDevice</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a> config)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-"><code>newDevice(String)</code></a> but passes a <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> to be used as well.</div> +</td> +</tr> +<tr id="i79" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-java.lang.String-">newDevice</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-"><code>newDevice(String)</code></a> but allows a custom name also.</div> +</td> +</tr> +<tr id="i80" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-java.lang.String-com.idevicesinc.sweetblue.BleDeviceConfig-">newDevice</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name, + <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a> config)</code> +<div class="block">Creates a new <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> or returns an existing one if the macAddress matches.</div> +</td> +</tr> +<tr id="i81" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-">newHistoricalData</a></span>(byte[] data, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime)</code> +<div class="block">Returns a new <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> instance using + <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataFactory"><code>BleNodeConfig.historicalDataFactory</code></a> if available.</div> +</td> +</tr> +<tr id="i82" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-java.lang.String-">newHistoricalData</a></span>(byte[] data, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>newHistoricalData(byte[], EpochTime)</code></a> but tries to use + <a href="../../../com/idevicesinc/sweetblue/BleNode.html#newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>BleNode.newHistoricalData(byte[], EpochTime)</code></a> if we have a device + matching the given mac address.</div> +</td> +</tr> +<tr id="i83" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#onPause--">onPause</a></span>()</code> +<div class="block">It's generally recommended to call this in your override of <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true#onPause--" title="class or interface in android.app"><code>Activity.onPause()</code></a> for each <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app"><code>Activity</code></a> + in your application.</div> +</td> +</tr> +<tr id="i84" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#onResume--">onResume</a></span>()</code> +<div class="block">Opposite of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#onPause--"><code>onPause()</code></a>, to be called from your override of <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true#onResume--" title="class or interface in android.app"><code>Activity.onResume()</code></a> for each <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app"><code>Activity</code></a> + in your application.</div> +</td> +</tr> +<tr id="i85" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#popWakeLock--">popWakeLock</a></span>()</code> +<div class="block">Opposite of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#pushWakeLock--"><code>pushWakeLock()</code></a>, eventually calls <a href="http://d.android.com/reference/android/os/PowerManager.WakeLock.html?is-external=true#release--" title="class or interface in android.os"><code>PowerManager.WakeLock.release()</code></a>.</div> +</td> +</tr> +<tr id="i86" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#pushWakeLock--">pushWakeLock</a></span>()</code> +<div class="block">Requires the <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#WAKE_LOCK" title="class or interface in android"><code>Manifest.permission.WAKE_LOCK</code></a> permission.</div> +</td> +</tr> +<tr id="i87" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--">reset</a></span>()</code> +<div class="block">This is essentially a big red reset button for the Bluetooth stack.</div> +</td> +</tr> +<tr id="i88" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset-com.idevicesinc.sweetblue.BleManager.ResetListener-">reset</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.ResetListener</a> listener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>reset()</code></a> but with a convenience callback for when the reset is + completed and the native BLE stack is (should be) back to normal.</div> +</td> +</tr> +<tr id="i89" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#setConfig-com.idevicesinc.sweetblue.BleManagerConfig-">setConfig</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a> config_nullable)</code> +<div class="block">Updates the config options for this instance after calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-"><code>get(android.content.Context)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>get(android.content.Context, BleManagerConfig)</code></a>.</div> +</td> +</tr> +<tr id="i90" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Advertising-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-">setListener_Advertising</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a> listener)</code> +<div class="block">Set a listener here to be notified of the result of starting to advertise.</div> +</td> +</tr> +<tr id="i91" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Assert-com.idevicesinc.sweetblue.BleManager.AssertListener-">setListener_Assert</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.AssertListener</a> listener_nullable)</code> +<div class="block">Set a listener here to be notified whenever <a href="../../../com/idevicesinc/sweetblue/BleManager.html#ASSERT-boolean-"><code>ASSERT(boolean)</code></a> fails.</div> +</td> +</tr> +<tr id="i92" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Bond-com.idevicesinc.sweetblue.BleDevice.BondListener-">setListener_Bond</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.BondListener</a> listener_nullable)</code> +<div class="block">Convenience method to set a default back up listener for all <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.BondListener.BondEvent</code></a>s across all <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> instances.</div> +</td> +</tr> +<tr id="i93" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_ConnectionFail_Server-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-">setListener_ConnectionFail_Server</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a> listener_nullable)</code> +<div class="block">Convenience method to handle server connection fail events at the manager level.</div> +</td> +</tr> +<tr id="i94" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-">setListener_ConnectionFail</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a> listener_nullable)</code> +<div class="block">Convenience method to handle connection fail events at the manager level.</div> +</td> +</tr> +<tr id="i95" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_DeviceState-com.idevicesinc.sweetblue.BleDevice.StateListener-">setListener_DeviceState</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> listener_nullable)</code> +<div class="block">Convenience method to listen for all changes in <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> for all devices.</div> +</td> +</tr> +<tr id="i96" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-">setListener_Discovery</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a> listener_nullable)</code> +<div class="block">Set a listener here to be notified whenever a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> is discovered, rediscovered, or undiscovered.</div> +</td> +</tr> +<tr id="i97" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_HistoricalDataLoad-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener-">setListener_HistoricalDataLoad</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener</a> listener_nullable)</code> +<div class="block">Sets a default backup <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleNode.HistoricalDataLoadListener</code></a> that will be invoked + for all historical data loads to memory for all uuids for all devices.</div> +</td> +</tr> +<tr id="i98" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Incoming-com.idevicesinc.sweetblue.BleServer.IncomingListener-">setListener_Incoming</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.IncomingListener</a> listener_nullable)</code> +<div class="block">Convenience method to handle server request events at the manager level.</div> +</td> +</tr> +<tr id="i99" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_NativeState-com.idevicesinc.sweetblue.BleManager.NativeStateListener-">setListener_NativeState</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.NativeStateListener</a> listener)</code> +<div class="block">Set a listener here to be notified whenever this manager's native <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> changes.</div> +</td> +</tr> +<tr id="i100" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">setListener_Outgoing</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener_nullable)</code> +<div class="block">Convenience method to listen for completion of all outgoing messages from + <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> instances.</div> +</td> +</tr> +<tr id="i101" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">setListener_ReadWrite</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener_nullable)</code> +<div class="block">Sets a default backup <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener</code></a> that will be called for all <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> instances.</div> +</td> +</tr> +<tr id="i102" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_ServerState-com.idevicesinc.sweetblue.BleServer.StateListener-">setListener_ServerState</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.StateListener</a> listener_nullable)</code> +<div class="block">Convenience method to listen for all changes in <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleServerState</code></a> for all servers.</div> +</td> +</tr> +<tr id="i103" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_ServiceAdd-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-">setListener_ServiceAdd</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ServiceAddListener</a> listener_nullable)</code> +<div class="block">Convenience method to listen for all service addition events for all servers.</div> +</td> +</tr> +<tr id="i104" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_State-com.idevicesinc.sweetblue.BleManager.StateListener-">setListener_State</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.StateListener</a> listener_nullable)</code> +<div class="block">Set a listener here to be notified whenever this manager's <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> changes.</div> +</td> +</tr> +<tr id="i105" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_UhOh-com.idevicesinc.sweetblue.BleManager.UhOhListener-">setListener_UhOh</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.UhOhListener</a> listener_nullable)</code> +<div class="block">Set a listener here to be notified whenever we encounter an <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a>.</div> +</td> +</tr> +<tr id="i106" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-">startPeriodicScan</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanActiveTime, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanPauseTime)</code> +<div class="block">Manually starts a periodic scan.</div> +</td> +</tr> +<tr id="i107" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-">startPeriodicScan</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanActiveTime, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanPauseTime, + <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a> discoveryListener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>startPeriodicScan(Interval, Interval)</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>setListener_Discovery(BleManager.DiscoveryListener)</code></a> for you too.</div> +</td> +</tr> +<tr id="i108" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-">startPeriodicScan</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanActiveTime, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanPauseTime, + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a> filter)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>startPeriodicScan(Interval, Interval)</code></a> but adds a filter too.</div> +</td> +</tr> +<tr id="i109" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-">startPeriodicScan</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanActiveTime, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanPauseTime, + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a> filter, + <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a> discoveryListener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>startPeriodicScan(Interval, Interval)</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>setListener_Discovery(BleManager.DiscoveryListener)</code></a> for you too and adds a filter.</div> +</td> +</tr> +<tr id="i110" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--">startScan</a></span>()</code> +<div class="block">Starts a scan that will continue indefinitely until <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopScan--"><code>stopScan()</code></a> is called.</div> +</td> +</tr> +<tr id="i111" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-">startScan</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a> discoveryListener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>startScan()</code></a> but also calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>setListener_Discovery(BleManager.DiscoveryListener)</code></a> for you.</div> +</td> +</tr> +<tr id="i112" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-">startScan</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a> filter)</code> +<div class="block">Calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>startScan(Interval, BleManagerConfig.ScanFilter)</code></a> with <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#INFINITE"><code>Interval.INFINITE</code></a>.</div> +</td> +</tr> +<tr id="i113" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-">startScan</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a> filter, + <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a> discoveryListener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>startScan()</code></a> but also calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>setListener_Discovery(BleManager.DiscoveryListener)</code></a> for you.</div> +</td> +</tr> +<tr id="i114" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-">startScan</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanTime)</code> +<div class="block">Starts a scan that will generally last for the given time (roughly).</div> +</td> +</tr> +<tr id="i115" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-">startScan</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanTime, + <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a> discoveryListener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>startScan(Interval, BleManagerConfig.ScanFilter, BleManager.DiscoveryListener)</code></a></div> +</td> +</tr> +<tr id="i116" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-">startScan</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanTime, + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a> filter)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>startScan(Interval, BleManagerConfig.ScanFilter, BleManager.DiscoveryListener)</code></a></div> +</td> +</tr> +<tr id="i117" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-">startScan</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanTime, + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a> filter, + <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a> discoveryListener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-"><code>startScan(Interval)</code></a> but also calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>setListener_Discovery(BleManager.DiscoveryListener)</code></a> for you.</div> +</td> +</tr> +<tr id="i118" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopAllScanning--">stopAllScanning</a></span>()</code> +<div class="block">Convenience that will call both <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan--"><code>stopPeriodicScan()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopScan--"><code>stopScan()</code></a> for you.</div> +</td> +</tr> +<tr id="i119" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan--">stopPeriodicScan</a></span>()</code> +<div class="block">Stops a periodic scan previously started either explicitly with <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>startPeriodicScan(Interval, Interval)</code></a> or through + the <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime"><code>BleManagerConfig.autoScanActiveTime</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseInterval"><code>BleManagerConfig.autoScanPauseInterval</code></a> config options.</div> +</td> +</tr> +<tr id="i120" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-">stopPeriodicScan</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a> filter)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan--"><code>stopPeriodicScan()</code></a> but will also unregister any <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleManagerConfig.ScanFilter</code></a> provided + through <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>startPeriodicScan(Interval, Interval, BleManagerConfig.ScanFilter)</code></a> or other overloads.</div> +</td> +</tr> +<tr id="i121" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopScan--">stopScan</a></span>()</code> +<div class="block">Stops a scan previously started by <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>startScan()</code></a> or its various overloads.</div> +</td> +</tr> +<tr id="i122" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-">stopScan</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a> filter)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopScan--"><code>stopScan()</code></a> but also unregisters any filter supplied to various overloads of + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>startScan()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>startPeriodicScan(Interval, Interval)</code></a> that take an <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleManagerConfig.ScanFilter</code></a>.</div> +</td> +</tr> +<tr id="i123" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#toString--">toString</a></span>()</code> </td> +</tr> +<tr id="i124" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOff--">turnOff</a></span>()</code> +<div class="block">Disables BLE if manager is <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a>.</div> +</td> +</tr> +<tr id="i125" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOn--">turnOn</a></span>()</code> +<div class="block">Enables BLE if manager is currently <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#TURNING_OFF"><code>BleManagerState.TURNING_OFF</code></a>, otherwise does nothing.</div> +</td> +</tr> +<tr id="i126" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forOsServices-android.app.Activity-">turnOnLocationWithIntent_forOsServices</a></span>(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> callingActivity)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forOsServices-android.app.Activity-int-"><code>turnOnLocationWithIntent_forOsServices(Activity, int)</code></a> if you don't care about result.</div> +</td> +</tr> +<tr id="i127" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forOsServices-android.app.Activity-int-">turnOnLocationWithIntent_forOsServices</a></span>(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> callingActivity, + int requestCode)</code> +<div class="block">If <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byOsServices--"><code>isLocationEnabledForScanning_byOsServices()</code></a> returns <code>false</code>, you can use this method to allow the user to enable location services.</div> +</td> +</tr> +<tr id="i128" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forPermissions-android.app.Activity-int-">turnOnLocationWithIntent_forPermissions</a></span>(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> callingActivity, + int requestCode)</code> +<div class="block">If <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byOsServices--"><code>isLocationEnabledForScanning_byOsServices()</code></a> returns <code>false</code>, you can use this method to allow the user to enable location + through an OS intent.</div> +</td> +</tr> +<tr id="i129" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOnWithIntent-android.app.Activity-int-">turnOnWithIntent</a></span>(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> callingActivity, + int requestCode)</code> +<div class="block">Convenience method to request your user to enable ble in a "standard" way + with an <a href="http://d.android.com/reference/android/content/Intent.html?is-external=true" title="class or interface in android.content"><code>Intent</code></a> instead of using <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOn--"><code>turnOn()</code></a> directly.</div> +</td> +</tr> +<tr id="i130" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#unbondAll--">unbondAll</a></span>()</code> +<div class="block">Removes bonds for all devices that are <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDED"><code>BleDeviceState.BONDED</code></a>.</div> +</td> +</tr> +<tr id="i131" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#undiscover-com.idevicesinc.sweetblue.BleDevice-">undiscover</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</code> +<div class="block">Forcefully undiscovers a device, disconnecting it first if needed and removing it from this manager's internal list.</div> +</td> +</tr> +<tr id="i132" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#undiscoverAll--">undiscoverAll</a></span>()</code> +<div class="block">Undiscovers all devices that are <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCOVERED"><code>BleDeviceState.DISCOVERED</code></a>.</div> +</td> +</tr> +<tr id="i133" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#update-double-">update</a></span>(double timeStep_seconds)</code> +<div class="block">This method is made public in case you want to tie the library in to an update loop + from another codebase.</div> +</td> +</tr> +<tr id="i134" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#willLocationPermissionSystemDialogBeShown-android.app.Activity-">willLocationPermissionSystemDialogBeShown</a></span>(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> callingActivity)</code> +<div class="block">Returns <code>true</code> if <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forPermissions-android.app.Activity-int-"><code>turnOnLocationWithIntent_forPermissions(Activity, int)</code></a> will pop a system dialog, <code>false</code> if it will bring + you to the OS's Application Settings.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="appData"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>appData</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> appData</pre> +<div class="block">Field for app to associate any data it wants with the singleton instance of this class + instead of having to subclass or manage associative hash maps or something. + The library does not touch or interact with this data in any way.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNode.html#appData"><code>BleNode.appData</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNode.html#appData"><code>BleNode.appData</code></a></dd> +</dl> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="get-android.content.Context-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>get</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> get(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context)</pre> +<div class="block">Create the singleton instance or retrieve the already-created singleton instance with default configuration options set. + If you call this after you call <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>get(android.content.Context, BleManagerConfig)</code></a> (for example in another + <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app"><code>Activity</code></a>), the <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> originally passed in will be used. + Otherwise, if a new instance is to be created, this calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>get(android.content.Context, BleManagerConfig)</code></a> with a <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> + instance created using the default constructor <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#BleManagerConfig--"><code>BleManagerConfig.BleManagerConfig()</code></a>.</div> +</li> +</ul> +<a name="get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>get</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> get(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context, + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a> config)</pre> +<div class="block">Create the singleton instance or retrieve the already-created singleton instance with custom configuration options set. + If you call this more than once (for example from a different <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app"><code>Activity</code></a> + with different <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> options set then the newer options overwrite the older options.</div> +</li> +</ul> +<a name="setConfig-com.idevicesinc.sweetblue.BleManagerConfig-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setConfig</h4> +<pre>public void setConfig(<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a> config_nullable)</pre> +<div class="block">Updates the config options for this instance after calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-"><code>get(android.content.Context)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>get(android.content.Context, BleManagerConfig)</code></a>. + Providing a <code>null</code> value will set everything back to default values.</div> +</li> +</ul> +<a name="isAny-com.idevicesinc.sweetblue.BleManagerState...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAny</h4> +<pre>public boolean isAny(<a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a>... states)</pre> +<div class="block">Returns whether the manager is in any of the provided states.</div> +</li> +</ul> +<a name="isAll-com.idevicesinc.sweetblue.BleManagerState...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAll</h4> +<pre>public boolean isAll(<a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a>... states)</pre> +<div class="block">Returns whether the manager is in all of the provided states.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isAny-com.idevicesinc.sweetblue.BleManagerState...-"><code>isAny(BleManagerState...)</code></a></dd> +</dl> +</li> +</ul> +<a name="is-com.idevicesinc.sweetblue.BleManagerState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>is</h4> +<pre>public boolean is(<a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a> state)</pre> +<div class="block">Returns whether the manager is in the provided state.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isAny-com.idevicesinc.sweetblue.BleManagerState...-"><code>isAny(BleManagerState...)</code></a></dd> +</dl> +</li> +</ul> +<a name="isAny-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAny</h4> +<pre>public boolean isAny(int mask_BleManagerState)</pre> +<div class="block">Returns <code>true</code> if there is partial bitwise overlap between the provided value and <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getStateMask--"><code>getStateMask()</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isAll-int-"><code>isAll(int)</code></a></dd> +</dl> +</li> +</ul> +<a name="isAll-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAll</h4> +<pre>public boolean isAll(int mask_BleManagerState)</pre> +<div class="block">Returns <code>true</code> if there is complete bitwise overlap between the provided value and <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getStateMask--"><code>getStateMask()</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isAny-int-"><code>isAny(int)</code></a></dd> +</dl> +</li> +</ul> +<a name="getTimeInState-com.idevicesinc.sweetblue.BleManagerState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getTimeInState</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> getTimeInState(<a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a> state)</pre> +<div class="block">See similar comment for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getTimeInState-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleDevice.getTimeInState(BleDeviceState)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getTimeInState-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleDevice.getTimeInState(BleDeviceState)</code></a></dd> +</dl> +</li> +</ul> +<a name="getTimeInNativeState-com.idevicesinc.sweetblue.BleManagerState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getTimeInNativeState</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> getTimeInNativeState(<a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a> state)</pre> +<div class="block">See similar comment for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getTimeInState-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleDevice.getTimeInState(BleDeviceState)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getTimeInState-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleDevice.getTimeInState(BleDeviceState)</code></a></dd> +</dl> +</li> +</ul> +<a name="isBleSupported--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isBleSupported</h4> +<pre>public boolean isBleSupported()</pre> +<div class="block">Checks the underlying stack to see if BLE is supported on the phone.</div> +</li> +</ul> +<a name="isAdvertisingSupportedByAndroidVersion--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAdvertisingSupportedByAndroidVersion</h4> +<pre>public boolean isAdvertisingSupportedByAndroidVersion()</pre> +<div class="block">Checks to see if the device is running an Android OS which supports + advertising.</div> +</li> +</ul> +<a name="isAdvertisingSupportedByChipset--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAdvertisingSupportedByChipset</h4> +<pre>public boolean isAdvertisingSupportedByChipset()</pre> +<div class="block">Checks to see if the device supports advertising.</div> +</li> +</ul> +<a name="isAdvertisingSupported--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAdvertisingSupported</h4> +<pre>public boolean isAdvertisingSupported()</pre> +<div class="block">Checks to see if the device supports advertising BLE services.</div> +</li> +</ul> +<a name="turnOff--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>turnOff</h4> +<pre>public void turnOff()</pre> +<div class="block">Disables BLE if manager is <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a>. This disconnects all current + connections, stops scanning, and forgets all discovered devices.</div> +</li> +</ul> +<a name="getNative--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNative</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothManager.html?is-external=true" title="class or interface in android.bluetooth">BluetoothManager</a> getNative()</pre> +<div class="block">Returns the native manager.</div> +</li> +</ul> +<a name="getNativeAdapter--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeAdapter</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true" title="class or interface in android.bluetooth">BluetoothAdapter</a> getNativeAdapter()</pre> +<div class="block">Returns the native bluetooth adapter.</div> +</li> +</ul> +<a name="setListener_HistoricalDataLoad-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_HistoricalDataLoad</h4> +<pre>public void setListener_HistoricalDataLoad(<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener</a> listener_nullable)</pre> +<div class="block">Sets a default backup <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleNode.HistoricalDataLoadListener</code></a> that will be invoked + for all historical data loads to memory for all uuids for all devices.</div> +</li> +</ul> +<a name="setListener_UhOh-com.idevicesinc.sweetblue.BleManager.UhOhListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_UhOh</h4> +<pre>public void setListener_UhOh(<a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.UhOhListener</a> listener_nullable)</pre> +<div class="block">Set a listener here to be notified whenever we encounter an <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a>.</div> +</li> +</ul> +<a name="setListener_Assert-com.idevicesinc.sweetblue.BleManager.AssertListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_Assert</h4> +<pre>public void setListener_Assert(<a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.AssertListener</a> listener_nullable)</pre> +<div class="block">Set a listener here to be notified whenever <a href="../../../com/idevicesinc/sweetblue/BleManager.html#ASSERT-boolean-"><code>ASSERT(boolean)</code></a> fails. + Mostly for use by internal library developers.</div> +</li> +</ul> +<a name="setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_Discovery</h4> +<pre>public void setListener_Discovery(<a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a> listener_nullable)</pre> +<div class="block">Set a listener here to be notified whenever a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> is discovered, rediscovered, or undiscovered.</div> +</li> +</ul> +<a name="getListener_Discovery--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getListener_Discovery</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a> getListener_Discovery()</pre> +<div class="block">Returns the discovery listener set with <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>setListener_Discovery(BleManager.DiscoveryListener)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#defaultDiscoveryListener"><code>BleManagerConfig.defaultDiscoveryListener</code></a>, or <code>null</code> if not set.</div> +</li> +</ul> +<a name="setListener_State-com.idevicesinc.sweetblue.BleManager.StateListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_State</h4> +<pre>public void setListener_State(<a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.StateListener</a> listener_nullable)</pre> +<div class="block">Set a listener here to be notified whenever this manager's <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> changes.</div> +</li> +</ul> +<a name="setListener_DeviceState-com.idevicesinc.sweetblue.BleDevice.StateListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_DeviceState</h4> +<pre>public void setListener_DeviceState(<a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a> listener_nullable)</pre> +<div class="block">Convenience method to listen for all changes in <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> for all devices. + The listener provided will get called in addition to and after the listener, if any, provided + to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleDevice.setListener_State(BleDevice.StateListener)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleDevice.setListener_State(BleDevice.StateListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="setListener_ConnectionFail_Server-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_ConnectionFail_Server</h4> +<pre>public void setListener_ConnectionFail_Server(<a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a> listener_nullable)</pre> +<div class="block">Convenience method to handle server connection fail events at the manager level. The listener provided + will only get called if the server whose connection failed doesn't have a listener provided to + <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>BleServer.setListener_ConnectionFail(BleServer.ConnectionFailListener)</code></a>. This is unlike the behavior + behind (for example) <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_ServerState-com.idevicesinc.sweetblue.BleServer.StateListener-"><code>setListener_ServerState(BleServer.StateListener)</code></a> because + <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"><code>BleServer.ConnectionFailListener.onEvent(BleServer.ConnectionFailListener.ConnectionFailEvent)</code></a> requires a return value.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>BleServer.setListener_ConnectionFail(BleServer.ConnectionFailListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="setListener_Incoming-com.idevicesinc.sweetblue.BleServer.IncomingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_Incoming</h4> +<pre>public void setListener_Incoming(<a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.IncomingListener</a> listener_nullable)</pre> +<div class="block">Convenience method to handle server request events at the manager level. The listener provided + will only get called if the server receiving a request doesn't have a listener provided to + <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Incoming-com.idevicesinc.sweetblue.BleServer.IncomingListener-"><code>BleServer.setListener_Incoming(BleServer.IncomingListener)</code></a> . This is unlike the behavior (for example) + behind <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>setListener_Outgoing(BleServer.OutgoingListener)</code></a> because + <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>BleServer.IncomingListener.onEvent(BleServer.IncomingListener.IncomingEvent)</code></a> requires a return value.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Incoming-com.idevicesinc.sweetblue.BleServer.IncomingListener-"><code>BleServer.setListener_Incoming(IncomingListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="setListener_ServiceAdd-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_ServiceAdd</h4> +<pre>public void setListener_ServiceAdd(<a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ServiceAddListener</a> listener_nullable)</pre> +<div class="block">Convenience method to listen for all service addition events for all servers. + The listener provided will get called in addition to and after the listener, if any, provided + to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_ServiceAdd-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>BleServer.setListener_ServiceAdd(BleServer.ServiceAddListener)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_ServiceAdd-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>BleServer.setListener_ServiceAdd(BleServer.ServiceAddListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="setListener_ServerState-com.idevicesinc.sweetblue.BleServer.StateListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_ServerState</h4> +<pre>public void setListener_ServerState(<a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.StateListener</a> listener_nullable)</pre> +<div class="block">Convenience method to listen for all changes in <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleServerState</code></a> for all servers. + The listener provided will get called in addition to and after the listener, if any, provided + to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_State-com.idevicesinc.sweetblue.BleServer.StateListener-"><code>BleServer.setListener_State(BleServer.StateListener)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_State-com.idevicesinc.sweetblue.BleServer.StateListener-"><code>BleServer.setListener_State(BleServer.StateListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_Outgoing</h4> +<pre>public void setListener_Outgoing(<a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener_nullable)</pre> +<div class="block">Convenience method to listen for completion of all outgoing messages from + <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> instances. The listener provided will get called in addition to and after the listener, if any, provided + to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.setListener_Outgoing(BleServer.OutgoingListener)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.setListener_Outgoing(BleServer.OutgoingListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_ConnectionFail</h4> +<pre>public void setListener_ConnectionFail(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a> listener_nullable)</pre> +<div class="block">Convenience method to handle connection fail events at the manager level. The listener provided + will only get called if the device whose connection failed doesn't have a listener provided to + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>BleDevice.setListener_ConnectionFail(ConnectionFailListener)</code></a>. This is unlike the behavior + behind <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_DeviceState-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>setListener_DeviceState(BleDevice.StateListener)</code></a> because + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)</code></a> requires a return value.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>BleDevice.setListener_ConnectionFail(BleDevice.ConnectionFailListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="setListener_Bond-com.idevicesinc.sweetblue.BleDevice.BondListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_Bond</h4> +<pre>public void setListener_Bond(<a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.BondListener</a> listener_nullable)</pre> +<div class="block">Convenience method to set a default back up listener for all <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.BondListener.BondEvent</code></a>s across all <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> instances.</div> +</li> +</ul> +<a name="setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_ReadWrite</h4> +<pre>public void setListener_ReadWrite(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> listener_nullable)</pre> +<div class="block">Sets a default backup <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener</code></a> that will be called for all <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> instances. + <br><br> + TIP: Place some analytics code in the listener here.</div> +</li> +</ul> +<a name="setListener_NativeState-com.idevicesinc.sweetblue.BleManager.NativeStateListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_NativeState</h4> +<pre>public void setListener_NativeState(<a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.NativeStateListener</a> listener)</pre> +<div class="block">Set a listener here to be notified whenever this manager's native <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> changes.</div> +</li> +</ul> +<a name="setListener_Advertising-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_Advertising</h4> +<pre>public void setListener_Advertising(<a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a> listener)</pre> +<div class="block">Set a listener here to be notified of the result of starting to advertise.</div> +</li> +</ul> +<a name="startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startPeriodicScan</h4> +<pre>public void startPeriodicScan(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanActiveTime, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanPauseTime)</pre> +<div class="block">Manually starts a periodic scan. This is the post-constructor runtime equivalent to setting + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime"><code>BleManagerConfig.autoScanActiveTime</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseInterval"><code>BleManagerConfig.autoScanPauseInterval</code></a>, so see + their comments for more detail. Calling this forever-after overrides the options you set + in <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime"><code>BleManagerConfig.autoScanActiveTime</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseInterval"><code>BleManagerConfig.autoScanPauseInterval</code></a>, +<a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startPeriodicScan</h4> +<pre>public void startPeriodicScan(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanActiveTime, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanPauseTime, + <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a> discoveryListener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>startPeriodicScan(Interval, Interval)</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>setListener_Discovery(BleManager.DiscoveryListener)</code></a> for you too.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startPeriodicScan</h4> +<pre>public void startPeriodicScan(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanActiveTime, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanPauseTime, + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a> filter)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>startPeriodicScan(Interval, Interval)</code></a> but adds a filter too.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startPeriodicScan</h4> +<pre>public void startPeriodicScan(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanActiveTime, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanPauseTime, + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a> filter, + <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a> discoveryListener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>startPeriodicScan(Interval, Interval)</code></a> but calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>setListener_Discovery(BleManager.DiscoveryListener)</code></a> for you too and adds a filter.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="stopPeriodicScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopPeriodicScan</h4> +<pre>public void stopPeriodicScan(<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a> filter)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan--"><code>stopPeriodicScan()</code></a> but will also unregister any <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleManagerConfig.ScanFilter</code></a> provided + through <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>startPeriodicScan(Interval, Interval, BleManagerConfig.ScanFilter)</code></a> or other overloads.</div> +</li> +</ul> +<a name="stopPeriodicScan--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopPeriodicScan</h4> +<pre>public void stopPeriodicScan()</pre> +<div class="block">Stops a periodic scan previously started either explicitly with <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>startPeriodicScan(Interval, Interval)</code></a> or through + the <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime"><code>BleManagerConfig.autoScanActiveTime</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseInterval"><code>BleManagerConfig.autoScanPauseInterval</code></a> config options.</div> +</li> +</ul> +<a name="startScan--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startScan</h4> +<pre>public boolean startScan()</pre> +<div class="block">Starts a scan that will continue indefinitely until <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopScan--"><code>stopScan()</code></a> is called.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if scan started, <code>false></code> otherwise - usually this means this manager is not <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a>.</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="startScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startScan</h4> +<pre>public boolean startScan(<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a> filter)</pre> +<div class="block">Calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>startScan(Interval, BleManagerConfig.ScanFilter)</code></a> with <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#INFINITE"><code>Interval.INFINITE</code></a>.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if scan started, <code>false></code> otherwise - usually this means this manager is not <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a>.</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="startScan-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startScan</h4> +<pre>public boolean startScan(<a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a> discoveryListener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>startScan()</code></a> but also calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>setListener_Discovery(BleManager.DiscoveryListener)</code></a> for you.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if scan started, <code>false></code> otherwise - usually this means this manager is not <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a>.</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startScan</h4> +<pre>public boolean startScan(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanTime, + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a> filter)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>startScan(Interval, BleManagerConfig.ScanFilter, BleManager.DiscoveryListener)</code></a></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if scan started, <code>false></code> otherwise - usually this means this manager is not <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a>.</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startScan</h4> +<pre>public boolean startScan(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanTime, + <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a> discoveryListener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>startScan(Interval, BleManagerConfig.ScanFilter, BleManager.DiscoveryListener)</code></a></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if scan started, <code>false></code> otherwise - usually this means this manager is not <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a>.</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="startScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startScan</h4> +<pre>public boolean startScan(<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a> filter, + <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a> discoveryListener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>startScan()</code></a> but also calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>setListener_Discovery(BleManager.DiscoveryListener)</code></a> for you.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if scan started, <code>false></code> otherwise - usually this means this manager is not <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a>.</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="startScan-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startScan</h4> +<pre>public boolean startScan(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanTime)</pre> +<div class="block">Starts a scan that will generally last for the given time (roughly).</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if scan started, <code>false></code> otherwise - usually this means this manager is not <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a>.</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startScan</h4> +<pre>public boolean startScan(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanTime, + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a> filter, + <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a> discoveryListener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-"><code>startScan(Interval)</code></a> but also calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>setListener_Discovery(BleManager.DiscoveryListener)</code></a> for you. + <br><br> + WARNING: For <a href="http://d.android.com/reference/android/os/Build.VERSION_CODES.html?is-external=true#M" title="class or interface in android.os"><code>Build.VERSION_CODES.M</code></a> and up, in order for this method to return scan events + through <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleManagerConfig.ScanFilter</code></a> you must have <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#ACCESS_COARSE_LOCATION" title="class or interface in android"><code>Manifest.permission.ACCESS_COARSE_LOCATION</code></a> or <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#ACCESS_FINE_LOCATION" title="class or interface in android"><code>Manifest.permission.ACCESS_FINE_LOCATION</code></a> + in your AndroidManifest.xml, AND enabled at runtime (see <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byRuntimePermissions--"><code>isLocationEnabledForScanning_byRuntimePermissions()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forPermissions-android.app.Activity-int-"><code>turnOnLocationWithIntent_forPermissions(Activity, int)</code></a>), + AND location services should be enabled (see <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byOsServices--"><code>isLocationEnabledForScanning_byOsServices()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byOsServices--"><code>isLocationEnabledForScanning_byOsServices()</code></a>). + <br><br> + The assumed reason why location must be enabled is that an app might scan for bluetooth devices like iBeacons with known physical locations and unique advertisement packets. + Knowing the physical locations, the app could report back that you're definitely within ~50 ft. of a given longitude and latitude. With multiple beacons involved and/or fine-tuned RSSI-based + distance calculations the location could get pretty accurate. For example a department store app could sprinkle a few dozen beacons throughout its store and + if you had their app running they would know exactly where you are. Not an everyday concern, and it makes BLE even more annoying to implement on Android, + but Google is understandably erring on the side of privacy and security for its users.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if scan started, <code>false></code> otherwise - usually this means this manager is not <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a>.</dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="pushWakeLock--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>pushWakeLock</h4> +<pre>public void pushWakeLock()</pre> +<div class="block">Requires the <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#WAKE_LOCK" title="class or interface in android"><code>Manifest.permission.WAKE_LOCK</code></a> permission. Gives you access to the internal + wake lock as a convenience and eventually calls <a href="http://d.android.com/reference/android/os/PowerManager.WakeLock.html?is-external=true#acquire--" title="class or interface in android.os"><code>PowerManager.WakeLock.acquire()</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#manageCpuWakeLock"><code>BleManagerConfig.manageCpuWakeLock</code></a></dd> +</dl> +</li> +</ul> +<a name="popWakeLock--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>popWakeLock</h4> +<pre>public void popWakeLock()</pre> +<div class="block">Opposite of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#pushWakeLock--"><code>pushWakeLock()</code></a>, eventually calls <a href="http://d.android.com/reference/android/os/PowerManager.WakeLock.html?is-external=true#release--" title="class or interface in android.os"><code>PowerManager.WakeLock.release()</code></a>.</div> +</li> +</ul> +<a name="ASSERT-boolean-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ASSERT</h4> +<pre>public boolean ASSERT(boolean condition)</pre> +<div class="block">Fires a callback to <a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleManager.AssertListener</code></a> if condition is false. Will post a <a href="http://d.android.com/reference/android/util/Log.html?is-external=true#ERROR" title="class or interface in android.util"><code>Log.ERROR</code></a>-level + message with a stack trace to the console as well if <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#loggingEnabled"><code>BleManagerConfig.loggingEnabled</code></a> is true.</div> +</li> +</ul> +<a name="ASSERT-boolean-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ASSERT</h4> +<pre>public boolean ASSERT(boolean condition, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> message)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#ASSERT-boolean-"><code>ASSERT(boolean)</code></a> but with an added message.</div> +</li> +</ul> +<a name="getStateMask--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getStateMask</h4> +<pre>public int getStateMask()</pre> +<div class="block">Returns the abstracted bitwise state mask representation of <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> for this device.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a></dd> +</dl> +</li> +</ul> +<a name="getNativeStateMask--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeStateMask</h4> +<pre>public int getNativeStateMask()</pre> +<div class="block">Returns the native bitwise state mask representation of <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> for this device. + Similar to calling <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#getState--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.getState()</code></a></div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a></dd> +</dl> +</li> +</ul> +<a name="turnOn--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>turnOn</h4> +<pre>public void turnOn()</pre> +<div class="block">Enables BLE if manager is currently <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#TURNING_OFF"><code>BleManagerState.TURNING_OFF</code></a>, otherwise does nothing. + For a convenient way to ask your user first see <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOnWithIntent-android.app.Activity-int-"><code>turnOnWithIntent(android.app.Activity, int)</code></a>.</div> +</li> +</ul> +<a name="reset--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>reset</h4> +<pre>public void reset()</pre> +<div class="block">This is essentially a big red reset button for the Bluetooth stack. Use it ruthlessly + when the stack seems to be acting up, like when you can't connect to a device that you should be + able to connect to. It's similar to calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOff--"><code>turnOff()</code></a> then <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOn--"><code>turnOn()</code></a>, + but also does other things like removing all bonds (similar to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#unbondAll--"><code>unbondAll()</code></a>) and + other "special sauce" such that you should use this method instead of trying to reset the + stack manually with component calls. + <br><br> + It's good app etiquette to first prompt the user to get permission to reset because + it will affect Bluetooth system-wide and in other apps.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#RESETTING"><code>BleManagerState.RESETTING</code></a></dd> +</dl> +</li> +</ul> +<a name="reset-com.idevicesinc.sweetblue.BleManager.ResetListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>reset</h4> +<pre>public void reset(<a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.ResetListener</a> listener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>reset()</code></a> but with a convenience callback for when the reset is + completed and the native BLE stack is (should be) back to normal.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#RESETTING"><code>BleManagerState.RESETTING</code></a></dd> +</dl> +</li> +</ul> +<a name="unbondAll--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>unbondAll</h4> +<pre>public void unbondAll()</pre> +<div class="block">Removes bonds for all devices that are <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDED"><code>BleDeviceState.BONDED</code></a>. + Essentially a convenience method for calling <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#unbond--"><code>BleDevice.unbond()</code></a>, + on each device individually.</div> +</li> +</ul> +<a name="disconnectAll--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disconnectAll</h4> +<pre>public void disconnectAll()</pre> +<div class="block">Disconnects all devices that are <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>. + Essentially a convenience method for calling <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disconnect--"><code>BleDevice.disconnect()</code></a>, + on each device individually.</div> +</li> +</ul> +<a name="disconnectAll_remote--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disconnectAll_remote</h4> +<pre>public void disconnectAll_remote()</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#disconnectAll--"><code>disconnectAll()</code></a> but drills down to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disconnect_remote--"><code>BleDevice.disconnect_remote()</code></a> instead.</div> +</li> +</ul> +<a name="undiscoverAll--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>undiscoverAll</h4> +<pre>public void undiscoverAll()</pre> +<div class="block">Undiscovers all devices that are <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCOVERED"><code>BleDeviceState.DISCOVERED</code></a>. + Essentially a convenience method for calling <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#undiscover--"><code>BleDevice.undiscover()</code></a>, + on each device individually.</div> +</li> +</ul> +<a name="turnOnLocationWithIntent_forOsServices-android.app.Activity-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>turnOnLocationWithIntent_forOsServices</h4> +<pre>public void turnOnLocationWithIntent_forOsServices(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> callingActivity, + int requestCode)</pre> +<div class="block">If <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byOsServices--"><code>isLocationEnabledForScanning_byOsServices()</code></a> returns <code>false</code>, you can use this method to allow the user to enable location services. + <br><br> + NOTE: If <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byOsServices--"><code>isLocationEnabledForScanning_byOsServices()</code></a> returns <code>false</code> but all other overloads of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning--"><code>isLocationEnabledForScanning()</code></a> return <code>true</code> then + SweetBlue will fall back to classic discovery through <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startDiscovery--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startDiscovery()</code></a> when you call <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>startScan()</code></a> or overloads, so you may not have to use this.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byOsServices--"><code>isLocationEnabledForScanning_byOsServices()</code></a>, +<a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="turnOnLocationWithIntent_forOsServices-android.app.Activity-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>turnOnLocationWithIntent_forOsServices</h4> +<pre>public void turnOnLocationWithIntent_forOsServices(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> callingActivity)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forOsServices-android.app.Activity-int-"><code>turnOnLocationWithIntent_forOsServices(Activity, int)</code></a> if you don't care about result.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="willLocationPermissionSystemDialogBeShown-android.app.Activity-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>willLocationPermissionSystemDialogBeShown</h4> +<pre>public boolean willLocationPermissionSystemDialogBeShown(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> callingActivity)</pre> +<div class="block">Returns <code>true</code> if <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forPermissions-android.app.Activity-int-"><code>turnOnLocationWithIntent_forPermissions(Activity, int)</code></a> will pop a system dialog, <code>false</code> if it will bring + you to the OS's Application Settings. The <code>true</code> case happens if the app has never shown a request Location Permissions dialog or has shown a request Location Permission dialog and the user has yet to select "Never ask again". This method is used to weed out the false + negative from <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true#shouldShowRequestPermissionRationale-java.lang.String-" title="class or interface in android.app"><code>Activity.shouldShowRequestPermissionRationale(String)</code></a> when the Location Permission has never been requested. Make sure to use this in conjunction with <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byRuntimePermissions--"><code>isLocationEnabledForScanning_byRuntimePermissions()</code></a> + which will tell you if permissions are already enabled.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="turnOnLocationWithIntent_forPermissions-android.app.Activity-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>turnOnLocationWithIntent_forPermissions</h4> +<pre>public void turnOnLocationWithIntent_forPermissions(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> callingActivity, + int requestCode)</pre> +<div class="block">If <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byOsServices--"><code>isLocationEnabledForScanning_byOsServices()</code></a> returns <code>false</code>, you can use this method to allow the user to enable location + through an OS intent. The result of the request (i.e. what the user chose) is passed back through <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true#onRequestPermissionsResult-int-java.lang.String:A-int:A-" title="class or interface in android.app"><code>Activity.onRequestPermissionsResult(int, String[], int[])</code></a> + with the requestCode provided as the second parameter to this method. If the user selected "Never ask again" the function will open up the app settings screen where the + user can navigate to enable the permissions.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byRuntimePermissions--"><code>isLocationEnabledForScanning_byRuntimePermissions()</code></a>, +<a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="isScanningReady--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isScanningReady</h4> +<pre>public boolean isScanningReady()</pre> +<div class="block">Tells you whether a call to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>startScan()</code></a> (or overloads), will succeed or not. Basically a convenience for checking if both + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning--"><code>isLocationEnabledForScanning()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManager.html#is-com.idevicesinc.sweetblue.BleManagerState-"><code>is(BleManagerState)</code></a> with <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#SCANNING"><code>BleManagerState.SCANNING</code></a> return <code>true</code>.</div> +</li> +</ul> +<a name="isLocationEnabledForScanning--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isLocationEnabledForScanning</h4> +<pre>public boolean isLocationEnabledForScanning()</pre> +<div class="block">Returns <code>true</code> if location is enabled to a degree that allows scanning on <a href="http://d.android.com/reference/android/os/Build.VERSION_CODES.html?is-external=true#M" title="class or interface in android.os"><code>Build.VERSION_CODES.M</code></a> and above. + If this returns <code>false</code> it means you're on Android M and you either (A) do not have <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#ACCESS_COARSE_LOCATION" title="class or interface in android"><code>Manifest.permission.ACCESS_COARSE_LOCATION</code></a> + (or <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#ACCESS_FINE_LOCATION" title="class or interface in android"><code>Manifest.permission.ACCESS_FINE_LOCATION</code></a> in your AndroidManifest.xml, see <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byManifestPermissions--"><code>isLocationEnabledForScanning_byManifestPermissions()</code></a>), or (B) + runtime permissions for aformentioned location permissions are off (see <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byRuntimePermissions--"><code>isLocationEnabledForScanning_byRuntimePermissions()</code></a> and + https://developer.android.com/training/permissions/index.html), or (C) location services on the phone are disabled (see <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byOsServices--"><code>isLocationEnabledForScanning_byOsServices()</code></a>). + <br><br> + If this returns <code>true</code> then you are good to go for calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>startScan()</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>startScan(Interval, BleManagerConfig.ScanFilter, DiscoveryListener)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forPermissions-android.app.Activity-int-"><code>turnOnLocationWithIntent_forPermissions(Activity, int)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forOsServices-android.app.Activity-"><code>turnOnLocationWithIntent_forOsServices(Activity)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forOsServices-android.app.Activity-int-"><code>turnOnLocationWithIntent_forOsServices(Activity, int)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="isLocationEnabledForScanning_byManifestPermissions--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isLocationEnabledForScanning_byManifestPermissions</h4> +<pre>public boolean isLocationEnabledForScanning_byManifestPermissions()</pre> +<div class="block">Returns <code>true</code> if you're either pre-Android-M, or app has permission for either <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#ACCESS_COARSE_LOCATION" title="class or interface in android"><code>Manifest.permission.ACCESS_COARSE_LOCATION</code></a> + or <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#ACCESS_FINE_LOCATION" title="class or interface in android"><code>Manifest.permission.ACCESS_FINE_LOCATION</code></a> in your AndroidManifest.xml, <code>false</code> otherwise.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>startScan(Interval, BleManagerConfig.ScanFilter, DiscoveryListener)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="isLocationEnabledForScanning_byRuntimePermissions--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isLocationEnabledForScanning_byRuntimePermissions</h4> +<pre>public boolean isLocationEnabledForScanning_byRuntimePermissions()</pre> +<div class="block">Returns <code>true</code> if you're either pre-Android-M, or app has runtime permissions enabled by checking + <a href="https://developer.android.com/reference/android/support/v4/content/ContextCompat.html#checkSelfPermission(android.content.Context, java.lang.String)"</a> * + See more information at https://developer.android.com/training/permissions/index.html.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>startScan(Interval, BleManagerConfig.ScanFilter, DiscoveryListener)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forPermissions-android.app.Activity-int-"><code>turnOnLocationWithIntent_forPermissions(Activity, int)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="isLocationEnabledForScanning_byOsServices--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isLocationEnabledForScanning_byOsServices</h4> +<pre>public boolean isLocationEnabledForScanning_byOsServices()</pre> +<div class="block">Returns <code>true</code> if you're either pre-Android-M, or location services are enabled, the same is if you go to the Android Settings app + and manually toggle Location ON/OFF. + <br><br> + NOTE: If this returns <code>false</code> but all other overloads of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning--"><code>isLocationEnabledForScanning()</code></a> return <code>true</code> then + SweetBlue will fall back to classic discovery through <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startDiscovery--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startDiscovery()</code></a> when you call <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>startScan()</code></a> or overloads.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>startScan(Interval, BleManagerConfig.ScanFilter, DiscoveryListener)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forOsServices-android.app.Activity-"><code>turnOnLocationWithIntent_forOsServices(Activity)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forOsServices-android.app.Activity-int-"><code>turnOnLocationWithIntent_forOsServices(Activity, int)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="turnOnWithIntent-android.app.Activity-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>turnOnWithIntent</h4> +<pre>public void turnOnWithIntent(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> callingActivity, + int requestCode)</pre> +<div class="block">Convenience method to request your user to enable ble in a "standard" way + with an <a href="http://d.android.com/reference/android/content/Intent.html?is-external=true" title="class or interface in android.content"><code>Intent</code></a> instead of using <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOn--"><code>turnOn()</code></a> directly. + Result will be posted as normal to <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true#onActivityResult-int-int-android.content.Intent-" title="class or interface in android.app"><code>Activity.onActivityResult(int, int, Intent)</code></a>. + If current state is <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#TURNING_ON"><code>BleManagerState.TURNING_ON</code></a> + this method early outs and does nothing.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a></dd> +</dl> +</li> +</ul> +<a name="onResume--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>onResume</h4> +<pre>public void onResume()</pre> +<div class="block">Opposite of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#onPause--"><code>onPause()</code></a>, to be called from your override of <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true#onResume--" title="class or interface in android.app"><code>Activity.onResume()</code></a> for each <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app"><code>Activity</code></a> + in your application. See comment for <a href="../../../com/idevicesinc/sweetblue/BleManager.html#onPause--"><code>onPause()</code></a> for a similar explanation for why you should call this method.</div> +</li> +</ul> +<a name="onPause--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>onPause</h4> +<pre>public void onPause()</pre> +<div class="block">It's generally recommended to call this in your override of <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true#onPause--" title="class or interface in android.app"><code>Activity.onPause()</code></a> for each <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app"><code>Activity</code></a> + in your application. This doesn't do much for now, just a little bookkeeping and stops scan automatically if + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#stopScanOnPause"><code>BleManagerConfig.stopScanOnPause</code></a> is <code>true</code>. Strictly speaking you don't *have* to call this method, + but another good reason is for future-proofing. Later releases of this library may do other more important things + in this method so it's good to have it being called just in case.</div> +</li> +</ul> +<a name="getApplicationContext--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getApplicationContext</h4> +<pre>public <a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> getApplicationContext()</pre> +<div class="block">Returns the <a href="http://d.android.com/reference/android/app/Application.html?is-external=true" title="class or interface in android.app"><code>Application</code></a> provided to the constructor.</div> +</li> +</ul> +<a name="stopAllScanning--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopAllScanning</h4> +<pre>public void stopAllScanning()</pre> +<div class="block">Convenience that will call both <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan--"><code>stopPeriodicScan()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopScan--"><code>stopScan()</code></a> for you.</div> +</li> +</ul> +<a name="stopScan--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopScan</h4> +<pre>public void stopScan()</pre> +<div class="block">Stops a scan previously started by <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>startScan()</code></a> or its various overloads. + This will also stop the actual scan operation itself that may be ongoing due to + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>startPeriodicScan(Interval, Interval)</code></a> or defined by <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime"><code>BleManagerConfig.autoScanActiveTime</code></a>, + but scanning in general will still continue periodically until you call <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan--"><code>stopPeriodicScan()</code></a>.</div> +</li> +</ul> +<a name="stopScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopScan</h4> +<pre>public void stopScan(<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a> filter)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopScan--"><code>stopScan()</code></a> but also unregisters any filter supplied to various overloads of + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>startScan()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>startPeriodicScan(Interval, Interval)</code></a> that take an <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleManagerConfig.ScanFilter</code></a>. + Calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopScan--"><code>stopScan()</code></a> alone will keep any previously registered filters active.</div> +</li> +</ul> +<a name="getDevice-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevice</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getDevice(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</pre> +<div class="block">Gets a known <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCOVERED"><code>BleDeviceState.DISCOVERED</code></a> device by MAC address, or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> if there is no such device.</div> +</li> +</ul> +<a name="hasDevice-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasDevice</h4> +<pre>public boolean hasDevice(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</pre> +<div class="block">Shortcut for checking if <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice-java.lang.String-"><code>getDevice(String)</code></a> returns <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a>.</div> +</li> +</ul> +<a name="hasDevice-com.idevicesinc.sweetblue.BleDevice-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasDevice</h4> +<pre>public boolean hasDevice(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</pre> +<div class="block">Calls <a href="../../../com/idevicesinc/sweetblue/BleManager.html#hasDevice-java.lang.String-"><code>hasDevice(String)</code></a>.</div> +</li> +</ul> +<a name="getDevice-com.idevicesinc.sweetblue.BleDeviceState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevice</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getDevice(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</pre> +<div class="block">Returns the first device that is in the given state, or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> if no match is found.</div> +</li> +</ul> +<a name="hasDevice-com.idevicesinc.sweetblue.BleDeviceState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasDevice</h4> +<pre>public boolean hasDevice(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</pre> +<div class="block">Returns true if we have a device in the given state.</div> +</li> +</ul> +<a name="getDevice--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevice</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getDevice()</pre> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDeviceAt-int-"><code>getDeviceAt(int)</code></a> with index of 0.</div> +</li> +</ul> +<a name="getDevice-java.lang.Object...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevice</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getDevice(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</pre> +<div class="block">Returns the first device that matches the query, or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> if no match is found. + See <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#is-java.lang.Object...-"><code>BleDevice.is(Object...)</code></a> for the query format.</div> +</li> +</ul> +<a name="hasDevice-java.lang.Object...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasDevice</h4> +<pre>public boolean hasDevice(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</pre> +<div class="block">Returns true if we have a device that matches the given query. + See <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#is-java.lang.Object...-"><code>BleDevice.is(Object...)</code></a> for the query format.</div> +</li> +</ul> +<a name="getDevice-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevice</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getDevice(int mask_BleDeviceState)</pre> +<div class="block">Returns the first device which returns <code>true</code> for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isAny-int-"><code>BleDevice.isAny(int)</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> if no such device is found.</div> +</li> +</ul> +<a name="hasDevice-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasDevice</h4> +<pre>public boolean hasDevice(int mask_BleDeviceState)</pre> +<div class="block">Returns <code>true</code> if there is any <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> for which <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isAny-int-"><code>BleDevice.isAny(int)</code></a> with the given mask returns <code>true</code>.</div> +</li> +</ul> +<a name="getDevices-com.idevicesinc.sweetblue.utils.ForEach_Void-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices</h4> +<pre>public void getDevices(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> forEach)</pre> +<div class="block">Offers a more "functional" means of iterating through the internal list of devices instead of + using <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices--"><code>getDevices()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_List--"><code>getDevices_List()</code></a>.</div> +</li> +</ul> +<a name="getDevices-com.idevicesinc.sweetblue.utils.ForEach_Void-com.idevicesinc.sweetblue.BleDeviceState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices</h4> +<pre>public void getDevices(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> forEach, + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.utils.ForEach_Void-"><code>getDevices(ForEach_Void)</code></a> but will only return devices + in the given state provided.</div> +</li> +</ul> +<a name="getDevices-com.idevicesinc.sweetblue.utils.ForEach_Breakable-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices</h4> +<pre>public void getDevices(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> forEach)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.utils.ForEach_Void-"><code>getDevices(ForEach_Void)</code></a> + if you need to break out of the iteration at any point.</div> +</li> +</ul> +<a name="getDevices-com.idevicesinc.sweetblue.utils.ForEach_Breakable-com.idevicesinc.sweetblue.BleDeviceState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices</h4> +<pre>public void getDevices(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> forEach, + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.utils.ForEach_Void-com.idevicesinc.sweetblue.BleDeviceState-"><code>getDevices(ForEach_Void, BleDeviceState)</code></a> + if you need to break out of the iteration at any point.</div> +</li> +</ul> +<a name="getDevices_previouslyConnected--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices_previouslyConnected</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> getDevices_previouslyConnected()</pre> +<div class="block">Returns the mac addresses of all devices that we know about from both current and previous + app sessions.</div> +</li> +</ul> +<a name="getDevices_bonded--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices_bonded</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> getDevices_bonded()</pre> +<div class="block">Convenience method to return a <a href="http://d.android.com/reference/java/util/Set.html?is-external=true" title="class or interface in java.util"><code>Set</code></a> of currently bonded devices. This simply calls + <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#getBondedDevices--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.getBondedDevices()</code></a>, and wraps all bonded devices into separate + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> classes.</div> +</li> +</ul> +<a name="getDevices--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue">BleDeviceIterator</a> getDevices()</pre> +<div class="block">Returns all the devices managed by this class. This generally includes all devices that are either. + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#ADVERTISING"><code>BleDeviceState.ADVERTISING</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>.</div> +</li> +</ul> +<a name="getDevices_sorted--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices_sorted</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue">BleDeviceIterator</a> getDevices_sorted()</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices--"><code>getDevices()</code></a>, but with the devices sorted using <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#defaultListComparator"><code>BleManagerConfig.defaultListComparator</code></a>, which + by default sorts by <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_debug--"><code>BleDevice.getName_debug()</code></a>.</div> +</li> +</ul> +<a name="getDevices_List--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices_List</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> getDevices_List()</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices--"><code>getDevices()</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</li> +</ul> +<a name="getDevices_List_sorted--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices_List_sorted</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> getDevices_List_sorted()</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_List--"><code>getDevices_List()</code></a>, but sorts the list using <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#defaultListComparator"><code>BleManagerConfig.defaultListComparator</code></a>.</div> +</li> +</ul> +<a name="getDeviceCount--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDeviceCount</h4> +<pre>public int getDeviceCount()</pre> +<div class="block">Returns the total number of devices this manager is...managing. + This includes all devices that are <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCOVERED"><code>BleDeviceState.DISCOVERED</code></a>.</div> +</li> +</ul> +<a name="getDeviceCount-com.idevicesinc.sweetblue.BleDeviceState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDeviceCount</h4> +<pre>public int getDeviceCount(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</pre> +<div class="block">Returns the number of devices that are in the current state.</div> +</li> +</ul> +<a name="getDeviceCount-java.lang.Object...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDeviceCount</h4> +<pre>public int getDeviceCount(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</pre> +<div class="block">Returns the number of devices that match the given query. + See <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#is-java.lang.Object...-"><code>BleDevice.is(Object...)</code></a> for the query format.</div> +</li> +</ul> +<a name="getDeviceAt-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDeviceAt</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getDeviceAt(int index)</pre> +<div class="block">Accessor into the underlying array used to store <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> instances. + Combine with <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDeviceCount--"><code>getDeviceCount()</code></a> to iterate, or you may want to use the + <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util"><code>Iterator</code></a> returned from <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices--"><code>getDevices()</code></a> and its various overloads instead.</div> +</li> +</ul> +<a name="getDeviceIndex-com.idevicesinc.sweetblue.BleDevice-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDeviceIndex</h4> +<pre>public int getDeviceIndex(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</pre> +<div class="block">Returns the index of this device in the internal list, or -1 if it's not found.</div> +</li> +</ul> +<a name="getDevice_previous-com.idevicesinc.sweetblue.BleDevice-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevice_previous</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getDevice_previous(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</pre> +</li> +</ul> +<a name="getDevice_next-com.idevicesinc.sweetblue.BleDevice-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevice_next</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getDevice_next(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>getDevice_next(BleDevice, BleDeviceState)</code></a> but just returns the next device in the internal list + with no state checking.</div> +</li> +</ul> +<a name="getDevice_previous-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevice_previous</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getDevice_previous(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device, + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</pre> +<div class="block">Returns the first device previous to the provided one in the internal list that is in the given state. For various fringe cases like + this manager not having any devices, this method returns <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a>. This method wraps + around so that if the provided device is at index 0, the returned device will be the last device this manager holds.</div> +</li> +</ul> +<a name="getDevice_next-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevice_next</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getDevice_next(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device, + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>getDevice_previous(BleDevice, BleDeviceState)</code></a> but returns the next device in the internal list + with no state checking.</div> +</li> +</ul> +<a name="getDevice_previous-com.idevicesinc.sweetblue.BleDevice-java.lang.Object...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevice_previous</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getDevice_previous(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>getDevice_previous(BleDevice, BleDeviceState)</code></a> but allows you to pass a query. + See <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#is-java.lang.Object...-"><code>BleDevice.is(Object...)</code></a> for the query format.</div> +</li> +</ul> +<a name="getDevice_next-com.idevicesinc.sweetblue.BleDevice-java.lang.Object...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevice_next</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getDevice_next(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>getDevice_next(BleDevice, BleDeviceState)</code></a> but allows you to pass a query. + See <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#is-java.lang.Object...-"><code>BleDevice.is(Object...)</code></a> for the query format.</div> +</li> +</ul> +<a name="hasDevices--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasDevices</h4> +<pre>public boolean hasDevices()</pre> +<div class="block">Returns whether we have any devices. For example if you have never called <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>startScan()</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-"><code>newDevice(String)</code></a> (or overloads) then this will return false.</div> +</li> +</ul> +<a name="getDevices-com.idevicesinc.sweetblue.BleDeviceState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue">BleDeviceIterator</a> getDevices(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>getDevice(BleDeviceState)</code></a> except returns all matching devices.</div> +</li> +</ul> +<a name="getDevices_List-com.idevicesinc.sweetblue.BleDeviceState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices_List</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> getDevices_List(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.BleDeviceState-"><code>getDevices(BleDeviceState)</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</li> +</ul> +<a name="getDevices_List_sorted-com.idevicesinc.sweetblue.BleDeviceState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices_List_sorted</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> getDevices_List_sorted(<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a> state)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_List-com.idevicesinc.sweetblue.BleDeviceState-"><code>getDevices_List(BleDeviceState)</code></a> except the list is sorted using <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#defaultListComparator"><code>BleManagerConfig.defaultListComparator</code></a>.</div> +</li> +</ul> +<a name="getDevices-java.lang.Object...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue">BleDeviceIterator</a> getDevices(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevice-java.lang.Object...-"><code>getDevice(Object...)</code></a> except returns all matching devices. + See <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#is-java.lang.Object...-"><code>BleDevice.is(Object...)</code></a> for the query format.</div> +</li> +</ul> +<a name="getDevices_List-java.lang.Object...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices_List</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> getDevices_List(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-java.lang.Object...-"><code>getDevices(Object...)</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</li> +</ul> +<a name="getDevices_List_sorted-java.lang.Object...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices_List_sorted</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> getDevices_List_sorted(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_List-java.lang.Object...-"><code>getDevices_List(Object...)</code></a> except the list is sorted using <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#defaultListComparator"><code>BleManagerConfig.defaultListComparator</code></a>.</div> +</li> +</ul> +<a name="getDevices-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue">BleDeviceIterator</a> getDevices(int mask_BleDeviceState)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices--"><code>getDevices()</code></a> except filters using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isAny-int-"><code>BleDevice.isAny(int)</code></a>.</div> +</li> +</ul> +<a name="getDevices_List-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices_List</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> getDevices_List(int mask_BleDeviceState)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices-int-"><code>getDevices(int)</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</li> +</ul> +<a name="getDevices_List_sorted-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevices_List_sorted</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> getDevices_List_sorted(int mask_BleDeviceState)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices_List-int-"><code>getDevices_List(int)</code></a> except the list is sorted using <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#defaultListComparator"><code>BleManagerConfig.defaultListComparator</code></a>.</div> +</li> +</ul> +<a name="newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newHistoricalData</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> newHistoricalData(byte[] data, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime)</pre> +<div class="block">Returns a new <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> instance using + <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataFactory"><code>BleNodeConfig.historicalDataFactory</code></a> if available.</div> +</li> +</ul> +<a name="newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newHistoricalData</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> newHistoricalData(byte[] data, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>newHistoricalData(byte[], EpochTime)</code></a> but tries to use + <a href="../../../com/idevicesinc/sweetblue/BleNode.html#newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>BleNode.newHistoricalData(byte[], EpochTime)</code></a> if we have a device + matching the given mac address.</div> +</li> +</ul> +<a name="getServer--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getServer</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a> getServer()</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getServer-com.idevicesinc.sweetblue.BleServer.IncomingListener-"><code>getServer(BleServer.IncomingListener)</code></a> without any initial set-up parameters.</div> +</li> +</ul> +<a name="getServer-com.idevicesinc.sweetblue.BleServer.IncomingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getServer</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a> getServer(<a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.IncomingListener</a> incomingListener)</pre> +<div class="block">Returns a <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> instance. which for now at least is a singleton.</div> +</li> +</ul> +<a name="newDevice-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newDevice</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> newDevice(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-java.lang.String-com.idevicesinc.sweetblue.BleDeviceConfig-"><code>newDevice(String, String, BleDeviceConfig)</code></a> but uses an empty string for the name + and passes a <code>null</code> <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a>, which results in inherited options from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a>.</div> +</li> +</ul> +<a name="newDevice-java.lang.String-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newDevice</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> newDevice(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-"><code>newDevice(String)</code></a> but allows a custom name also.</div> +</li> +</ul> +<a name="newDevice-java.lang.String-com.idevicesinc.sweetblue.BleDeviceConfig-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newDevice</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> newDevice(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a> config)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-"><code>newDevice(String)</code></a> but passes a <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> to be used as well.</div> +</li> +</ul> +<a name="newDevice-java.lang.String-java.lang.String-com.idevicesinc.sweetblue.BleDeviceConfig-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newDevice</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> newDevice(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name, + <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a> config)</pre> +<div class="block">Creates a new <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> or returns an existing one if the macAddress matches. + <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"><code>BleManager.DiscoveryListener.onEvent(DiscoveryEvent)</code></a> will be called if a new device + is created. + <br><br> + NOTE: You should always do a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#isNull--"><code>BleDevice.isNull()</code></a> check on this method's return value just in case. Android + documentation says that underlying stack will always return a valid <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothDevice</code></a> + instance (which is required to create a valid <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> instance), but you really never know.</div> +</li> +</ul> +<a name="undiscover-com.idevicesinc.sweetblue.BleDevice-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>undiscover</h4> +<pre>public boolean undiscover(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</pre> +<div class="block">Forcefully undiscovers a device, disconnecting it first if needed and removing it from this manager's internal list. + <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"><code>BleManager.DiscoveryListener.onEvent(DiscoveryEvent)</code></a> with <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#UNDISCOVERED"><code>BleManager.DiscoveryListener.LifeCycle.UNDISCOVERED</code></a> will be called. + No clear use case has been thought of but the method is here just in case anyway.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>true</code> if the device was undiscovered, <code>false</code> if device is already <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#UNDISCOVERED"><code>BleDeviceState.UNDISCOVERED</code></a> or manager + doesn't contain an instance, checked referentially, not through <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#equals-com.idevicesinc.sweetblue.BleDevice-"><code>BleDevice.equals(BleDevice)</code></a> (i.e. by mac address).</dd> +</dl> +</li> +</ul> +<a name="clearQueue--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearQueue</h4> +<pre>public void clearQueue()</pre> +<div class="block">This method will clear the task queue of all tasks. + NOTE: This can really mess things up, especially if you're currently trying to connect to a device. Only use this if you absolutely have to!</div> +</li> +</ul> +<a name="clearSharedPreferences-com.idevicesinc.sweetblue.BleDevice-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearSharedPreferences</h4> +<pre>public void clearSharedPreferences(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</pre> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#clearSharedPreferences-java.lang.String-"><code>clearSharedPreferences(String)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#clearSharedPreferences-java.lang.String-"><code>clearSharedPreferences(String)</code></a></dd> +</dl> +</li> +</ul> +<a name="clearSharedPreferences-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearSharedPreferences</h4> +<pre>public void clearSharedPreferences(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</pre> +<div class="block">Clears all data currently being held in <a href="http://d.android.com/reference/android/content/SharedPreferences.html?is-external=true" title="class or interface in android.content"><code>SharedPreferences</code></a> for a particular device.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#manageLastDisconnectOnDisk"><code>BleDeviceConfig.manageLastDisconnectOnDisk</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#tryBondingWhileDisconnected_manageOnDisk"><code>BleDeviceConfig.tryBondingWhileDisconnected_manageOnDisk</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#saveNameChangesToDisk"><code>BleDeviceConfig.saveNameChangesToDisk</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleManager.html#clearSharedPreferences--"><code>clearSharedPreferences()</code></a></dd> +</dl> +</li> +</ul> +<a name="clearSharedPreferences--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearSharedPreferences</h4> +<pre>public void clearSharedPreferences()</pre> +<div class="block">Clears all data currently being held in <a href="http://d.android.com/reference/android/content/SharedPreferences.html?is-external=true" title="class or interface in android.content"><code>SharedPreferences</code></a> for all devices.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#manageLastDisconnectOnDisk"><code>BleDeviceConfig.manageLastDisconnectOnDisk</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#tryBondingWhileDisconnected_manageOnDisk"><code>BleDeviceConfig.tryBondingWhileDisconnected_manageOnDisk</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#saveNameChangesToDisk"><code>BleDeviceConfig.saveNameChangesToDisk</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleManager.html#clearSharedPreferences-java.lang.String-"><code>clearSharedPreferences(String)</code></a></dd> +</dl> +</li> +</ul> +<a name="getUpdateLoop--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getUpdateLoop</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a> getUpdateLoop()</pre> +</li> +</ul> +<a name="update-double-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>update</h4> +<pre>public void update(double timeStep_seconds)</pre> +<div class="block">This method is made public in case you want to tie the library in to an update loop + from another codebase. Generally you should leave <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoUpdateRate"><code>BleManagerConfig.autoUpdateRate</code></a> + alone and let the library handle the calling of this method.</div> +</li> +</ul> +<a name="isForegrounded--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isForegrounded</h4> +<pre>public boolean isForegrounded()</pre> +<div class="block">Returns this manager's knowledge of the app's foreground state, which must be + controlled manually from appland through <a href="../../../com/idevicesinc/sweetblue/BleManager.html#onResume--"><code>onResume()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManager.html#onPause--"><code>onPause()</code></a>.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManager.html" target="_top">Frames</a></li> +<li><a href="BleManager.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html new file mode 100644 index 0000000000000000000000000000000000000000..0be8573a7e7d1e62a6423e1baac00fb03ea7be7f --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html @@ -0,0 +1,318 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManagerConfig.DefaultScanFilter (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManagerConfig.DefaultScanFilter (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" target="_top">Frames</a></li> +<li><a href="BleManagerConfig.DefaultScanFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleManagerConfig.DefaultScanFilter" class="title">Class BleManagerConfig.DefaultScanFilter</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleManagerConfig.DefaultScanFilter</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleManagerConfig.DefaultScanFilter</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a></pre> +<div class="block">Convenience implementation of <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleManagerConfig.ScanFilter</code></a> which filters using + a whitelist of known primary advertising <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>s passed in to the constructor.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a>, <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></code></li> +</ul> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html#DefaultScanFilter-java.util.Collection-">DefaultScanFilter</a></span>(<a href="http://d.android.com/reference/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> whitelist)</code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html#DefaultScanFilter-java.util.UUID-">DefaultScanFilter</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> whitelist)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a> e)</code> +<div class="block">Acknowledges the discovery if there's an overlap between the given advertisedServices + and the <a href="http://d.android.com/reference/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a> passed into the constructor of <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig.DefaultScanFilter</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="DefaultScanFilter-java.util.Collection-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DefaultScanFilter</h4> +<pre>public DefaultScanFilter(<a href="http://d.android.com/reference/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> whitelist)</pre> +</li> +</ul> +<a name="DefaultScanFilter-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>DefaultScanFilter</h4> +<pre>public DefaultScanFilter(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> whitelist)</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a> onEvent(<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a> e)</pre> +<div class="block">Acknowledges the discovery if there's an overlap between the given advertisedServices + and the <a href="http://d.android.com/reference/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a> passed into the constructor of <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig.DefaultScanFilter</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-">onEvent</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a></code></dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge--"><code>BleManagerConfig.ScanFilter.Please.acknowledge()</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#ignore--"><code>BleManagerConfig.ScanFilter.Please.ignore()</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge-com.idevicesinc.sweetblue.BleDeviceConfig-"><code>BleManagerConfig.ScanFilter.Please.acknowledge(BleDeviceConfig)</code></a> (or other static constructor methods that may be added in the future).</dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" target="_top">Frames</a></li> +<li><a href="BleManagerConfig.DefaultScanFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html new file mode 100644 index 0000000000000000000000000000000000000000..e179d394faf22fd8e7da9b65cdc8f6bd0e3cd574 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html @@ -0,0 +1,293 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManagerConfig.DeviceNameComparator (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManagerConfig.DeviceNameComparator (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html" target="_top">Frames</a></li> +<li><a href="BleManagerConfig.DeviceNameComparator.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleManagerConfig.DeviceNameComparator" class="title">Class BleManagerConfig.DeviceNameComparator</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleManagerConfig.DeviceNameComparator</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleManagerConfig.DeviceNameComparator</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>></pre> +<div class="block">Default sorter class for sorting the list of devices in <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>. This sorts by + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_debug--"><code>BleDevice.getName_debug()</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html#DeviceNameComparator--">DeviceNameComparator</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html#compare-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDevice-">compare</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> lhs, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> rhs)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.util.Comparator"> +<!-- --> +</a> +<h3>Methods inherited from interface java.util.<a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a></h3> +<code><a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true#comparing-java.util.function.Function-" title="class or interface in java.util">comparing</a>, <a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true#comparing-java.util.function.Function-java.util.Comparator-" title="class or interface in java.util">comparing</a>, <a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true#comparingDouble-java.util.function.ToDoubleFunction-" title="class or interface in java.util">comparingDouble</a>, <a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true#comparingInt-java.util.function.ToIntFunction-" title="class or interface in java.util">comparingInt</a>, <a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true#comparingLong-java.util.function.ToLongFunction-" title="class or interface in java.util">comparingLong</a>, <a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.util">equals</a>, <a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true#naturalOrder--" title="class or interface in java.util">naturalOrder</a>, <a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true#nullsFirst-java.util.Comparator-" title="class or interface in java.util">nullsFirst</a>, <a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true#nullsLast-java.util.Comparator-" title="class or interface in java.util">nullsLast</a>, <a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true#reversed--" title="class or interface in java.util">reversed</a>, <a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true#reverseOrder--" title="class or interface in java.util">reverseOrder</a>, <a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true#thenComparing-java.util.Comparator-" title="class or interface in java.util">thenComparing</a>, <a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true#thenComparing-java.util.function.Function-" title="class or interface in java.util">thenComparing</a>, <a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true#thenComparing-java.util.function.Function-java.util.Comparator-" title="class or interface in java.util">thenComparing</a>, <a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true#thenComparingDouble-java.util.function.ToDoubleFunction-" title="class or interface in java.util">thenComparingDouble</a>, <a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true#thenComparingInt-java.util.function.ToIntFunction-" title="class or interface in java.util">thenComparingInt</a>, <a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true#thenComparingLong-java.util.function.ToLongFunction-" title="class or interface in java.util">thenComparingLong</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="DeviceNameComparator--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>DeviceNameComparator</h4> +<pre>public DeviceNameComparator()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="compare-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDevice-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>compare</h4> +<pre>public int compare(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> lhs, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> rhs)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true#compare-T-T-" title="class or interface in java.util">compare</a></code> in interface <code><a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html" target="_top">Frames</a></li> +<li><a href="BleManagerConfig.DeviceNameComparator.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html new file mode 100644 index 0000000000000000000000000000000000000000..8980771b5bffe97302ab898bd604f40a4f57b1b3 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html @@ -0,0 +1,378 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManagerConfig.ScanFilter.Please (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManagerConfig.ScanFilter.Please (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":10,"i7":10,"i8":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" target="_top">Frames</a></li> +<li><a href="BleManagerConfig.ScanFilter.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleManagerConfig.ScanFilter.Please" class="title">Class BleManagerConfig.ScanFilter.Please</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.Please</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleManagerConfig.ScanFilter.Please</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Small struct passed back from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"><code>BleManagerConfig.ScanFilter.onEvent(ScanEvent)</code></a>. + Use static constructor methods to create an instance.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge--">acknowledge</a></span>()</code> +<div class="block">Return this from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"><code>BleManagerConfig.ScanFilter.onEvent(ScanEvent)</code></a> to acknowledge the discovery.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge-com.idevicesinc.sweetblue.BleDeviceConfig-">acknowledge</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a> config)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge--"><code>acknowledge()</code></a> but allows you to pass a <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> + instance to the <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> that's about to be created.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledgeIf-boolean-">acknowledgeIf</a></span>(boolean condition)</code> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge--"><code>acknowledge()</code></a> if the given condition holds <code>true</code>, <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#ignore--"><code>ignore()</code></a> otherwise.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledgeIf-boolean-com.idevicesinc.sweetblue.BleDeviceConfig-">acknowledgeIf</a></span>(boolean condition, + <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a> config)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledgeIf-boolean-"><code>acknowledgeIf(boolean)</code></a> but lets you pass a <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> as well.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#ignore--">ignore</a></span>()</code> +<div class="block">Return this from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"><code>BleManagerConfig.ScanFilter.onEvent(ScanEvent)</code></a> to say no to the discovery.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#ignoreIf-boolean-">ignoreIf</a></span>(boolean condition)</code> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#ignore--"><code>ignore()</code></a> if the given condition holds <code>true</code>, <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge--"><code>acknowledge()</code></a> otherwise.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#thenStopAllScanning--">thenStopAllScanning</a></span>()</code> +<div class="block">Shorthand for calling both <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>BleManager.stopScan(BleManagerConfig.ScanFilter)</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>BleManager.stopPeriodicScan(BleManagerConfig.ScanFilter)</code></a>.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#thenStopPeriodicScan--">thenStopPeriodicScan</a></span>()</code> +<div class="block">Shorthand for calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>BleManager.stopPeriodicScan(BleManagerConfig.ScanFilter)</code></a>.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#thenStopScan--">thenStopScan</a></span>()</code> +<div class="block">Shorthand for calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>BleManager.stopScan(BleManagerConfig.ScanFilter)</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="thenStopScan--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>thenStopScan</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a> thenStopScan()</pre> +<div class="block">Shorthand for calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>BleManager.stopScan(BleManagerConfig.ScanFilter)</code></a>.</div> +</li> +</ul> +<a name="thenStopPeriodicScan--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>thenStopPeriodicScan</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a> thenStopPeriodicScan()</pre> +<div class="block">Shorthand for calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>BleManager.stopPeriodicScan(BleManagerConfig.ScanFilter)</code></a>.</div> +</li> +</ul> +<a name="thenStopAllScanning--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>thenStopAllScanning</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a> thenStopAllScanning()</pre> +<div class="block">Shorthand for calling both <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>BleManager.stopScan(BleManagerConfig.ScanFilter)</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>BleManager.stopPeriodicScan(BleManagerConfig.ScanFilter)</code></a>.</div> +</li> +</ul> +<a name="acknowledge--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>acknowledge</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a> acknowledge()</pre> +<div class="block">Return this from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"><code>BleManagerConfig.ScanFilter.onEvent(ScanEvent)</code></a> to acknowledge the discovery. + <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"><code>BleManager.DiscoveryListener.onEvent(com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent)</code></a> + will be called presently with a newly created <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>.</div> +</li> +</ul> +<a name="acknowledgeIf-boolean-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>acknowledgeIf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a> acknowledgeIf(boolean condition)</pre> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge--"><code>acknowledge()</code></a> if the given condition holds <code>true</code>, <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#ignore--"><code>ignore()</code></a> otherwise.</div> +</li> +</ul> +<a name="acknowledgeIf-boolean-com.idevicesinc.sweetblue.BleDeviceConfig-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>acknowledgeIf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a> acknowledgeIf(boolean condition, + <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a> config)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledgeIf-boolean-"><code>acknowledgeIf(boolean)</code></a> but lets you pass a <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> as well.</div> +</li> +</ul> +<a name="acknowledge-com.idevicesinc.sweetblue.BleDeviceConfig-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>acknowledge</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a> acknowledge(<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a> config)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge--"><code>acknowledge()</code></a> but allows you to pass a <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> + instance to the <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> that's about to be created.</div> +</li> +</ul> +<a name="ignore--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ignore</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a> ignore()</pre> +<div class="block">Return this from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"><code>BleManagerConfig.ScanFilter.onEvent(ScanEvent)</code></a> to say no to the discovery.</div> +</li> +</ul> +<a name="ignoreIf-boolean-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>ignoreIf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a> ignoreIf(boolean condition)</pre> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#ignore--"><code>ignore()</code></a> if the given condition holds <code>true</code>, <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge--"><code>acknowledge()</code></a> otherwise.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" target="_top">Frames</a></li> +<li><a href="BleManagerConfig.ScanFilter.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..9d9e20f84ab38ace6b0a123bf4643a3d785dcb39 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html @@ -0,0 +1,480 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManagerConfig.ScanFilter.ScanEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManagerConfig.ScanFilter.ScanEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" target="_top">Frames</a></li> +<li><a href="BleManagerConfig.ScanFilter.ScanEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleManagerConfig.ScanFilter.ScanEvent" class="title">Class BleManagerConfig.ScanFilter.ScanEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleManagerConfig.ScanFilter.ScanEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></pre> +<div class="block">Instances of this class are passed to <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"><code>BleManagerConfig.ScanFilter.onEvent(ScanEvent)</code></a> to aid in making a decision.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#advertisedServices--">advertisedServices</a></span>()</code> +<div class="block">A list of <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>s parsed from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#scanRecord--"><code>scanRecord()</code></a> as a convenience.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#advertisingFlags--">advertisingFlags</a></span>()</code> +<div class="block">Returns the advertising flags, if any, parsed from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#scanRecord--"><code>scanRecord()</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#lastDisconnectIntent--">lastDisconnectIntent</a></span>()</code> +<div class="block">See explanation at <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getLastDisconnectIntent--"><code>BleDevice.getLastDisconnectIntent()</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#macAddress--">macAddress</a></span>()</code> +<div class="block">Returns the mac address of the discovered device.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/util/SparseArray.html?is-external=true" title="class or interface in android.util">SparseArray</a><byte[]></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#manufacturerCombinedData--">manufacturerCombinedData</a></span>()</code> +<div class="block">Returns the manufacturer-specific data, if any, parsed from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#scanRecord--"><code>scanRecord()</code></a>.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#manufacturerData--">manufacturerData</a></span>()</code> </td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#manufacturerId--">manufacturerId</a></span>()</code> </td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#name_native--">name_native</a></span>()</code> +<div class="block">The unaltered device name retrieved from the native bluetooth stack.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#name_normalized--">name_normalized</a></span>()</code> +<div class="block">See <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_normalized--"><code>BleDevice.getName_normalized()</code></a> for an explanation.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth">BluetoothDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#nativeInstance--">nativeInstance</a></span>()</code> +<div class="block">Other parameters are probably enough to make a decision but this native instance is provided just in case.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#rssi--">rssi</a></span>()</code> +<div class="block">The RSSI received when the device was discovered.</div> +</td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code>byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#scanRecord--">scanRecord</a></span>()</code> +<div class="block">The raw scan record received when the device was discovered.</div> +</td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#serviceData--">serviceData</a></span>()</code> +<div class="block">Returns the service data, if any, parsed from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#scanRecord--"><code>scanRecord()</code></a>.</div> +</td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#txPower--">txPower</a></span>()</code> +<div class="block">Returns the transmission power of the device in decibels, or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#INVALID_TX_POWER"><code>BleNodeConfig.INVALID_TX_POWER</code></a> if device is not advertising its transmission power.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="nativeInstance--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>nativeInstance</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth">BluetoothDevice</a> nativeInstance()</pre> +<div class="block">Other parameters are probably enough to make a decision but this native instance is provided just in case.</div> +</li> +</ul> +<a name="advertisedServices--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>advertisedServices</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> advertisedServices()</pre> +<div class="block">A list of <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>s parsed from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#scanRecord--"><code>scanRecord()</code></a> as a convenience. May be empty, notably + if <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#revertToClassicDiscoveryIfNeeded"><code>BleManagerConfig.revertToClassicDiscoveryIfNeeded</code></a> is invoked.</div> +</li> +</ul> +<a name="name_native--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>name_native</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name_native()</pre> +<div class="block">The unaltered device name retrieved from the native bluetooth stack.</div> +</li> +</ul> +<a name="name_normalized--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>name_normalized</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name_normalized()</pre> +<div class="block">See <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getName_normalized--"><code>BleDevice.getName_normalized()</code></a> for an explanation.</div> +</li> +</ul> +<a name="scanRecord--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>scanRecord</h4> +<pre>public byte[] scanRecord()</pre> +<div class="block">The raw scan record received when the device was discovered. May be empty, especially + if <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#revertToClassicDiscoveryIfNeeded"><code>BleManagerConfig.revertToClassicDiscoveryIfNeeded</code></a> is invoked.</div> +</li> +</ul> +<a name="rssi--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>rssi</h4> +<pre>public int rssi()</pre> +<div class="block">The RSSI received when the device was discovered.</div> +</li> +</ul> +<a name="txPower--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>txPower</h4> +<pre>public int txPower()</pre> +<div class="block">Returns the transmission power of the device in decibels, or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#INVALID_TX_POWER"><code>BleNodeConfig.INVALID_TX_POWER</code></a> if device is not advertising its transmission power.</div> +</li> +</ul> +<a name="macAddress--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>macAddress</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress()</pre> +<div class="block">Returns the mac address of the discovered device.</div> +</li> +</ul> +<a name="lastDisconnectIntent--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>lastDisconnectIntent</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a> lastDisconnectIntent()</pre> +<div class="block">See explanation at <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getLastDisconnectIntent--"><code>BleDevice.getLastDisconnectIntent()</code></a>. + <br><br> + TIP: If <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#lastDisconnectIntent--"><code>lastDisconnectIntent()</code></a> isn't <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#NULL"><code>State.ChangeIntent.NULL</code></a> then most likely you can early-out + and return <code>true</code> from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"><code>BleManagerConfig.ScanFilter.onEvent(ScanEvent)</code></a> without having to check + uuids or names matching, because obviously you've seen and connected to this device before.</div> +</li> +</ul> +<a name="advertisingFlags--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>advertisingFlags</h4> +<pre>public int advertisingFlags()</pre> +<div class="block">Returns the advertising flags, if any, parsed from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#scanRecord--"><code>scanRecord()</code></a>.</div> +</li> +</ul> +<a name="manufacturerCombinedData--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>manufacturerCombinedData</h4> +<pre>public <a href="http://d.android.com/reference/android/util/SparseArray.html?is-external=true" title="class or interface in android.util">SparseArray</a><byte[]> manufacturerCombinedData()</pre> +<div class="block">Returns the manufacturer-specific data, if any, parsed from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#scanRecord--"><code>scanRecord()</code></a>.</div> +</li> +</ul> +<a name="manufacturerData--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>manufacturerData</h4> +<pre>public byte[] manufacturerData()</pre> +</li> +</ul> +<a name="manufacturerId--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>manufacturerId</h4> +<pre>public int manufacturerId()</pre> +</li> +</ul> +<a name="serviceData--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>serviceData</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> serviceData()</pre> +<div class="block">Returns the service data, if any, parsed from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#scanRecord--"><code>scanRecord()</code></a>.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" target="_top">Frames</a></li> +<li><a href="BleManagerConfig.ScanFilter.ScanEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html new file mode 100644 index 0000000000000000000000000000000000000000..31b5883b0e3587b19a8672cdcf96bf1416b702bb --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html @@ -0,0 +1,267 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManagerConfig.ScanFilter (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManagerConfig.ScanFilter (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" target="_top">Frames</a></li> +<li><a href="BleManagerConfig.ScanFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleManagerConfig.ScanFilter" class="title">Interface BleManagerConfig.ScanFilter</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.DefaultScanFilter</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleManagerConfig.ScanFilter</span></pre> +<div class="block">An optional whitelisting mechanism for scanning. Provide an implementation at + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#defaultScanFilter"><code>BleManagerConfig.defaultScanFilter</code></a> or one of the various <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a> + overloads, i.e. <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>BleManager.startScan(BleManagerConfig.ScanFilter)</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>BleManager.startScan(Interval, BleManagerConfig.ScanFilter)</code></a>, etc.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></span></code> +<div class="block">Small struct passed back from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"><code>onEvent(ScanEvent)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></span></code> +<div class="block">Instances of this class are passed to <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"><code>onEvent(ScanEvent)</code></a> to aid in making a decision.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a> e)</code> +<div class="block">Return <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge--"><code>BleManagerConfig.ScanFilter.Please.acknowledge()</code></a> to acknowledge the discovery, in which case <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"><code>BleManager.DiscoveryListener.onEvent(BleManager.DiscoveryListener.DiscoveryEvent)</code></a> + will be called shortly.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a> onEvent(<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a> e)</pre> +<div class="block">Return <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge--"><code>BleManagerConfig.ScanFilter.Please.acknowledge()</code></a> to acknowledge the discovery, in which case <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"><code>BleManager.DiscoveryListener.onEvent(BleManager.DiscoveryListener.DiscoveryEvent)</code></a> + will be called shortly. Otherwise return <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#ignore--"><code>BleManagerConfig.ScanFilter.Please.ignore()</code></a> to ignore the discovered device.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge--"><code>BleManagerConfig.ScanFilter.Please.acknowledge()</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#ignore--"><code>BleManagerConfig.ScanFilter.Please.ignore()</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge-com.idevicesinc.sweetblue.BleDeviceConfig-"><code>BleManagerConfig.ScanFilter.Please.acknowledge(BleDeviceConfig)</code></a> (or other static constructor methods that may be added in the future).</dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" target="_top">Frames</a></li> +<li><a href="BleManagerConfig.ScanFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.html new file mode 100644 index 0000000000000000000000000000000000000000..4201cf2d55bc42286b8a8a1cd77574f918510fca --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerConfig.html @@ -0,0 +1,1141 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManagerConfig (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManagerConfig (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManagerConfig.html" target="_top">Frames</a></li> +<li><a href="BleManagerConfig.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleManagerConfig" class="title">Class BleManagerConfig</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">com.idevicesinc.sweetblue.BleNodeConfig</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">com.idevicesinc.sweetblue.BleDeviceConfig</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleManagerConfig</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">BleManagerConfig</span> +extends <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></pre> +<div class="block">Provides a number of options to pass to the <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(Context, BleManagerConfig)</code></a> + singleton getter or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setConfig-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.setConfig(BleManagerConfig)</code></a>. + Use <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a> or <code>null</code> to disable any time-based options.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Class and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.DefaultScanFilter</a></span></code> +<div class="block">Convenience implementation of <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleManagerConfig.ScanFilter</code></a> which filters using + a whitelist of known primary advertising <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>s passed in to the constructor.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.DeviceNameComparator</a></span></code> +<div class="block">Default sorter class for sorting the list of devices in <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a></span></code> +<div class="block">An optional whitelisting mechanism for scanning.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleDeviceConfig"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.DefaultBondFilter</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleNodeConfig"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultHistoricalDataLogFilter</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultReconnectFilter</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultTaskTimeoutRequestFilter</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataFactory</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter</a></code></li> +</ul> +</li> +</ul> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoPauseResumeDetection">autoPauseResumeDetection</a></span></code> +<div class="block">Default is <code>true</code> - Controls whether <a href="../../../com/idevicesinc/sweetblue/BleManager.html#onResume--"><code>BleManager.onResume()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManager.html#onPause--"><code>BleManager.onPause()</code></a> will get called + automatically by using <a href="http://d.android.com/reference/android/app/Application.ActivityLifecycleCallbacks.html?is-external=true" title="class or interface in android.app"><code>Application.ActivityLifecycleCallbacks</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime">autoScanActiveTime</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a> - Length of time in seconds that the library will automatically scan for devices.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanDelayAfterBleTurnsOn">autoScanDelayAfterBleTurnsOn</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanDelayAfterResume">autoScanDelayAfterResume</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_AUTO_SCAN_DELAY_AFTER_RESUME">0.5</a> seconds - Unless <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a>, + this option will kick off a scan for <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime"><code>autoScanActiveTime</code></a> seconds + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanDelayAfterResume"><code>autoScanDelayAfterResume</code></a> seconds after <a href="../../../com/idevicesinc/sweetblue/BleManager.html#onResume--"><code>BleManager.onResume()</code></a> is called.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanDuringOta">autoScanDuringOta</a></span></code> +<div class="block">Default is <code>false</code> - set this to allow or disallow autoscanning while any + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#PERFORMING_OTA"><code>BleDeviceState.PERFORMING_OTA</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseInterval">autoScanPauseInterval</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_AUTO_SCAN_PAUSE_TIME">3.0</a> seconds - Length of time in seconds between automatic scan pulses defined by <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime"><code>autoScanActiveTime</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseTimeWhileAppIsBackgrounded">autoScanPauseTimeWhileAppIsBackgrounded</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a> - Same as <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseInterval"><code>autoScanPauseInterval</code></a> except this value is used while the app is paused.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoUpdateRate">autoUpdateRate</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_AUTO_UPDATE_RATE">0.0202</a> seconds - The rate at which the library's internal update loop ticks.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/PI_BleScanner.html" title="interface in com.idevicesinc.sweetblue">PI_BleScanner</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#bleScanner">bleScanner</a></span></code> +<div class="block">Allows overriding of Ble scanning behaviour in SweetBlue.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/PI_BleStatusHelper.html" title="interface in com.idevicesinc.sweetblue">PI_BleStatusHelper</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#bleStatusHelper">bleStatusHelper</a></span></code> +<div class="block">Allows overriding of Ble Status's.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_AUTO_SCAN_DELAY_AFTER_RESUME">DEFAULT_AUTO_SCAN_DELAY_AFTER_RESUME</a></span></code> +<div class="block">Default value for <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanDelayAfterResume"><code>autoScanDelayAfterResume</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_AUTO_SCAN_PAUSE_TIME">DEFAULT_AUTO_SCAN_PAUSE_TIME</a></span></code> +<div class="block">Default value for <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseInterval"><code>autoScanPauseInterval</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_AUTO_UPDATE_RATE">DEFAULT_AUTO_UPDATE_RATE</a></span></code> +<div class="block">Default value for <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoUpdateRate"><code>autoUpdateRate</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_SCAN_REPORT_DELAY">DEFAULT_SCAN_REPORT_DELAY</a></span></code> +<div class="block">Default value for <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#scanReportDelay"><code>scanReportDelay</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_UH_OH_CALLBACK_THROTTLE">DEFAULT_UH_OH_CALLBACK_THROTTLE</a></span></code> +<div class="block">Default value for <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#uhOhCallbackThrottle"><code>uhOhCallbackThrottle</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#defaultDiscoveryListener">defaultDiscoveryListener</a></span></code> +<div class="block">Default is <code>null</code> - can also be set post-construction with <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>BleManager.setListener_Discovery(DiscoveryListener)</code></a>, + which will override the implementation provided here.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#defaultListComparator">defaultListComparator</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig.DeviceNameComparator</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#defaultScanFilter">defaultScanFilter</a></span></code> +<div class="block">Default is <code>null</code>, meaning no filtering - all discovered devices will + be piped through your <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleManager.DiscoveryListener</code></a> instance + and added to the internal list of <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#enableCrashResolver">enableCrashResolver</a></span></code> +<div class="block">Default is <code>false</code> - this option may help mitigate crashes with "Unfortunately, + Bluetooth Share has stopped" error messages.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#enableCrashResolverForReset">enableCrashResolverForReset</a></span></code> +<div class="block">Default is <code>true</code> - this option gates whether the "crash resolver" described in <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#enableCrashResolver"><code>enableCrashResolver</code></a> + is invoked during a <a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a> operation to forcefully clear the memory that causes the crash.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#forcePreLollipopScan">forcePreLollipopScan</a></span></code> +<div class="block"><span class="deprecatedLabel">Deprecated.</span> +<div class="block"><span class="deprecationComment">Use <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#scanMode"><code>scanMode</code></a> with <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#PRE_LOLLIPOP"><code>BleScanMode.PRE_LOLLIPOP</code></a> instead.</span></div> +</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#idealMinScanTime">idealMinScanTime</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_MINIMUM_SCAN_TIME"><code>BleDeviceConfig.DEFAULT_MINIMUM_SCAN_TIME</code></a> seconds - Minimum amount of time in seconds that the library strives to give to a scanning operation.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue">SweetLogger</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#logger">logger</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/DefaultLogger.html" title="class in com.idevicesinc.sweetblue"><code>DefaultLogger</code></a> - which prints the log statements to Android's logcat.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#loggingEnabled">loggingEnabled</a></span></code> +<div class="block">Default is <code>false</code> - basically only useful for developers working on the library itself.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#manageCpuWakeLock">manageCpuWakeLock</a></span></code> +<div class="block">Default is <code>true</code> - requires the <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#WAKE_LOCK" title="class or interface in android"><code>Manifest.permission.WAKE_LOCK</code></a> permission in your app's manifest file.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#revertToClassicDiscoveryIfNeeded">revertToClassicDiscoveryIfNeeded</a></span></code> +<div class="block">Default is <code>true</code> - SweetBlue uses <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startLeScan-android.bluetooth.BluetoothAdapter.LeScanCallback-" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startLeScan(BluetoothAdapter.LeScanCallback)</code></a> by default but for unknown + reasons this can fail sometimes.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#runOnMainThread">runOnMainThread</a></span></code> +<div class="block">Default is <code>true</code> - SweetBlue originally ran most operations on its own internal thread based on + some theories that since proved invalid.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#scanMode">scanMode</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#AUTO"><code>BleScanMode.AUTO</code></a> - see <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleScanMode</code></a> for more details.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#scanPower">scanPower</a></span></code> +<div class="block">NOTE: This is ONLY applicable on devices running Lollipop or above.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#scanReportDelay">scanReportDelay</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_SCAN_REPORT_DELAY">0.5</a> seconds - Only applicable for Lollipop and up (i.e.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#stopScanOnPause">stopScanOnPause</a></span></code> +<div class="block">Default is <code>true</code> - makes it so <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopScan--"><code>BleManager.stopScan()</code></a> is called automatically after <a href="../../../com/idevicesinc/sweetblue/BleManager.html#onPause--"><code>BleManager.onPause()</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#uhOhCallbackThrottle">uhOhCallbackThrottle</a></span></code> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_UH_OH_CALLBACK_THROTTLE">30.0</a> seconds - <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a> callbacks from <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener</code></a> + can be a little spammy at times so this is an option to throttle them back on a per-<a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a> basis.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.Callback</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#updateLoopCallback">updateLoopCallback</a></span></code> +<div class="block">Default is <code>null</code> - provide an instance here that will be called at the end of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#update-double-"><code>BleManager.update(double)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.IUpdateLoopFactory</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#updateLoopFactory">updateLoopFactory</a></span></code> +<div class="block">This allows the use of custom <a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue"><code>PI_UpdateLoop</code></a> for the internal processing of SweetBlue.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#uuidNameMaps">uuidNameMaps</a></span></code> +<div class="block">Default is <code>null</code> - optional, only used if <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#loggingEnabled"><code>loggingEnabled</code></a> is true.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.com.idevicesinc.sweetblue.BleDeviceConfig"> +<!-- --> +</a> +<h3>Fields inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#allowDuplicatePollEntries">allowDuplicatePollEntries</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#autoEnableNotifiesOnReconnect">autoEnableNotifiesOnReconnect</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#autoGetServices">autoGetServices</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#autoReconnectDeviceWhenBleTurnsBackOn">autoReconnectDeviceWhenBleTurnsBackOn</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#bondFilter">bondFilter</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#bondingFailFailsConnection">bondingFailFailsConnection</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#cacheDeviceOnUndiscovery">cacheDeviceOnUndiscovery</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_MINIMUM_SCAN_TIME">DEFAULT_MINIMUM_SCAN_TIME</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_AUTO_POLL_RATE">DEFAULT_RSSI_AUTO_POLL_RATE</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_MAX">DEFAULT_RSSI_MAX</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_MIN">DEFAULT_RSSI_MIN</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RUNNING_AVERAGE_N">DEFAULT_RUNNING_AVERAGE_N</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_SCAN_KEEP_ALIVE">DEFAULT_SCAN_KEEP_ALIVE</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_TX_POWER">DEFAULT_TX_POWER</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#defaultAuthTransaction">defaultAuthTransaction</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#defaultInitTransaction">defaultInitTransaction</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#defaultTxPower">defaultTxPower</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#forceBondDialog">forceBondDialog</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#includeOtaReadWriteTimesInAverage">includeOtaReadWriteTimesInAverage</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#manageLastDisconnectOnDisk">manageLastDisconnectOnDisk</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#minScanTimeNeededForUndiscovery">minScanTimeNeededForUndiscovery</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningReadTime">nForAverageRunningReadTime</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningWriteTime">nForAverageRunningWriteTime</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#retainDeviceWhenBleTurnsOff">retainDeviceWhenBleTurnsOff</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#rssi_max">rssi_max</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#rssi_min">rssi_min</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#rssiAutoPollRate">rssiAutoPollRate</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#saveNameChangesToDisk">saveNameChangesToDisk</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#tryBondingWhileDisconnected">tryBondingWhileDisconnected</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#tryBondingWhileDisconnected_manageOnDisk">tryBondingWhileDisconnected_manageOnDisk</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#undiscoverDeviceWhenBleTurnsOff">undiscoverDeviceWhenBleTurnsOff</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#undiscoveryKeepAlive">undiscoveryKeepAlive</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#useGattRefresh">useGattRefresh</a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#useLeTransportForBonding">useLeTransportForBonding</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.com.idevicesinc.sweetblue.BleNodeConfig"> +<!-- --> +</a> +<h3>Fields inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#allowCallsFromAllThreads">allowCallsFromAllThreads</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#alwaysUseAutoConnect">alwaysUseAutoConnect</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#DEFAULT_MTU_SIZE">DEFAULT_MTU_SIZE</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#disconnectIsCancellable">disconnectIsCancellable</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#GATT_MTU_OVERHEAD">GATT_MTU_OVERHEAD</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataFactory">historicalDataFactory</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataLogFilter">historicalDataLogFilter</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#INVALID_TX_POWER">INVALID_TX_POWER</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#reconnectFilter">reconnectFilter</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter">taskTimeoutRequestFilter</a></code></li> +</ul> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier</th> +<th class="colLast" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code> </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#BleManagerConfig--">BleManagerConfig</a></span>()</code> +<div class="block">Creates a <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> with all default options set.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>protected </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#BleManagerConfig-boolean-">BleManagerConfig</a></span>(boolean loggingEnabled_in)</code> +<div class="block">Convenience constructor that populates <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#uuidNameMaps"><code>uuidNameMaps</code></a> with <a href="../../../com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><code>Uuids</code></a> + using <a href="../../../com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><code>ReflectionUuidNameMap</code></a> if logging is enabled.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>protected <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#clone--">clone</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#newWithLogging--">newWithLogging</a></span>()</code> +<div class="block">Returns a new constructor that populates <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#uuidNameMaps"><code>uuidNameMaps</code></a> with <a href="../../../com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><code>Uuids</code></a> + using <a href="../../../com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><code>ReflectionUuidNameMap</code></a> to help with readable logging.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.BleDeviceConfig"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#newNulled--">newNulled</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.BleNodeConfig"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#nullOut--">nullOut</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="DEFAULT_AUTO_SCAN_PAUSE_TIME"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_AUTO_SCAN_PAUSE_TIME</h4> +<pre>public static final double DEFAULT_AUTO_SCAN_PAUSE_TIME</pre> +<div class="block">Default value for <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseInterval"><code>autoScanPauseInterval</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleManagerConfig.DEFAULT_AUTO_SCAN_PAUSE_TIME">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="DEFAULT_AUTO_SCAN_DELAY_AFTER_RESUME"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_AUTO_SCAN_DELAY_AFTER_RESUME</h4> +<pre>public static final double DEFAULT_AUTO_SCAN_DELAY_AFTER_RESUME</pre> +<div class="block">Default value for <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanDelayAfterResume"><code>autoScanDelayAfterResume</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleManagerConfig.DEFAULT_AUTO_SCAN_DELAY_AFTER_RESUME">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="DEFAULT_AUTO_UPDATE_RATE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_AUTO_UPDATE_RATE</h4> +<pre>public static final double DEFAULT_AUTO_UPDATE_RATE</pre> +<div class="block">Default value for <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoUpdateRate"><code>autoUpdateRate</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleManagerConfig.DEFAULT_AUTO_UPDATE_RATE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="DEFAULT_UH_OH_CALLBACK_THROTTLE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_UH_OH_CALLBACK_THROTTLE</h4> +<pre>public static final double DEFAULT_UH_OH_CALLBACK_THROTTLE</pre> +<div class="block">Default value for <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#uhOhCallbackThrottle"><code>uhOhCallbackThrottle</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleManagerConfig.DEFAULT_UH_OH_CALLBACK_THROTTLE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="DEFAULT_SCAN_REPORT_DELAY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_SCAN_REPORT_DELAY</h4> +<pre>public static final double DEFAULT_SCAN_REPORT_DELAY</pre> +<div class="block">Default value for <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#scanReportDelay"><code>scanReportDelay</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleManagerConfig.DEFAULT_SCAN_REPORT_DELAY">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="loggingEnabled"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>loggingEnabled</h4> +<pre>public boolean loggingEnabled</pre> +<div class="block">Default is <code>false</code> - basically only useful for developers working on the library itself. + May also be useful for providing context when reporting bugs.</div> +</li> +</ul> +<a name="logger"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>logger</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue">SweetLogger</a> logger</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/DefaultLogger.html" title="class in com.idevicesinc.sweetblue"><code>DefaultLogger</code></a> - which prints the log statements to Android's logcat. If you want to + pipe the log statements elsewhere, create a class which implements <a href="../../../com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue"><code>SweetLogger</code></a>, and set this field + with an instance of it. If <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#loggingEnabled"><code>loggingEnabled</code></a> is not set, then this option will not affect anything.</div> +</li> +</ul> +<a name="enableCrashResolver"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enableCrashResolver</h4> +<pre>public boolean enableCrashResolver</pre> +<div class="block">Default is <code>false</code> - this option may help mitigate crashes with "Unfortunately, + Bluetooth Share has stopped" error messages. See https://github.com/RadiusNetworks/bluetooth-crash-resolver or + http://developer.radiusnetworks.com/2014/04/02/a-solution-for-android-bluetooth-crashes.html or + Google "Bluetooth Crash Resolver" for more information. + <br><br> + NOTE:" This option gates a "proactive" approach towards mitigating the above-described crash.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#enableCrashResolverForReset"><code>enableCrashResolverForReset</code></a></dd> +</dl> +</li> +</ul> +<a name="enableCrashResolverForReset"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enableCrashResolverForReset</h4> +<pre>public boolean enableCrashResolverForReset</pre> +<div class="block">Default is <code>true</code> - this option gates whether the "crash resolver" described in <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#enableCrashResolver"><code>enableCrashResolver</code></a> + is invoked during a <a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a> operation to forcefully clear the memory that causes the crash.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#enableCrashResolver"><code>enableCrashResolver</code></a></dd> +</dl> +</li> +</ul> +<a name="stopScanOnPause"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopScanOnPause</h4> +<pre>public boolean stopScanOnPause</pre> +<div class="block">Default is <code>true</code> - makes it so <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopScan--"><code>BleManager.stopScan()</code></a> is called automatically after <a href="../../../com/idevicesinc/sweetblue/BleManager.html#onPause--"><code>BleManager.onPause()</code></a>. + If you're doing an infinite scan (e.g. by calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a>, i.e. no timeout), then the scan + will automatically continue after <a href="../../../com/idevicesinc/sweetblue/BleManager.html#onResume--"><code>BleManager.onResume()</code></a> is called.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#onPause--"><code>BleManager.onPause()</code></a></dd> +</dl> +</li> +</ul> +<a name="autoScanDuringOta"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>autoScanDuringOta</h4> +<pre>public boolean autoScanDuringOta</pre> +<div class="block">Default is <code>false</code> - set this to allow or disallow autoscanning while any + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#PERFORMING_OTA"><code>BleDeviceState.PERFORMING_OTA</code></a>. If false, + then OTAs may complete faster if you're periodically scanning + through <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime"><code>autoScanActiveTime</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>BleManager.startPeriodicScan(Interval, Interval)</code></a>. + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a> will still start a scan regardless.</div> +</li> +</ul> +<a name="revertToClassicDiscoveryIfNeeded"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>revertToClassicDiscoveryIfNeeded</h4> +<pre>public boolean revertToClassicDiscoveryIfNeeded</pre> +<div class="block">Default is <code>true</code> - SweetBlue uses <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startLeScan-android.bluetooth.BluetoothAdapter.LeScanCallback-" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startLeScan(BluetoothAdapter.LeScanCallback)</code></a> by default but for unknown + reasons this can fail sometimes. In this case SweetBlue can revert to using classic bluetooth + discovery through <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startDiscovery--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startDiscovery()</code></a>. Be aware that classic + discovery may not discover some or any advertising BLE devices, nor will it provide + a <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#scanRecord--"><code>BleManagerConfig.ScanFilter.ScanEvent.scanRecord()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#advertisedServices--"><code>BleManagerConfig.ScanFilter.ScanEvent.advertisedServices()</code></a> + to <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"><code>BleManagerConfig.ScanFilter.onEvent(BleManagerConfig.ScanFilter.ScanEvent)</code></a>. + Most likely you will be forced to filter on name only for your implementation of + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"><code>BleManagerConfig.ScanFilter.onEvent(BleManagerConfig.ScanFilter.ScanEvent)</code></a>. + As such this is meant as a better-than-nothing back-up solution for BLE scanning.</div> +</li> +</ul> +<a name="runOnMainThread"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>runOnMainThread</h4> +<pre>public boolean runOnMainThread</pre> +<div class="block">Default is <code>true</code> - SweetBlue originally ran most operations on its own internal thread based on + some theories that since proved invalid. While the library can do so, it's now + recommended to run on the main thread in order to avoid any possible multithreading issues. + Note that if this is set to false, then allowCallsFromAllThreads will automatically be set to <code>true</code>. + Setting this to false will result in a smoother UI experience, at the cost of the possibility of multithreading + issues, as stated above. Use at your own risk.</div> +</li> +</ul> +<a name="manageCpuWakeLock"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>manageCpuWakeLock</h4> +<pre>public boolean manageCpuWakeLock</pre> +<div class="block">Default is <code>true</code> - requires the <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#WAKE_LOCK" title="class or interface in android"><code>Manifest.permission.WAKE_LOCK</code></a> permission in your app's manifest file. + It should look like this: <code><uses-permission android:name="android.permission.WAKE_LOCK" /></code> + Sets whether the library will attempt to obtain a wake lock in certain situations. + For now the only situation is when there are no remote bluetooth devices + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a> but one or more devices are <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a>. + The wake lock will be released when devices are reconnected (e.g. from coming back + into range) or when reconnection is stopped either through <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disconnect--"><code>BleDevice.disconnect()</code></a> or returning + <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#stopRetrying--"><code>BleNodeConfig.ReconnectFilter.Please.stopRetrying()</code></a> from + <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)</code></a>. + Wake locks will also be released if Bluetooth is turned off either from the App or OS settings. + Note that Android itself uses some kind of implicit wake lock when you are connected to + one or more devices and requires no explicit wake lock nor any extra permissions to do so.</div> +</li> +</ul> +<a name="forcePreLollipopScan"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>forcePreLollipopScan</h4> +<pre><a href="http://d.android.com/reference/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a> +public boolean forcePreLollipopScan</pre> +<div class="block"><span class="deprecatedLabel">Deprecated.</span> <span class="deprecationComment">Use <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#scanMode"><code>scanMode</code></a> with <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#PRE_LOLLIPOP"><code>BleScanMode.PRE_LOLLIPOP</code></a> instead.</span></div> +<div class="block">Default is <code>false</code> - Only applicable for Lollipop and up (i.e. > 5.0), this will force the use of the deprecated "pre-lollipop" + scanning API, that is <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startLeScan-android.bluetooth.BluetoothAdapter.LeScanCallback-" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startLeScan(BluetoothAdapter.LeScanCallback)</code></a>. There is no known reason you would + want this, but including it just in case.</div> +</li> +</ul> +<a name="autoPauseResumeDetection"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>autoPauseResumeDetection</h4> +<pre>public boolean autoPauseResumeDetection</pre> +<div class="block">Default is <code>true</code> - Controls whether <a href="../../../com/idevicesinc/sweetblue/BleManager.html#onResume--"><code>BleManager.onResume()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManager.html#onPause--"><code>BleManager.onPause()</code></a> will get called + automatically by using <a href="http://d.android.com/reference/android/app/Application.ActivityLifecycleCallbacks.html?is-external=true" title="class or interface in android.app"><code>Application.ActivityLifecycleCallbacks</code></a>.</div> +</li> +</ul> +<a name="uhOhCallbackThrottle"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>uhOhCallbackThrottle</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> uhOhCallbackThrottle</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_UH_OH_CALLBACK_THROTTLE">30.0</a> seconds - <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a> callbacks from <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener</code></a> + can be a little spammy at times so this is an option to throttle them back on a per-<a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a> basis. + Set this to <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a> to receive all every <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a> and manage them yourself.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener</code></a></dd> +</dl> +</li> +</ul> +<a name="autoScanDelayAfterResume"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>autoScanDelayAfterResume</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> autoScanDelayAfterResume</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_AUTO_SCAN_DELAY_AFTER_RESUME">0.5</a> seconds - Unless <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a>, + this option will kick off a scan for <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime"><code>autoScanActiveTime</code></a> seconds + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanDelayAfterResume"><code>autoScanDelayAfterResume</code></a> seconds after <a href="../../../com/idevicesinc/sweetblue/BleManager.html#onResume--"><code>BleManager.onResume()</code></a> is called.</div> +</li> +</ul> +<a name="autoScanDelayAfterBleTurnsOn"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>autoScanDelayAfterBleTurnsOn</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> autoScanDelayAfterBleTurnsOn</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a>. If set, this will automatically start scanning after the specified <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a>. This also + depends on <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime"><code>autoScanActiveTime</code></a>, in that if that value is not set, this value will do nothing.</div> +</li> +</ul> +<a name="autoScanActiveTime"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>autoScanActiveTime</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> autoScanActiveTime</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a> - Length of time in seconds that the library will automatically scan for devices. + Used in conjunction with <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseInterval"><code>autoScanPauseInterval</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseTimeWhileAppIsBackgrounded"><code>autoScanPauseTimeWhileAppIsBackgrounded</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanDelayAfterResume"><code>autoScanDelayAfterResume</code></a>, + and <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanDelayAfterBleTurnsOn"><code>autoScanDelayAfterBleTurnsOn</code></a>, this option allows the library to periodically send off scan "pulses" that last + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime"><code>autoScanActiveTime</code></a> seconds. Use <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>BleManager.startPeriodicScan(Interval, Interval)</code></a> to adjust this behavior while the library is running. + If either <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime"><code>autoScanActiveTime</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseInterval"><code>autoScanPauseInterval</code></a> is <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a> then auto scanning is disabled. + It can also be turned off with <a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan--"><code>BleManager.stopPeriodicScan()</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseInterval"><code>autoScanPauseInterval</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>BleManager.startPeriodicScan(Interval, Interval)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan--"><code>BleManager.stopPeriodicScan()</code></a></dd> +</dl> +</li> +</ul> +<a name="autoScanPauseInterval"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>autoScanPauseInterval</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> autoScanPauseInterval</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_AUTO_SCAN_PAUSE_TIME">3.0</a> seconds - Length of time in seconds between automatic scan pulses defined by <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime"><code>autoScanActiveTime</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime"><code>autoScanActiveTime</code></a></dd> +</dl> +</li> +</ul> +<a name="autoScanPauseTimeWhileAppIsBackgrounded"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>autoScanPauseTimeWhileAppIsBackgrounded</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> autoScanPauseTimeWhileAppIsBackgrounded</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a> - Same as <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseInterval"><code>autoScanPauseInterval</code></a> except this value is used while the app is paused.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseInterval"><code>autoScanPauseInterval</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleManager.html#onPause--"><code>BleManager.onPause()</code></a></dd> +</dl> +</li> +</ul> +<a name="idealMinScanTime"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>idealMinScanTime</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> idealMinScanTime</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_MINIMUM_SCAN_TIME"><code>BleDeviceConfig.DEFAULT_MINIMUM_SCAN_TIME</code></a> seconds - Minimum amount of time in seconds that the library strives to give to a scanning operation.</div> +</li> +</ul> +<a name="autoUpdateRate"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>autoUpdateRate</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> autoUpdateRate</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_AUTO_UPDATE_RATE">0.0202</a> seconds - The rate at which the library's internal update loop ticks. + Generally shouldn't need to be changed. You can set this to <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a> and call <a href="../../../com/idevicesinc/sweetblue/BleManager.html#update-double-"><code>BleManager.update(double)</code></a> yourself + if you want to tie the library in to an existing update loop used in your application.</div> +</li> +</ul> +<a name="scanReportDelay"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>scanReportDelay</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanReportDelay</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_SCAN_REPORT_DELAY">0.5</a> seconds - Only applicable for Lollipop and up (i.e. > 5.0), this is the value given to + <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.Builder.html?is-external=true#setReportDelay-long-" title="class or interface in android.bluetooth.le"><code>ScanSettings.Builder.setReportDelay(long)</code></a> so that scan results are "batched" ¯\_(ツ)_/¯. It's not clear from source + code, API documentation, or internet search what effects this has, when you would want to use it, etc. The reason we use the default + value provided is largely subjective. It seemed to help discover a peripheral faster on the Nexus 7 that was only advertising on channels + 37 and 38 - i.e. not on channel 39 too. It is also the default option in the nRF Master Control panel diagnostic app. + <br><br> + NOTE: This option is only relevant if <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#isOffloadedScanBatchingSupported--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.isOffloadedScanBatchingSupported()</code></a> returns <code>true</code> - otherwise + it has no effect because the hardware does not support it.</div> +</li> +</ul> +<a name="defaultScanFilter"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>defaultScanFilter</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a> defaultScanFilter</pre> +<div class="block">Default is <code>null</code>, meaning no filtering - all discovered devices will + be piped through your <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleManager.DiscoveryListener</code></a> instance + and added to the internal list of <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleManagerConfig.ScanFilter</code></a></dd> +</dl> +</li> +</ul> +<a name="defaultDiscoveryListener"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>defaultDiscoveryListener</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a> defaultDiscoveryListener</pre> +<div class="block">Default is <code>null</code> - can also be set post-construction with <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>BleManager.setListener_Discovery(DiscoveryListener)</code></a>, + which will override the implementation provided here.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleManager.DiscoveryListener</code></a></dd> +</dl> +</li> +</ul> +<a name="scanMode"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>scanMode</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a> scanMode</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#AUTO"><code>BleScanMode.AUTO</code></a> - see <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleScanMode</code></a> for more details.</div> +</li> +</ul> +<a name="scanPower"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>scanPower</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a> scanPower</pre> +<div class="block">NOTE: This is ONLY applicable on devices running Lollipop or above. + Default is <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#AUTO"><code>BleScanPower.AUTO</code></a> = see <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue"><code>BleScanPower</code></a> for more details.</div> +</li> +</ul> +<a name="updateLoopCallback"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>updateLoopCallback</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.Callback</a> updateLoopCallback</pre> +<div class="block">Default is <code>null</code> - provide an instance here that will be called at the end of <a href="../../../com/idevicesinc/sweetblue/BleManager.html#update-double-"><code>BleManager.update(double)</code></a>. + This might be useful for extension/wrapper libraries or apps that want to tie into the <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> instance's existing update loop.</div> +</li> +</ul> +<a name="updateLoopFactory"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>updateLoopFactory</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.IUpdateLoopFactory</a> updateLoopFactory</pre> +<div class="block">This allows the use of custom <a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue"><code>PI_UpdateLoop</code></a> for the internal processing of SweetBlue. This is only exposed + for unit testing purposes, you should never change this unless you know the internals of SweetBlue intimately.</div> +</li> +</ul> +<a name="bleStatusHelper"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bleStatusHelper</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/PI_BleStatusHelper.html" title="interface in com.idevicesinc.sweetblue">PI_BleStatusHelper</a> bleStatusHelper</pre> +<div class="block">Allows overriding of Ble Status's. This is only used for unit testing, and shouldn't be + used at all.</div> +</li> +</ul> +<a name="bleScanner"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bleScanner</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/PI_BleScanner.html" title="interface in com.idevicesinc.sweetblue">PI_BleScanner</a> bleScanner</pre> +<div class="block">Allows overriding of Ble scanning behaviour in SweetBlue. This is only used for unit + testing, and should not be used at all.</div> +</li> +</ul> +<a name="uuidNameMaps"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>uuidNameMaps</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a>> uuidNameMaps</pre> +<div class="block">Default is <code>null</code> - optional, only used if <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#loggingEnabled"><code>loggingEnabled</code></a> is true. Provides a look-up table + so logs can show the name associated with a <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> along with its numeric string.</div> +</li> +</ul> +<a name="defaultListComparator"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>defaultListComparator</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>> defaultListComparator</pre> +<div class="block">Default is <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig.DeviceNameComparator</code></a>. This specifies how to + sort the list of devices in <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="BleManagerConfig--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleManagerConfig</h4> +<pre>public BleManagerConfig()</pre> +<div class="block">Creates a <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> with all default options set. See each member of this class + for what the default options are set to.</div> +</li> +</ul> +<a name="BleManagerConfig-boolean-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BleManagerConfig</h4> +<pre>protected BleManagerConfig(boolean loggingEnabled_in)</pre> +<div class="block">Convenience constructor that populates <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#uuidNameMaps"><code>uuidNameMaps</code></a> with <a href="../../../com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><code>Uuids</code></a> + using <a href="../../../com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><code>ReflectionUuidNameMap</code></a> if logging is enabled.</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>loggingEnabled_in</code> - Sets <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#loggingEnabled"><code>loggingEnabled</code></a>.</dd> +</dl> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="newWithLogging--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newWithLogging</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a> newWithLogging()</pre> +<div class="block">Returns a new constructor that populates <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#uuidNameMaps"><code>uuidNameMaps</code></a> with <a href="../../../com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><code>Uuids</code></a> + using <a href="../../../com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><code>ReflectionUuidNameMap</code></a> to help with readable logging.</div> +</li> +</ul> +<a name="clone--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>clone</h4> +<pre>protected <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a> clone()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#clone--">clone</a></code> in class <code><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManagerConfig.html" target="_top">Frames</a></li> +<li><a href="BleManagerConfig.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerState.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerState.html new file mode 100644 index 0000000000000000000000000000000000000000..60d7db2930e433f08633d094a084590385ac390c --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleManagerState.html @@ -0,0 +1,675 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleManagerState (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleManagerState (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":9,"i9":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManagerState.html" target="_top">Frames</a></li> +<li><a href="BleManagerState.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleManagerState" class="title">Enum BleManagerState</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleManagerState</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>, <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a>></dd> +</dl> +<hr> +<br> +<pre>public enum <span class="typeNameLabel">BleManagerState</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></pre> +<div class="block">An enumeration of the various states that a <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> can be in. + The manager can be in multiple states simultaneously.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleManager.StateListener</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleManager.NativeStateListener</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleManager.html#is-com.idevicesinc.sweetblue.BleManagerState-"><code>BleManager.is(BleManagerState)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleManager.html#getStateMask--"><code>BleManager.getStateMask()</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.utils.State"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a><<a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a> extends <a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a></code></li> +</ul> +</li> +</ul> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF">OFF</a></span></code> +<div class="block">Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#STATE_OFF" title="class or interface in android.bluetooth"><code>BluetoothAdapter.STATE_OFF</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON">ON</a></span></code> +<div class="block">Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#STATE_ON" title="class or interface in android.bluetooth"><code>BluetoothAdapter.STATE_ON</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#RESETTING">RESETTING</a></span></code> +<div class="block">This is the state that <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> is in after calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#SCANNING">SCANNING</a></span></code> +<div class="block">This is the state that <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> is in when scanning actually starts.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#STARTING_SCAN">STARTING_SCAN</a></span></code> +<div class="block">This is the state that <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> is in after calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a> or related overloads.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#TURNING_OFF">TURNING_OFF</a></span></code> +<div class="block">Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#STATE_TURNING_OFF" title="class or interface in android.bluetooth"><code>BluetoothAdapter.STATE_TURNING_OFF</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#TURNING_ON">TURNING_ON</a></span></code> +<div class="block">Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#STATE_TURNING_ON" title="class or interface in android.bluetooth"><code>BluetoothAdapter.STATE_TURNING_ON</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#FULL_MASK">FULL_MASK</a></span></code> +<div class="block">Full bitwise mask made by ORing all <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> instances together.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#bit--">bit</a></span>()</code> +<div class="block">Returns the bit (0x1, 0x2, 0x4, etc.) this enum represents based on the <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--"><code>BitwiseEnum.ordinal()</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#didEnter-int-int-">didEnter</a></span>(int oldStateBits, + int newStateBits)</code> +<div class="block">Given an old and new state mask, for example from <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent-"><code>BleDevice.StateListener.onEvent(com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent)</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent-"><code>BleManager.StateListener.onEvent(com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent)</code></a>, this method tells you whether the + the 'this' state was appended.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#didExit-int-int-">didExit</a></span>(int oldStateBits, + int newStateBits)</code> +<div class="block">Reverse of <a href="../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-"><code>State.didEnter(int, int)</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#getNativeCode--">getNativeCode</a></span>()</code> +<div class="block">Returns the analogous native code, if applicable.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if this state is meant to stand in for Java's built-in <code>null</code>.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a> state)</code> +<div class="block">Does a bitwise OR for this state and the given state.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#or-int-">or</a></span>(int bits)</code> +<div class="block">Does a bitwise OR for this state and the given bits.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#overlaps-int-">overlaps</a></span>(int mask)</code> +<div class="block">Convenience method for checking if <code>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--"><code>BitwiseEnum.bit()</code></a> & mask) != 0x0</code>.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.BitwiseEnum"> +<!-- --> +</a> +<h3>Methods inherited from interface com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#name--">name</a>, <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--">ordinal</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="OFF"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>OFF</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a> OFF</pre> +<div class="block">Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#STATE_OFF" title="class or interface in android.bluetooth"><code>BluetoothAdapter.STATE_OFF</code></a>.</div> +</li> +</ul> +<a name="TURNING_ON"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>TURNING_ON</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a> TURNING_ON</pre> +<div class="block">Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#STATE_TURNING_ON" title="class or interface in android.bluetooth"><code>BluetoothAdapter.STATE_TURNING_ON</code></a>.</div> +</li> +</ul> +<a name="ON"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ON</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a> ON</pre> +<div class="block">Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#STATE_ON" title="class or interface in android.bluetooth"><code>BluetoothAdapter.STATE_ON</code></a>.</div> +</li> +</ul> +<a name="TURNING_OFF"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>TURNING_OFF</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a> TURNING_OFF</pre> +<div class="block">Analogous to <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#STATE_TURNING_OFF" title="class or interface in android.bluetooth"><code>BluetoothAdapter.STATE_TURNING_OFF</code></a>.</div> +</li> +</ul> +<a name="STARTING_SCAN"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>STARTING_SCAN</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a> STARTING_SCAN</pre> +<div class="block">This is the state that <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> is in after calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a> or related overloads. The <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> + will only be in this state for a very short period before moving to <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#SCANNING"><code>SCANNING</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a></dd> +</dl> +</li> +</ul> +<a name="SCANNING"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SCANNING</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a> SCANNING</pre> +<div class="block">This is the state that <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> is in when scanning actually starts.</div> +</li> +</ul> +<a name="RESETTING"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>RESETTING</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a> RESETTING</pre> +<div class="block">This is the state that <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> is in after calling <a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="FULL_MASK"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>FULL_MASK</h4> +<pre>public static final int FULL_MASK</pre> +<div class="block">Full bitwise mask made by ORing all <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> instances together.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleManagerState c : BleManagerState.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="getNativeCode--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeCode</h4> +<pre>public int getNativeCode()</pre> +<div class="block">Returns the analogous native code, if applicable. For example <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#STATE_OFF" title="class or interface in android.bluetooth"><code>BluetoothAdapter.STATE_OFF</code></a>, + <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#STATE_ON" title="class or interface in android.bluetooth"><code>BluetoothAdapter.STATE_ON</code></a>, etc. <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#RESETTING"><code>RESETTING</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#SCANNING"><code>SCANNING</code></a> do not have a native + code equivalent and will return 0.</div> +</li> +</ul> +<a name="bit--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bit</h4> +<pre>public int bit()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--">BitwiseEnum</a></code></span></div> +<div class="block">Returns the bit (0x1, 0x2, 0x4, etc.) this enum represents based on the <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--"><code>BitwiseEnum.ordinal()</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--">bit</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="overlaps-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>overlaps</h4> +<pre>public boolean overlaps(int mask)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#overlaps-int-">BitwiseEnum</a></code></span></div> +<div class="block">Convenience method for checking if <code>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--"><code>BitwiseEnum.bit()</code></a> & mask) != 0x0</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#overlaps-int-">overlaps</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="didEnter-int-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>didEnter</h4> +<pre>public boolean didEnter(int oldStateBits, + int newStateBits)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-">State</a></code></span></div> +<div class="block">Given an old and new state mask, for example from <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent-"><code>BleDevice.StateListener.onEvent(com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent)</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent-"><code>BleManager.StateListener.onEvent(com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent)</code></a>, this method tells you whether the + the 'this' state was appended.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-">didEnter</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></code></dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/State.html#didExit-int-int-"><code>State.didExit(int, int)</code></a></dd> +</dl> +</li> +</ul> +<a name="didExit-int-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>didExit</h4> +<pre>public boolean didExit(int oldStateBits, + int newStateBits)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/State.html#didExit-int-int-">State</a></code></span></div> +<div class="block">Reverse of <a href="../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-"><code>State.didEnter(int, int)</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/State.html#didExit-int-int-">didExit</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></code></dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-"><code>State.didEnter(int, int)</code></a></dd> +</dl> +</li> +</ul> +<a name="or-com.idevicesinc.sweetblue.utils.BitwiseEnum-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>or</h4> +<pre>public int or(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a> state)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">BitwiseEnum</a></code></span></div> +<div class="block">Does a bitwise OR for this state and the given state.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="or-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>or</h4> +<pre>public int or(int bits)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-int-">BitwiseEnum</a></code></span></div> +<div class="block">Does a bitwise OR for this state and the given bits.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-int-">or</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/State.html#isNull--">State</a></code></span></div> +<div class="block">Returns <code>true</code> if this state is meant to stand in for Java's built-in <code>null</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/State.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></code></dd> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleManagerState.html" target="_top">Frames</a></li> +<li><a href="BleManagerState.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html new file mode 100644 index 0000000000000000000000000000000000000000..857e97d0db3230b4de525e949b20722ad963dc69 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html @@ -0,0 +1,383 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNode.ConnectionFailListener.AutoConnectUsage (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNode.ConnectionFailListener.AutoConnectUsage (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" target="_top">Frames</a></li> +<li><a href="BleNode.ConnectionFailListener.AutoConnectUsage.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleNode.ConnectionFailListener.AutoConnectUsage" class="title">Enum BleNode.ConnectionFailListener.AutoConnectUsage</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNode.ConnectionFailListener.AutoConnectUsage</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleNode.ConnectionFailListener.AutoConnectUsage</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a>></pre> +<div class="block">Describes usage of the <code>autoConnect</code> parameter for either <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#connectGatt-android.content.Context-boolean-android.bluetooth.BluetoothGattCallback-" title="class or interface in android.bluetooth"><code>BluetoothDevice.connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)</code></a> + or <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#connect-android.bluetooth.BluetoothDevice-boolean-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.connect(BluetoothDevice, boolean)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html#NOT_APPLICABLE">NOT_APPLICABLE</a></span></code> +<div class="block">Usage is not applicable.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html#NOT_USED">NOT_USED</a></span></code> +<div class="block"><code>autoConnect</code> was not used.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html#UNKNOWN">UNKNOWN</a></span></code> +<div class="block">Used when we didn't start the connection process, i.e.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html#USED">USED</a></span></code> +<div class="block"><code>autoConnect</code> was used.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="UNKNOWN"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>UNKNOWN</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a> UNKNOWN</pre> +<div class="block">Used when we didn't start the connection process, i.e. it came out of nowhere. Rare case but can happen, for example after + SweetBlue considers a connect timed out based on <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter"><code>BleNodeConfig.taskTimeoutRequestFilter</code></a> but then it somehow + does come in (shouldn't happen but who knows).</div> +</li> +</ul> +<a name="NOT_APPLICABLE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NOT_APPLICABLE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a> NOT_APPLICABLE</pre> +<div class="block">Usage is not applicable.</div> +</li> +</ul> +<a name="USED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>USED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a> USED</pre> +<div class="block"><code>autoConnect</code> was used.</div> +</li> +</ul> +<a name="NOT_USED"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>NOT_USED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a> NOT_USED</pre> +<div class="block"><code>autoConnect</code> was not used.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleNode.ConnectionFailListener.AutoConnectUsage c : BleNode.ConnectionFailListener.AutoConnectUsage.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" target="_top">Frames</a></li> +<li><a href="BleNode.ConnectionFailListener.AutoConnectUsage.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..087cbde60e8095ef22d6d524056dce6e0f77ce60 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html @@ -0,0 +1,347 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNode.ConnectionFailListener.ConnectionFailEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNode.ConnectionFailListener.ConnectionFailEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" target="_top">Frames</a></li> +<li><a href="BleNode.ConnectionFailListener.ConnectionFailEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleNode.ConnectionFailListener.ConnectionFailEvent" class="title">Class BleNode.ConnectionFailListener.ConnectionFailEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNode.ConnectionFailListener.ConnectionFailEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></dd> +</dl> +<dl> +<dt>Direct Known Subclasses:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener</a></dd> +</dl> +<hr> +<br> +<pre>public abstract static class <span class="typeNameLabel">BleNode.ConnectionFailListener.ConnectionFailEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">Abstract base class for structures passed to <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"><code>BleServer.ConnectionFailListener.onEvent(BleServer.ConnectionFailListener.ConnectionFailEvent)</code></a> + and <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)</code></a> to provide more info about how/why a connection failed.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#attemptTime_latest--">attemptTime_latest</a></span>()</code> +<div class="block">How long the last connection attempt took before failing.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#attemptTime_total--">attemptTime_total</a></span>()</code> +<div class="block">How long it's been since <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> (or overloads) were initially called.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#autoConnectUsage--">autoConnectUsage</a></span>()</code> +<div class="block">Whether <code>autoConnect=true</code> was passed to <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#connectGatt-android.content.Context-boolean-android.bluetooth.BluetoothGattCallback-" title="class or interface in android.bluetooth"><code>BluetoothDevice.connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#failureCountSoFar--">failureCountSoFar</a></span>()</code> +<div class="block">The failure count so far.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#gattStatus--">gattStatus</a></span>()</code> +<div class="block">The gattStatus returned, if applicable, from native callbacks like <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCallback.html?is-external=true#onConnectionStateChange-android.bluetooth.BluetoothGatt-int-int-" title="class or interface in android.bluetooth"><code>BluetoothGattCallback.onConnectionStateChange(BluetoothGatt, int, int)</code></a> + or <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCallback.html?is-external=true#onServicesDiscovered-android.bluetooth.BluetoothGatt-int-" title="class or interface in android.bluetooth"><code>BluetoothGattCallback.onServicesDiscovered(BluetoothGatt, int)</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.UsesCustomNull"> +<!-- --> +</a> +<h3>Methods inherited from interface com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="failureCountSoFar--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>failureCountSoFar</h4> +<pre>public int failureCountSoFar()</pre> +<div class="block">The failure count so far. This will start at 1 and keep incrementing for more failures.</div> +</li> +</ul> +<a name="attemptTime_latest--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>attemptTime_latest</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> attemptTime_latest()</pre> +<div class="block">How long the last connection attempt took before failing.</div> +</li> +</ul> +<a name="attemptTime_total--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>attemptTime_total</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> attemptTime_total()</pre> +<div class="block">How long it's been since <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> (or overloads) were initially called.</div> +</li> +</ul> +<a name="gattStatus--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>gattStatus</h4> +<pre>public int gattStatus()</pre> +<div class="block">The gattStatus returned, if applicable, from native callbacks like <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCallback.html?is-external=true#onConnectionStateChange-android.bluetooth.BluetoothGatt-int-int-" title="class or interface in android.bluetooth"><code>BluetoothGattCallback.onConnectionStateChange(BluetoothGatt, int, int)</code></a> + or <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCallback.html?is-external=true#onServicesDiscovered-android.bluetooth.BluetoothGatt-int-" title="class or interface in android.bluetooth"><code>BluetoothGattCallback.onServicesDiscovered(BluetoothGatt, int)</code></a>. + If not applicable, for example if <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#status--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.status()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#EXPLICIT_DISCONNECT"><code>BleDevice.ConnectionFailListener.Status.EXPLICIT_DISCONNECT</code></a>, + then this is set to <a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_STATUS_NOT_APPLICABLE"><code>BleStatuses.GATT_STATUS_NOT_APPLICABLE</code></a>. + <br><br> + See <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#gattStatus--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.gattStatus()</code></a> for more information about gatt status codes in general.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#gattStatus--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.gattStatus()</code></a></dd> +</dl> +</li> +</ul> +<a name="autoConnectUsage--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>autoConnectUsage</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a> autoConnectUsage()</pre> +<div class="block">Whether <code>autoConnect=true</code> was passed to <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#connectGatt-android.content.Context-boolean-android.bluetooth.BluetoothGattCallback-" title="class or interface in android.bluetooth"><code>BluetoothDevice.connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)</code></a>. + See more discussion at <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#alwaysUseAutoConnect"><code>BleNodeConfig.alwaysUseAutoConnect</code></a>.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" target="_top">Frames</a></li> +<li><a href="BleNode.ConnectionFailListener.ConnectionFailEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html new file mode 100644 index 0000000000000000000000000000000000000000..b89dce8757c38baee7983413b9c2d68e0c47df86 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html @@ -0,0 +1,346 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNode.ConnectionFailListener.Please (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNode.ConnectionFailListener.Please (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":10,"i3":9,"i4":9,"i5":9,"i6":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" target="_top">Frames</a></li> +<li><a href="BleNode.ConnectionFailListener.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleNode.ConnectionFailListener.Please" class="title">Class BleNode.ConnectionFailListener.Please</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNode.ConnectionFailListener.Please</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleNode.ConnectionFailListener.Please</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Return value for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)</code></a> + and <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"><code>BleServer.ConnectionFailListener.onEvent(BleServer.ConnectionFailListener.ConnectionFailEvent)</code></a>. + Generally you will only return <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retry--"><code>retry()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#doNotRetry--"><code>doNotRetry()</code></a>, but there are more advanced options as well.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#doNotRetry--">doNotRetry</a></span>()</code> +<div class="block">Return this to stop the connection fail retry loop.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#doNotRetryIf-boolean-">doNotRetryIf</a></span>(boolean condition)</code> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#doNotRetry--"><code>doNotRetry()</code></a> if the given condition holds <code>true</code>, <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retry--"><code>retry()</code></a> otherwise.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#isRetry--">isRetry</a></span>()</code> +<div class="block">Returns <code>true</code> for everything except <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#doNotRetry--"><code>doNotRetry()</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retry--">retry</a></span>()</code> +<div class="block">Return this to retry the connection, continuing the connection fail retry loop.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retryIf-boolean-">retryIf</a></span>(boolean condition)</code> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retry--"><code>retry()</code></a> if the given condition holds <code>true</code>, <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#doNotRetry--"><code>doNotRetry()</code></a> otherwise.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retryWithAutoConnectFalse--">retryWithAutoConnectFalse</a></span>()</code> +<div class="block">Opposite of<a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retryWithAutoConnectTrue--"><code>retryWithAutoConnectTrue()</code></a>.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retryWithAutoConnectTrue--">retryWithAutoConnectTrue</a></span>()</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retry--"><code>retry()</code></a>, but <code>autoConnect=true</code> will be passed to + <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#connectGatt-android.content.Context-boolean-android.bluetooth.BluetoothGattCallback-" title="class or interface in android.bluetooth"><code>BluetoothDevice.connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="retry--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>retry</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a> retry()</pre> +<div class="block">Return this to retry the connection, continuing the connection fail retry loop. <code>autoConnect</code> passed to + <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#connectGatt-android.content.Context-boolean-android.bluetooth.BluetoothGattCallback-" title="class or interface in android.bluetooth"><code>BluetoothDevice.connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)</code></a> + will be false or true based on what has worked in the past, or on <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#alwaysUseAutoConnect"><code>BleNodeConfig.alwaysUseAutoConnect</code></a>.</div> +</li> +</ul> +<a name="retryIf-boolean-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>retryIf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a> retryIf(boolean condition)</pre> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retry--"><code>retry()</code></a> if the given condition holds <code>true</code>, <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#doNotRetry--"><code>doNotRetry()</code></a> otherwise.</div> +</li> +</ul> +<a name="doNotRetry--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>doNotRetry</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a> doNotRetry()</pre> +<div class="block">Return this to stop the connection fail retry loop.</div> +</li> +</ul> +<a name="doNotRetryIf-boolean-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>doNotRetryIf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a> doNotRetryIf(boolean condition)</pre> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#doNotRetry--"><code>doNotRetry()</code></a> if the given condition holds <code>true</code>, <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retry--"><code>retry()</code></a> otherwise.</div> +</li> +</ul> +<a name="retryWithAutoConnectTrue--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>retryWithAutoConnectTrue</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a> retryWithAutoConnectTrue()</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retry--"><code>retry()</code></a>, but <code>autoConnect=true</code> will be passed to + <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#connectGatt-android.content.Context-boolean-android.bluetooth.BluetoothGattCallback-" title="class or interface in android.bluetooth"><code>BluetoothDevice.connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)</code></a>. + See more discussion at <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#alwaysUseAutoConnect"><code>BleNodeConfig.alwaysUseAutoConnect</code></a>.</div> +</li> +</ul> +<a name="retryWithAutoConnectFalse--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>retryWithAutoConnectFalse</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a> retryWithAutoConnectFalse()</pre> +<div class="block">Opposite of<a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retryWithAutoConnectTrue--"><code>retryWithAutoConnectTrue()</code></a>.</div> +</li> +</ul> +<a name="isRetry--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isRetry</h4> +<pre>public boolean isRetry()</pre> +<div class="block">Returns <code>true</code> for everything except <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#doNotRetry--"><code>doNotRetry()</code></a>.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" target="_top">Frames</a></li> +<li><a href="BleNode.ConnectionFailListener.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html new file mode 100644 index 0000000000000000000000000000000000000000..1e51a9e615f3556f4d23cd91de405a567514b4b0 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html @@ -0,0 +1,220 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNode.ConnectionFailListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNode.ConnectionFailListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" target="_top">Frames</a></li> +<li><a href="BleNode.ConnectionFailListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleNode.ConnectionFailListener" class="title">Interface BleNode.ConnectionFailListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Subinterfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a></dd> +</dl> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleDevice.DefaultConnectionFailListener</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleServer.DefaultConnectionFailListener</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleNode.ConnectionFailListener</span></pre> +<div class="block">Base interface for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a></span></code> +<div class="block">Describes usage of the <code>autoConnect</code> parameter for either <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#connectGatt-android.content.Context-boolean-android.bluetooth.BluetoothGattCallback-" title="class or interface in android.bluetooth"><code>BluetoothDevice.connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)</code></a> + or <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#connect-android.bluetooth.BluetoothDevice-boolean-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.connect(BluetoothDevice, boolean)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.ConnectionFailEvent</a></span></code> +<div class="block">Abstract base class for structures passed to <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"><code>BleServer.ConnectionFailListener.onEvent(BleServer.ConnectionFailListener.ConnectionFailEvent)</code></a> + and <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)</code></a> to provide more info about how/why a connection failed.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></span></code> +<div class="block">Return value for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)</code></a> + and <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"><code>BleServer.ConnectionFailListener.onEvent(BleServer.ConnectionFailListener.ConnectionFailEvent)</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" target="_top">Frames</a></li> +<li><a href="BleNode.ConnectionFailListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..3431be26f24427283da2913c2fb104ad2a6d4cfb --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html @@ -0,0 +1,340 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" target="_top">Frames</a></li> +<li><a href="BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent" class="title">Class BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></pre> +<div class="block">Event struct passed to <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html#onEvent-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent-"><code>BleNode.HistoricalDataLoadListener.onEvent(HistoricalDataLoadEvent)</code></a> that provides + further information about the status of a historical data load to memory using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> + (or overloads).</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html#macAddress--">macAddress</a></span>()</code> +<div class="block">The mac address that the data is being queried for.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html#range--">range</a></span>()</code> +<div class="block">The resulting time range spanning all of the data loaded to memory, or <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#NULL"><code>EpochTimeRange.NULL</code></a> if not applicable.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html#status--">status</a></span>()</code> +<div class="block">The general status of the load operation.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html#uuid--">uuid</a></span>()</code> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> that the data is being loaded for.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html#wasSuccess--">wasSuccess</a></span>()</code> +<div class="block">Returns <code>true</code> if <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html#status--"><code>status()</code></a> is either <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#LOADED"><code>BleNode.HistoricalDataLoadListener.Status.LOADED</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#ALREADY_LOADED"><code>BleNode.HistoricalDataLoadListener.Status.ALREADY_LOADED</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="macAddress--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>macAddress</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress()</pre> +<div class="block">The mac address that the data is being queried for.</div> +</li> +</ul> +<a name="uuid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>uuid</h4> +<pre>public <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid()</pre> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> that the data is being loaded for.</div> +</li> +</ul> +<a name="range--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>range</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range()</pre> +<div class="block">The resulting time range spanning all of the data loaded to memory, or <a href="../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#NULL"><code>EpochTimeRange.NULL</code></a> if not applicable.</div> +</li> +</ul> +<a name="status--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>status</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a> status()</pre> +<div class="block">The general status of the load operation.</div> +</li> +</ul> +<a name="wasSuccess--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>wasSuccess</h4> +<pre>public boolean wasSuccess()</pre> +<div class="block">Returns <code>true</code> if <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html#status--"><code>status()</code></a> is either <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#LOADED"><code>BleNode.HistoricalDataLoadListener.Status.LOADED</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#ALREADY_LOADED"><code>BleNode.HistoricalDataLoadListener.Status.ALREADY_LOADED</code></a>.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" target="_top">Frames</a></li> +<li><a href="BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html new file mode 100644 index 0000000000000000000000000000000000000000..6f0a8a5265ef0a2654e2e17b7438d935d24c0398 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html @@ -0,0 +1,438 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNode.HistoricalDataLoadListener.Status (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNode.HistoricalDataLoadListener.Status (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9,"i2":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" target="_top">Frames</a></li> +<li><a href="BleNode.HistoricalDataLoadListener.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleNode.HistoricalDataLoadListener.Status" class="title">Enum BleNode.HistoricalDataLoadListener.Status</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener.Status</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleNode.HistoricalDataLoadListener.Status</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">Enumerates the status codes for operations kicked off from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> (or overloads).</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#ALREADY_LOADED">ALREADY_LOADED</a></span></code> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> (or overloads) was called but the data was already loaded to memory.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#ALREADY_LOADING">ALREADY_LOADING</a></span></code> +<div class="block">Same idea as <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#STARTED_LOADING"><code>STARTED_LOADING</code></a>, not an error status, but letting you know that the load was already in progress + when <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> (or overloads) was called a second time.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#LOADED">LOADED</a></span></code> +<div class="block">Historical data is fully loaded to memory and ready to access synchronously (without blocking current thread) + through <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_iterator-java.util.UUID-"><code>BleDevice.getHistoricalData_iterator(UUID)</code></a> (or overloads).</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#NOTHING_TO_LOAD">NOTHING_TO_LOAD</a></span></code> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> (or overloads) was called but there was no data available to load to memory.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#NULL">NULL</a></span></code> +<div class="block">Fulfills soft contract of <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#STARTED_LOADING">STARTED_LOADING</a></span></code> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> (or overloads) was called and the operation was successfully started - + expect another <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</code></a> with <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html#status--"><code>BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.status()</code></a> being <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#LOADED"><code>LOADED</code></a> shortly.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns true if <code>this==</code> <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#NULL"><code>NULL</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a> NULL</pre> +<div class="block">Fulfills soft contract of <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a>.</div> +</li> +</ul> +<a name="LOADED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>LOADED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a> LOADED</pre> +<div class="block">Historical data is fully loaded to memory and ready to access synchronously (without blocking current thread) + through <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_iterator-java.util.UUID-"><code>BleDevice.getHistoricalData_iterator(UUID)</code></a> (or overloads).</div> +</li> +</ul> +<a name="ALREADY_LOADED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ALREADY_LOADED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a> ALREADY_LOADED</pre> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> (or overloads) was called but the data was already loaded to memory.</div> +</li> +</ul> +<a name="NOTHING_TO_LOAD"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NOTHING_TO_LOAD</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a> NOTHING_TO_LOAD</pre> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> (or overloads) was called but there was no data available to load to memory.</div> +</li> +</ul> +<a name="STARTED_LOADING"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>STARTED_LOADING</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a> STARTED_LOADING</pre> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> (or overloads) was called and the operation was successfully started - + expect another <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</code></a> with <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html#status--"><code>BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.status()</code></a> being <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#LOADED"><code>LOADED</code></a> shortly.</div> +</li> +</ul> +<a name="ALREADY_LOADING"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>ALREADY_LOADING</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a> ALREADY_LOADING</pre> +<div class="block">Same idea as <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#STARTED_LOADING"><code>STARTED_LOADING</code></a>, not an error status, but letting you know that the load was already in progress + when <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> (or overloads) was called a second time. This doesn't + affect the actual loading process at all, and <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#LOADED"><code>LOADED</code></a> will eventually be returned for both callbacks.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleNode.HistoricalDataLoadListener.Status c : BleNode.HistoricalDataLoadListener.Status.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block">Returns true if <code>this==</code> <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#NULL"><code>NULL</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" target="_top">Frames</a></li> +<li><a href="BleNode.HistoricalDataLoadListener.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html new file mode 100644 index 0000000000000000000000000000000000000000..0284de603c8551d9fe8052ab7e67c3d6c6685311 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html @@ -0,0 +1,258 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNode.HistoricalDataLoadListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNode.HistoricalDataLoadListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" target="_top">Frames</a></li> +<li><a href="BleNode.HistoricalDataLoadListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleNode.HistoricalDataLoadListener" class="title">Interface BleNode.HistoricalDataLoadListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleNode.HistoricalDataLoadListener</span></pre> +<div class="block">A callback that is used by various overloads of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> that accept instances hereof. + You can also set default listeners on <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_HistoricalDataLoad-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener-"><code>BleDevice.setListener_HistoricalDataLoad(BleNode.HistoricalDataLoadListener)</code></a> + and <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_HistoricalDataLoad-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener-"><code>BleManager.setListener_HistoricalDataLoad(BleNode.HistoricalDataLoadListener)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</a></span></code> +<div class="block">Event struct passed to <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html#onEvent-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent-"><code>onEvent(HistoricalDataLoadEvent)</code></a> that provides + further information about the status of a historical data load to memory using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> + (or overloads).</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a></span></code> +<div class="block">Enumerates the status codes for operations kicked off from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> (or overloads).</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html#onEvent-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</a> e)</code> +<div class="block">Called when the historical data for a given characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> is done loading from disk.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>void onEvent(<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</a> e)</pre> +<div class="block">Called when the historical data for a given characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> is done loading from disk.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" target="_top">Frames</a></li> +<li><a href="BleNode.HistoricalDataLoadListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..94f3517180d8e42f771df5db14eb139aa6fb6f7a --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html @@ -0,0 +1,380 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" target="_top">Frames</a></li> +<li><a href="BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent" class="title">Class BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></pre> +<div class="block">Event struct passed to <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html#onEvent-com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent-"><code>BleNode.HistoricalDataQueryListener.onEvent(HistoricalDataQueryEvent)</code></a> that provides + further information about the status of a historical data load to memory using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> + (or overloads).</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#HistoricalDataQueryEvent-com.idevicesinc.sweetblue.BleNode-java.util.UUID-android.database.Cursor-com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener.Status-java.lang.String-">HistoricalDataQueryEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a> endpoint, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a> cursor, + <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a> status, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> rawQuery)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#cursor--">cursor</a></span>()</code> +<div class="block">The resulting <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database"><code>Cursor</code></a> from the database query.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#rawQuery--">rawQuery</a></span>()</code> +<div class="block">The raw query given to the database.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#status--">status</a></span>()</code> +<div class="block">The general status of the query operation.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#uuid--">uuid</a></span>()</code> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> that the data is being queried for.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#wasSuccess--">wasSuccess</a></span>()</code> +<div class="block">Returns <code>true</code> if <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#status--"><code>status()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html#SUCCESS"><code>BleNode.HistoricalDataQueryListener.Status.SUCCESS</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="HistoricalDataQueryEvent-com.idevicesinc.sweetblue.BleNode-java.util.UUID-android.database.Cursor-com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener.Status-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>HistoricalDataQueryEvent</h4> +<pre>public HistoricalDataQueryEvent(<a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a> endpoint, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a> cursor, + <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a> status, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> rawQuery)</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="uuid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>uuid</h4> +<pre>public <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid()</pre> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> that the data is being queried for.</div> +</li> +</ul> +<a name="status--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>status</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a> status()</pre> +<div class="block">The general status of the query operation.</div> +</li> +</ul> +<a name="cursor--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>cursor</h4> +<pre>public <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a> cursor()</pre> +<div class="block">The resulting <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database"><code>Cursor</code></a> from the database query. This will never be null, just an empty cursor if anything goes wrong.</div> +</li> +</ul> +<a name="rawQuery--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>rawQuery</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> rawQuery()</pre> +<div class="block">The raw query given to the database.</div> +</li> +</ul> +<a name="wasSuccess--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>wasSuccess</h4> +<pre>public boolean wasSuccess()</pre> +<div class="block">Returns <code>true</code> if <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#status--"><code>status()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html#SUCCESS"><code>BleNode.HistoricalDataQueryListener.Status.SUCCESS</code></a>.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" target="_top">Frames</a></li> +<li><a href="BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html new file mode 100644 index 0000000000000000000000000000000000000000..9c6970dbc798da67b36933512d54d14f9e5eaccd --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html @@ -0,0 +1,416 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNode.HistoricalDataQueryListener.Status (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNode.HistoricalDataQueryListener.Status (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9,"i2":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" target="_top">Frames</a></li> +<li><a href="BleNode.HistoricalDataQueryListener.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleNode.HistoricalDataQueryListener.Status" class="title">Enum BleNode.HistoricalDataQueryListener.Status</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener.Status</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleNode.HistoricalDataQueryListener.Status</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">Enumerates the status codes for operations kicked off from <a href="../../../com/idevicesinc/sweetblue/BleNode.html#select--"><code>BleNode.select()</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html#ERROR">ERROR</a></span></code> +<div class="block">General failure - this feature is still in <a href="../../../com/idevicesinc/sweetblue/annotations/Alpha.html" title="annotation in com.idevicesinc.sweetblue.annotations"><code>Alpha</code></a> so expect more detailed error statuses in the future.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html#NO_TABLE">NO_TABLE</a></span></code> +<div class="block">There is no backing table for the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html#NULL">NULL</a></span></code> +<div class="block">Fulfills soft contract of <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html#NULL_ENDPOINT">NULL_ENDPOINT</a></span></code> +<div class="block">Tried to query historical data on <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html#SUCCESS">SUCCESS</a></span></code> +<div class="block">Query completed successfully - <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#cursor--"><code>BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.cursor()</code></a> may be empty but there were no exceptions or anything.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns true if <code>this==</code> <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html#NULL"><code>NULL</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a> NULL</pre> +<div class="block">Fulfills soft contract of <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a>.</div> +</li> +</ul> +<a name="NULL_ENDPOINT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL_ENDPOINT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a> NULL_ENDPOINT</pre> +<div class="block">Tried to query historical data on <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a>.</div> +</li> +</ul> +<a name="SUCCESS"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SUCCESS</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a> SUCCESS</pre> +<div class="block">Query completed successfully - <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#cursor--"><code>BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.cursor()</code></a> may be empty but there were no exceptions or anything.</div> +</li> +</ul> +<a name="NO_TABLE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NO_TABLE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a> NO_TABLE</pre> +<div class="block">There is no backing table for the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</li> +</ul> +<a name="ERROR"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>ERROR</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a> ERROR</pre> +<div class="block">General failure - this feature is still in <a href="../../../com/idevicesinc/sweetblue/annotations/Alpha.html" title="annotation in com.idevicesinc.sweetblue.annotations"><code>Alpha</code></a> so expect more detailed error statuses in the future.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleNode.HistoricalDataQueryListener.Status c : BleNode.HistoricalDataQueryListener.Status.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block">Returns true if <code>this==</code> <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html#NULL"><code>NULL</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" target="_top">Frames</a></li> +<li><a href="BleNode.HistoricalDataQueryListener.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html new file mode 100644 index 0000000000000000000000000000000000000000..44700735b61ec9309ad5526fe35ca89365df8e8d --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html @@ -0,0 +1,256 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNode.HistoricalDataQueryListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNode.HistoricalDataQueryListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" target="_top">Frames</a></li> +<li><a href="BleNode.HistoricalDataQueryListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleNode.HistoricalDataQueryListener" class="title">Interface BleNode.HistoricalDataQueryListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleNode.HistoricalDataQueryListener</span></pre> +<div class="block">A callback that is used by <a href="../../../com/idevicesinc/sweetblue/BleNode.html#select--"><code>BleNode.select()</code></a> to listen for when a database query is done processing.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a></span></code> +<div class="block">Event struct passed to <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html#onEvent-com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent-"><code>onEvent(HistoricalDataQueryEvent)</code></a> that provides + further information about the status of a historical data load to memory using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> + (or overloads).</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a></span></code> +<div class="block">Enumerates the status codes for operations kicked off from <a href="../../../com/idevicesinc/sweetblue/BleNode.html#select--"><code>BleNode.select()</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html#onEvent-com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a> e)</code> +<div class="block">Called when the historical data for a given characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> is done querying.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>void onEvent(<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a> e)</pre> +<div class="block">Called when the historical data for a given characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> is done querying.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" target="_top">Frames</a></li> +<li><a href="BleNode.HistoricalDataQueryListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.html new file mode 100644 index 0000000000000000000000000000000000000000..8d7d1d01a264b53db903fb7a680c9e96f86ea22c --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNode.html @@ -0,0 +1,1163 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNode (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNode (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":6,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":6,"i43":10,"i44":10,"i45":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.html" target="_top">Frames</a></li> +<li><a href="BleNode.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleNode" class="title">Class BleNode</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNode</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></dd> +</dl> +<dl> +<dt>Direct Known Subclasses:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dd> +</dl> +<hr> +<br> +<pre>public abstract class <span class="typeNameLabel">BleNode</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">Abstract base class for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>, mostly just to statically tie their APIs together + wherever possible. That is, not much actual shared implementation exists in this class as of this writing.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Class and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener</a></span></code> +<div class="block">Base interface for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener</a></span></code> +<div class="block">A callback that is used by various overloads of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> that accept instances hereof.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener</a></span></code> +<div class="block">A callback that is used by <a href="../../../com/idevicesinc/sweetblue/BleNode.html#select--"><code>select()</code></a> to listen for when a database query is done processing.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#appData">appData</a></span></code> +<div class="block">Field for app to associate any data it wants with instances of this class + instead of having to subclass or manage associative hash maps or something.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>protected static <a href="http://d.android.com/reference/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#EMPTY_LIST">EMPTY_LIST</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>protected static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#EMPTY_UUID_ARRAY">EMPTY_UUID_ARRAY</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier</th> +<th class="colLast" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>protected </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#BleNode-com.idevicesinc.sweetblue.BleManager-">BleNode</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> manager)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><T> T</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#appData--">appData</a></span>()</code> +<div class="block">Convenience method that casts <a href="../../../com/idevicesinc/sweetblue/BleNode.html#appData"><code>appData</code></a> for you.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><T extends <a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a>><br>T</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#cast--">cast</a></span>()</code> +<div class="block">Just some sugar for casting to subclasses.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><T extends <a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a>><br>T</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#cast-java.lang.Class-">cast</a></span>(<a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type)</code> +<div class="block">Safer version of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#cast--"><code>cast()</code></a> that will return <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a> + if the cast cannot be made.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>abstract <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getMacAddress--">getMacAddress</a></span>()</code> +<div class="block">Returns the MAC address of the remote <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> or local <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getManager--">getManager</a></span>()</code> +<div class="block">Returns this endpoint's manager.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristic-java.util.UUID-">getNativeCharacteristic</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid)</code> +<div class="block">Returns the native characteristic for the given UUID in case you need lower-level access.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristic-java.util.UUID-java.util.UUID-">getNativeCharacteristic</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristic-java.util.UUID-"><code>getNativeCharacteristic(UUID)</code></a> for when you have characteristics with identical uuids under different services.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics_List--">getNativeCharacteristics_List</a></span>()</code> +<div class="block">Convenience overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics--"><code>getNativeCharacteristics()</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a>.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics_List-java.util.UUID-">getNativeCharacteristics_List</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid)</code> +<div class="block">Convenience overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-"><code>getNativeCharacteristics(UUID)</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a>.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics--">getNativeCharacteristics</a></span>()</code> +<div class="block">Returns all <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic</code></a> instances.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeCharacteristics</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a>> forEach)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics--"><code>getNativeCharacteristics()</code></a> that uses a for each construct instead of returning an iterator.</div> +</td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeCharacteristics</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a>> forEach)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics--"><code>getNativeCharacteristics()</code></a> that uses a for each construct instead of returning an iterator.</div> +</td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-">getNativeCharacteristics</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics--"><code>getNativeCharacteristics()</code></a> but you can filter on the service <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeCharacteristics</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a>> forEach)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-"><code>getNativeCharacteristics(UUID)</code></a> that uses a for each construct instead of returning an iterator.</div> +</td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeCharacteristics</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a>> forEach)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-"><code>getNativeCharacteristics(UUID)</code></a> that uses a for each construct instead of returning an iterator.</div> +</td> +</tr> +<tr id="i15" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor_inChar-java.util.UUID-java.util.UUID-">getNativeDescriptor_inChar</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descUuid)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-"><code>getNativeDescriptor(UUID, UUID, UUID)</code></a> that will return the first descriptor we find + inside the given characteristic matching the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</td> +</tr> +<tr id="i16" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor_inService-java.util.UUID-java.util.UUID-">getNativeDescriptor_inService</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descUuid)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-"><code>getNativeDescriptor(UUID, UUID, UUID)</code></a> that will return the first descriptor we find + inside the given service matching the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</td> +</tr> +<tr id="i17" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor-java.util.UUID-">getNativeDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descUuid)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-"><code>getNativeDescriptor(UUID, UUID, UUID)</code></a> that will return the first descriptor we find + matching the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</td> +</tr> +<tr id="i18" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-">getNativeDescriptor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descUuid)</code> +<div class="block">Returns the native descriptor for the given UUID in case you need lower-level access.</div> +</td> +</tr> +<tr id="i19" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar_List-java.util.UUID-">getNativeDescriptors_inChar_List</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid)</code> +<div class="block">Returns all descriptors on this node in the given characteristic as a list.</div> +</td> +</tr> +<tr id="i20" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar-java.util.UUID-">getNativeDescriptors_inChar</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid)</code> +<div class="block">Returns all descriptors on this node in the given characteristic.</div> +</td> +</tr> +<tr id="i21" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeDescriptors_inChar</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> forEach)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar-java.util.UUID-"><code>getNativeDescriptors_inChar(UUID)</code></a> using a for each construct.</div> +</td> +</tr> +<tr id="i22" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeDescriptors_inChar</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> forEach)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar-java.util.UUID-"><code>getNativeDescriptors_inChar(UUID)</code></a> using a for each construct.</div> +</td> +</tr> +<tr id="i23" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService_List-java.util.UUID-">getNativeDescriptors_inService_List</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid)</code> +<div class="block">Returns all descriptors on this node in the given service as a list.</div> +</td> +</tr> +<tr id="i24" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService-java.util.UUID-">getNativeDescriptors_inService</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid)</code> +<div class="block">Returns all descriptors on this node in the given service.</div> +</td> +</tr> +<tr id="i25" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeDescriptors_inService</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> forEach)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService-java.util.UUID-"><code>getNativeDescriptors_inService(UUID)</code></a> using a for each construct.</div> +</td> +</tr> +<tr id="i26" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeDescriptors_inService</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> forEach)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService-java.util.UUID-"><code>getNativeDescriptors_inService(UUID)</code></a> using a for each construct.</div> +</td> +</tr> +<tr id="i27" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_List--">getNativeDescriptors_List</a></span>()</code> +<div class="block">Returns all descriptors on this node as a list.</div> +</td> +</tr> +<tr id="i28" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_List-java.util.UUID-java.util.UUID-">getNativeDescriptors_List</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid)</code> +<div class="block">Returns all descriptors on this node in the given characteristic as a list.</div> +</td> +</tr> +<tr id="i29" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors--">getNativeDescriptors</a></span>()</code> +<div class="block">Returns all descriptors on this node.</div> +</td> +</tr> +<tr id="i30" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeDescriptors</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> forEach)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors--"><code>getNativeDescriptors()</code></a> using a for each construct.</div> +</td> +</tr> +<tr id="i31" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeDescriptors</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> forEach)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors--"><code>getNativeDescriptors()</code></a> using a for each construct.</div> +</td> +</tr> +<tr id="i32" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-java.util.UUID-java.util.UUID-">getNativeDescriptors</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid)</code> +<div class="block">Returns all descriptors on this node in the given characteristic.</div> +</td> +</tr> +<tr id="i33" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeDescriptors</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> forEach)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-java.util.UUID-java.util.UUID-"><code>getNativeDescriptors(UUID, UUID)</code></a> using a for each construct.</div> +</td> +</tr> +<tr id="i34" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeDescriptors</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> forEach)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-java.util.UUID-java.util.UUID-"><code>getNativeDescriptors(UUID, UUID)</code></a> using a for each construct.</div> +</td> +</tr> +<tr id="i35" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattService</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeService-java.util.UUID-">getNativeService</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid)</code> +<div class="block">Returns the native service for the given UUID in case you need lower-level access.</div> +</td> +</tr> +<tr id="i36" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattService</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeServices_List--">getNativeServices_List</a></span>()</code> +<div class="block">Convenience overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeServices--"><code>getNativeServices()</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a>.</div> +</td> +</tr> +<tr id="i37" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattService</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeServices--">getNativeServices</a></span>()</code> +<div class="block">Returns all <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattService</code></a> instances.</div> +</td> +</tr> +<tr id="i38" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeServices-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeServices</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattService</a>> forEach)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeServices--"><code>getNativeServices()</code></a> that uses a for each construct instead of returning an iterator.</div> +</td> +</tr> +<tr id="i39" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeServices-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeServices</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattService</a>> forEach)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeServices--"><code>getNativeServices()</code></a> that uses a for each construct instead of returning an iterator.</div> +</td> +</tr> +<tr id="i40" class="altColor"> +<td class="colFirst"><code>protected <T extends com.idevicesinc.sweetblue.PA_ServiceManager><br>T</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getServiceManager--">getServiceManager</a></span>()</code> </td> +</tr> +<tr id="i41" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-">newHistoricalData</a></span>(byte[] data, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime)</code> +<div class="block">Returns a new <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> instance using + <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataFactory"><code>BleNodeConfig.historicalDataFactory</code></a> if available.</div> +</td> +</tr> +<tr id="i42" class="altColor"> +<td class="colFirst"><code>protected abstract com.idevicesinc.sweetblue.PA_ServiceManager</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#newServiceManager--">newServiceManager</a></span>()</code> </td> +</tr> +<tr id="i43" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#queryHistoricalData-java.lang.String-">queryHistoricalData</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> query)</code> +<div class="block">Provides a means to perform a raw SQL query on the database storing the historical data for this node.</div> +</td> +</tr> +<tr id="i44" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#queryHistoricalData-java.lang.String-com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener-">queryHistoricalData</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> query, + <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener</a> listener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleNode.html#queryHistoricalData-java.lang.String-"><code>queryHistoricalData(String)</code></a> but performs the query on a background thread and returns the result back on the main thread + through the provided <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleNode.HistoricalDataQueryListener</code></a>.</div> +</td> +</tr> +<tr id="i45" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Select</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNode.html#select--">select</a></span>()</code> +<div class="block">Provides a way to perform a statically checked SQL query by chaining method calls.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.UsesCustomNull"> +<!-- --> +</a> +<h3>Methods inherited from interface com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="EMPTY_UUID_ARRAY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>EMPTY_UUID_ARRAY</h4> +<pre>protected static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] EMPTY_UUID_ARRAY</pre> +</li> +</ul> +<a name="EMPTY_LIST"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>EMPTY_LIST</h4> +<pre>protected static final <a href="http://d.android.com/reference/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> EMPTY_LIST</pre> +</li> +</ul> +<a name="appData"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>appData</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> appData</pre> +<div class="block">Field for app to associate any data it wants with instances of this class + instead of having to subclass or manage associative hash maps or something. + The library does not touch or interact with this data in any way.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#appData"><code>BleManager.appData</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNode.html#appData"><code>appData</code></a></dd> +</dl> +</li> +</ul> +</li> +</ul> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="BleNode-com.idevicesinc.sweetblue.BleManager-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BleNode</h4> +<pre>protected BleNode(<a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> manager)</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="newServiceManager--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newServiceManager</h4> +<pre>protected abstract com.idevicesinc.sweetblue.PA_ServiceManager newServiceManager()</pre> +</li> +</ul> +<a name="getServiceManager--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getServiceManager</h4> +<pre>protected <T extends com.idevicesinc.sweetblue.PA_ServiceManager> T getServiceManager()</pre> +</li> +</ul> +<a name="getNativeDescriptor-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptor</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a> getNativeDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descUuid)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-"><code>getNativeDescriptor(UUID, UUID, UUID)</code></a> that will return the first descriptor we find + matching the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</li> +</ul> +<a name="getNativeDescriptor_inChar-java.util.UUID-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptor_inChar</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a> getNativeDescriptor_inChar(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descUuid)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-"><code>getNativeDescriptor(UUID, UUID, UUID)</code></a> that will return the first descriptor we find + inside the given characteristic matching the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</li> +</ul> +<a name="getNativeDescriptor_inService-java.util.UUID-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptor_inService</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a> getNativeDescriptor_inService(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descUuid)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-"><code>getNativeDescriptor(UUID, UUID, UUID)</code></a> that will return the first descriptor we find + inside the given service matching the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</li> +</ul> +<a name="getNativeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptor</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a> getNativeDescriptor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descUuid)</pre> +<div class="block">Returns the native descriptor for the given UUID in case you need lower-level access.</div> +</li> +</ul> +<a name="getNativeCharacteristic-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeCharacteristic</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a> getNativeCharacteristic(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid)</pre> +<div class="block">Returns the native characteristic for the given UUID in case you need lower-level access.</div> +</li> +</ul> +<a name="getNativeCharacteristic-java.util.UUID-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeCharacteristic</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a> getNativeCharacteristic(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristic-java.util.UUID-"><code>getNativeCharacteristic(UUID)</code></a> for when you have characteristics with identical uuids under different services.</div> +</li> +</ul> +<a name="getNativeService-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeService</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattService</a> getNativeService(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid)</pre> +<div class="block">Returns the native service for the given UUID in case you need lower-level access.</div> +</li> +</ul> +<a name="getNativeServices--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeServices</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattService</a>> getNativeServices()</pre> +<div class="block">Returns all <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattService</code></a> instances.</div> +</li> +</ul> +<a name="getNativeServices_List--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeServices_List</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattService</a>> getNativeServices_List()</pre> +<div class="block">Convenience overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeServices--"><code>getNativeServices()</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a>.</div> +</li> +</ul> +<a name="getNativeServices-com.idevicesinc.sweetblue.utils.ForEach_Void-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeServices</h4> +<pre>public void getNativeServices(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattService</a>> forEach)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeServices--"><code>getNativeServices()</code></a> that uses a for each construct instead of returning an iterator.</div> +</li> +</ul> +<a name="getNativeServices-com.idevicesinc.sweetblue.utils.ForEach_Breakable-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeServices</h4> +<pre>public void getNativeServices(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattService</a>> forEach)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeServices--"><code>getNativeServices()</code></a> that uses a for each construct instead of returning an iterator.</div> +</li> +</ul> +<a name="getNativeCharacteristics-com.idevicesinc.sweetblue.utils.ForEach_Void-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeCharacteristics</h4> +<pre>public void getNativeCharacteristics(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a>> forEach)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics--"><code>getNativeCharacteristics()</code></a> that uses a for each construct instead of returning an iterator.</div> +</li> +</ul> +<a name="getNativeCharacteristics-com.idevicesinc.sweetblue.utils.ForEach_Breakable-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeCharacteristics</h4> +<pre>public void getNativeCharacteristics(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a>> forEach)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics--"><code>getNativeCharacteristics()</code></a> that uses a for each construct instead of returning an iterator.</div> +</li> +</ul> +<a name="getNativeCharacteristics-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeCharacteristics</h4> +<pre>public void getNativeCharacteristics(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a>> forEach)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-"><code>getNativeCharacteristics(UUID)</code></a> that uses a for each construct instead of returning an iterator.</div> +</li> +</ul> +<a name="getNativeCharacteristics-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeCharacteristics</h4> +<pre>public void getNativeCharacteristics(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a>> forEach)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-"><code>getNativeCharacteristics(UUID)</code></a> that uses a for each construct instead of returning an iterator.</div> +</li> +</ul> +<a name="getNativeCharacteristics--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeCharacteristics</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a>> getNativeCharacteristics()</pre> +<div class="block">Returns all <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic</code></a> instances.</div> +</li> +</ul> +<a name="getNativeCharacteristics_List--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeCharacteristics_List</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a>> getNativeCharacteristics_List()</pre> +<div class="block">Convenience overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics--"><code>getNativeCharacteristics()</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a>.</div> +</li> +</ul> +<a name="getNativeCharacteristics-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeCharacteristics</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a>> getNativeCharacteristics(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics--"><code>getNativeCharacteristics()</code></a> but you can filter on the service <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</li> +</ul> +<a name="getNativeCharacteristics_List-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeCharacteristics_List</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a>> getNativeCharacteristics_List(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid)</pre> +<div class="block">Convenience overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-"><code>getNativeCharacteristics(UUID)</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a>.</div> +</li> +</ul> +<a name="getNativeDescriptors--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptors</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> getNativeDescriptors()</pre> +<div class="block">Returns all descriptors on this node.</div> +</li> +</ul> +<a name="getNativeDescriptors_List--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptors_List</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> getNativeDescriptors_List()</pre> +<div class="block">Returns all descriptors on this node as a list.</div> +</li> +</ul> +<a name="getNativeDescriptors_inService-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptors_inService</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> getNativeDescriptors_inService(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid)</pre> +<div class="block">Returns all descriptors on this node in the given service.</div> +</li> +</ul> +<a name="getNativeDescriptors_inService_List-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptors_inService_List</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> getNativeDescriptors_inService_List(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid)</pre> +<div class="block">Returns all descriptors on this node in the given service as a list.</div> +</li> +</ul> +<a name="getNativeDescriptors_inChar-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptors_inChar</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> getNativeDescriptors_inChar(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid)</pre> +<div class="block">Returns all descriptors on this node in the given characteristic.</div> +</li> +</ul> +<a name="getNativeDescriptors_inChar_List-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptors_inChar_List</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> getNativeDescriptors_inChar_List(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid)</pre> +<div class="block">Returns all descriptors on this node in the given characteristic as a list.</div> +</li> +</ul> +<a name="getNativeDescriptors-java.util.UUID-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptors</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> getNativeDescriptors(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid)</pre> +<div class="block">Returns all descriptors on this node in the given characteristic.</div> +</li> +</ul> +<a name="getNativeDescriptors_List-java.util.UUID-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptors_List</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> getNativeDescriptors_List(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid)</pre> +<div class="block">Returns all descriptors on this node in the given characteristic as a list.</div> +</li> +</ul> +<a name="getNativeDescriptors-com.idevicesinc.sweetblue.utils.ForEach_Void-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptors</h4> +<pre>public void getNativeDescriptors(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> forEach)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors--"><code>getNativeDescriptors()</code></a> using a for each construct.</div> +</li> +</ul> +<a name="getNativeDescriptors-com.idevicesinc.sweetblue.utils.ForEach_Breakable-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptors</h4> +<pre>public void getNativeDescriptors(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> forEach)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors--"><code>getNativeDescriptors()</code></a> using a for each construct.</div> +</li> +</ul> +<a name="getNativeDescriptors_inService-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptors_inService</h4> +<pre>public void getNativeDescriptors_inService(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> forEach)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService-java.util.UUID-"><code>getNativeDescriptors_inService(UUID)</code></a> using a for each construct.</div> +</li> +</ul> +<a name="getNativeDescriptors_inService-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptors_inService</h4> +<pre>public void getNativeDescriptors_inService(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> forEach)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService-java.util.UUID-"><code>getNativeDescriptors_inService(UUID)</code></a> using a for each construct.</div> +</li> +</ul> +<a name="getNativeDescriptors_inChar-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptors_inChar</h4> +<pre>public void getNativeDescriptors_inChar(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> forEach)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar-java.util.UUID-"><code>getNativeDescriptors_inChar(UUID)</code></a> using a for each construct.</div> +</li> +</ul> +<a name="getNativeDescriptors_inChar-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptors_inChar</h4> +<pre>public void getNativeDescriptors_inChar(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> forEach)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar-java.util.UUID-"><code>getNativeDescriptors_inChar(UUID)</code></a> using a for each construct.</div> +</li> +</ul> +<a name="getNativeDescriptors-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptors</h4> +<pre>public void getNativeDescriptors(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> forEach)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-java.util.UUID-java.util.UUID-"><code>getNativeDescriptors(UUID, UUID)</code></a> using a for each construct.</div> +</li> +</ul> +<a name="getNativeDescriptors-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeDescriptors</h4> +<pre>public void getNativeDescriptors(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a>> forEach)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-java.util.UUID-java.util.UUID-"><code>getNativeDescriptors(UUID, UUID)</code></a> using a for each construct.</div> +</li> +</ul> +<a name="newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newHistoricalData</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> newHistoricalData(byte[] data, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime)</pre> +<div class="block">Returns a new <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> instance using + <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataFactory"><code>BleNodeConfig.historicalDataFactory</code></a> if available.</div> +</li> +</ul> +<a name="getManager--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getManager</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> getManager()</pre> +<div class="block">Returns this endpoint's manager.</div> +</li> +</ul> +<a name="appData--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>appData</h4> +<pre>public <T> T appData()</pre> +<div class="block">Convenience method that casts <a href="../../../com/idevicesinc/sweetblue/BleNode.html#appData"><code>appData</code></a> for you.</div> +</li> +</ul> +<a name="queryHistoricalData-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>queryHistoricalData</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a> queryHistoricalData(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> query)</pre> +<div class="block">Provides a means to perform a raw SQL query on the database storing the historical data for this node. Use <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalDataTableName-java.util.UUID-"><code>BleDevice.getHistoricalDataTableName(UUID)</code></a> + to generate table names and <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils"><code>HistoricalDataColumn</code></a> to get column names.</div> +</li> +</ul> +<a name="queryHistoricalData-java.lang.String-com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>queryHistoricalData</h4> +<pre>public void queryHistoricalData(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> query, + <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener</a> listener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleNode.html#queryHistoricalData-java.lang.String-"><code>queryHistoricalData(String)</code></a> but performs the query on a background thread and returns the result back on the main thread + through the provided <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleNode.HistoricalDataQueryListener</code></a>.</div> +</li> +</ul> +<a name="select--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>select</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Select</a> select()</pre> +<div class="block">Provides a way to perform a statically checked SQL query by chaining method calls.</div> +</li> +</ul> +<a name="cast--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>cast</h4> +<pre>public <T extends <a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a>> T cast()</pre> +<div class="block">Just some sugar for casting to subclasses.</div> +</li> +</ul> +<a name="cast-java.lang.Class-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>cast</h4> +<pre>public <T extends <a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a>> T cast(<a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><T> type)</pre> +<div class="block">Safer version of <a href="../../../com/idevicesinc/sweetblue/BleNode.html#cast--"><code>cast()</code></a> that will return <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a> + if the cast cannot be made.</div> +</li> +</ul> +<a name="getMacAddress--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getMacAddress</h4> +<pre>public abstract <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getMacAddress()</pre> +<div class="block">Returns the MAC address of the remote <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> or local <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNode.html" target="_top">Frames</a></li> +<li><a href="BleNode.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html new file mode 100644 index 0000000000000000000000000000000000000000..bab05a97920d4c2febf1a8c59e5ff030cb07b073 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html @@ -0,0 +1,320 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNodeConfig.DefaultHistoricalDataLogFilter (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNodeConfig.DefaultHistoricalDataLogFilter (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.DefaultHistoricalDataLogFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleNodeConfig.DefaultHistoricalDataLogFilter" class="title">Class BleNodeConfig.DefaultHistoricalDataLogFilter</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNodeConfig.DefaultHistoricalDataLogFilter</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleNodeConfig.DefaultHistoricalDataLogFilter</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></pre> +<div class="block">Default implementation of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a> set on <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataLogFilter"><code>BleNodeConfig.historicalDataLogFilter</code></a> + that logs the most recent data reading to memory only, flushing the previous one.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a></code></li> +</ul> +</li> +</ul> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter"> +<!-- --> +</a> +<h3>Fields inherited from interface com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#DISABLED">DISABLED</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#PersistenceLevel_BOTH">PersistenceLevel_BOTH</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#PersistenceLevel_DISK">PersistenceLevel_DISK</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#PersistenceLevel_MEMORY">PersistenceLevel_MEMORY</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#PersistenceLevel_NONE">PersistenceLevel_NONE</a></code></li> +</ul> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html#DefaultHistoricalDataLogFilter--">DefaultHistoricalDataLogFilter</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a> e)</code> +<div class="block">Implement this method to be notified of when the library requests whether historical data should be written to a log, + and to respond with your preference of if/how this data should be written.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="DefaultHistoricalDataLogFilter--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>DefaultHistoricalDataLogFilter</h4> +<pre>public DefaultHistoricalDataLogFilter()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a> onEvent(<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a> e)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent-">BleNodeConfig.HistoricalDataLogFilter</a></code></span></div> +<div class="block">Implement this method to be notified of when the library requests whether historical data should be written to a log, + and to respond with your preference of if/how this data should be written.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent-">onEvent</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.DefaultHistoricalDataLogFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html new file mode 100644 index 0000000000000000000000000000000000000000..c0cd1604ac8fb61acb9cb884779fabd1f786aedc --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html @@ -0,0 +1,411 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNodeConfig.DefaultReconnectFilter (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNodeConfig.DefaultReconnectFilter (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.DefaultReconnectFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleNodeConfig.DefaultReconnectFilter" class="title">Class BleNodeConfig.DefaultReconnectFilter</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNodeConfig.DefaultReconnectFilter</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleNodeConfig.DefaultReconnectFilter</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter</a></pre> +<div class="block">Default implementation of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.ReconnectFilter</code></a> that uses <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#retryInstantly--"><code>BleNodeConfig.ReconnectFilter.Please.retryInstantly()</code></a> for the + first reconnect attempt, and from then on uses the <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> rate passed to the constructor</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a></code></li> +</ul> +</li> +</ul> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html#DEFAULT_INITIAL_RECONNECT_DELAY">DEFAULT_INITIAL_RECONNECT_DELAY</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html#LONG_TERM_ATTEMPT_RATE">LONG_TERM_ATTEMPT_RATE</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html#LONG_TERM_TIMEOUT">LONG_TERM_TIMEOUT</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html#SHORT_TERM_ATTEMPT_RATE">SHORT_TERM_ATTEMPT_RATE</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html#SHORT_TERM_TIMEOUT">SHORT_TERM_TIMEOUT</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html#DefaultReconnectFilter--">DefaultReconnectFilter</a></span>()</code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html#DefaultReconnectFilter-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-">DefaultReconnectFilter</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> reconnectRate__SHORT_TERM, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> reconnectRate__LONG_TERM, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> timeout__SHORT_TERM, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> timeout__LONG_TERM)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a> e)</code> +<div class="block">Called for every connection failure while device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="DEFAULT_INITIAL_RECONNECT_DELAY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_INITIAL_RECONNECT_DELAY</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a> DEFAULT_INITIAL_RECONNECT_DELAY</pre> +</li> +</ul> +<a name="LONG_TERM_ATTEMPT_RATE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>LONG_TERM_ATTEMPT_RATE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> LONG_TERM_ATTEMPT_RATE</pre> +</li> +</ul> +<a name="SHORT_TERM_ATTEMPT_RATE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SHORT_TERM_ATTEMPT_RATE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> SHORT_TERM_ATTEMPT_RATE</pre> +</li> +</ul> +<a name="SHORT_TERM_TIMEOUT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SHORT_TERM_TIMEOUT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> SHORT_TERM_TIMEOUT</pre> +</li> +</ul> +<a name="LONG_TERM_TIMEOUT"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>LONG_TERM_TIMEOUT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> LONG_TERM_TIMEOUT</pre> +</li> +</ul> +</li> +</ul> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="DefaultReconnectFilter--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DefaultReconnectFilter</h4> +<pre>public DefaultReconnectFilter()</pre> +</li> +</ul> +<a name="DefaultReconnectFilter-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>DefaultReconnectFilter</h4> +<pre>public DefaultReconnectFilter(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> reconnectRate__SHORT_TERM, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> reconnectRate__LONG_TERM, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> timeout__SHORT_TERM, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> timeout__LONG_TERM)</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a> onEvent(<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a> e)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-">BleNodeConfig.ReconnectFilter</a></code></span></div> +<div class="block">Called for every connection failure while device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a>. + Use the static methods of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.ReconnectFilter.Please</code></a> as return values to stop reconnection (<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#stopRetrying--"><code>BleNodeConfig.ReconnectFilter.Please.stopRetrying()</code></a>), try again + instantly (<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#retryInstantly--"><code>BleNodeConfig.ReconnectFilter.Please.retryInstantly()</code></a>), or after some amount of time <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#retryIn-com.idevicesinc.sweetblue.utils.Interval-"><code>BleNodeConfig.ReconnectFilter.Please.retryIn(Interval)</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-">onEvent</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.DefaultReconnectFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html new file mode 100644 index 0000000000000000000000000000000000000000..01fbf463892917b40f1af85493143191ae64a391 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html @@ -0,0 +1,366 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNodeConfig.DefaultTaskTimeoutRequestFilter (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNodeConfig.DefaultTaskTimeoutRequestFilter (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleNodeConfig.DefaultTaskTimeoutRequestFilter" class="title">Class BleNodeConfig.DefaultTaskTimeoutRequestFilter</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNodeConfig.DefaultTaskTimeoutRequestFilter</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleNodeConfig.DefaultTaskTimeoutRequestFilter</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter</a></pre> +<div class="block">Default implementation of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.TaskTimeoutRequestFilter</code></a> that simply sets the timeout + for all <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> instances to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html#DEFAULT_TASK_TIMEOUT"><code>DEFAULT_TASK_TIMEOUT</code></a> seconds.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.Please</a>, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a></code></li> +</ul> +</li> +</ul> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html#DEFAULT_CRASH_RESOLVER_TIMEOUT">DEFAULT_CRASH_RESOLVER_TIMEOUT</a></span></code> +<div class="block">Value used for crash resolver process because this can take a bit longer.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html#DEFAULT_TASK_TIMEOUT">DEFAULT_TASK_TIMEOUT</a></span></code> +<div class="block">Default value for all tasks.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html#DefaultTaskTimeoutRequestFilter--">DefaultTaskTimeoutRequestFilter</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a> e)</code> +<div class="block">Implement this to have fine-grained control over <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> timeout behavior.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="DEFAULT_TASK_TIMEOUT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_TASK_TIMEOUT</h4> +<pre>public static final double DEFAULT_TASK_TIMEOUT</pre> +<div class="block">Default value for all tasks.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleNodeConfig.DefaultTaskTimeoutRequestFilter.DEFAULT_TASK_TIMEOUT">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="DEFAULT_CRASH_RESOLVER_TIMEOUT"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>DEFAULT_CRASH_RESOLVER_TIMEOUT</h4> +<pre>public static final double DEFAULT_CRASH_RESOLVER_TIMEOUT</pre> +<div class="block">Value used for crash resolver process because this can take a bit longer.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleNodeConfig.DefaultTaskTimeoutRequestFilter.DEFAULT_CRASH_RESOLVER_TIMEOUT">Constant Field Values</a></dd> +</dl> +</li> +</ul> +</li> +</ul> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="DefaultTaskTimeoutRequestFilter--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>DefaultTaskTimeoutRequestFilter</h4> +<pre>public DefaultTaskTimeoutRequestFilter()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.Please</a> onEvent(<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a> e)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent-">BleNodeConfig.TaskTimeoutRequestFilter</a></code></span></div> +<div class="block">Implement this to have fine-grained control over <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> timeout behavior.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent-">onEvent</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html new file mode 100644 index 0000000000000000000000000000000000000000..4230b105eda2d1eace08dddf961d67974e373e5a --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html @@ -0,0 +1,236 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNodeConfig.HistoricalDataFactory (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNodeConfig.HistoricalDataFactory (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.HistoricalDataFactory.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleNodeConfig.HistoricalDataFactory" class="title">Interface BleNodeConfig.HistoricalDataFactory</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleNodeConfig.HistoricalDataFactory</span></pre> +<div class="block">Provide an instance to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataFactory"><code>BleNodeConfig.historicalDataFactory</code></a> to return custom subclasses + of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> if you would like. For example + you might have a graphing library which requires a "Point" interface with methods <code>getX()</code> + and <code>getY()</code>. You could then create a factory that returns subclasses of + <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> that implement this interface, so you don't + need to duplicate the data and waste memory.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html#newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-">newHistoricalData</a></span>(byte[] data, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime)</code> +<div class="block">Return a new subclass of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> that for example implements a custom interface + for another library that handles graphing or analytics.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>newHistoricalData</h4> +<pre><a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> newHistoricalData(byte[] data, + <a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime)</pre> +<div class="block">Return a new subclass of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> that for example implements a custom interface + for another library that handles graphing or analytics.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.HistoricalDataFactory.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..5ffb0c79cc078aea393393063ae134adc95e25f6 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html @@ -0,0 +1,443 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent" class="title">Class BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></pre> +<div class="block">Event passed to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent-"><code>BleNodeConfig.HistoricalDataLogFilter.onEvent(HistoricalDataLogEvent)</code></a> that provides + information you can use to determine whether or not <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--"><code>data()</code></a> should be logged.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#charUuid--">charUuid</a></span>()</code> +<div class="block">The characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> associated with <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--"><code>data()</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--">data</a></span>()</code> +<div class="block">The data to be written.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#device--">device</a></span>()</code> +<div class="block">Tries to cast <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#node--"><code>node()</code></a> to a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>, otherwise returns <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#epochTime--">epochTime</a></span>()</code> +<div class="block">Timestamp of when the data was obtained.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#includesDisk-int-">includesDisk</a></span>(int enum_PersistenceLevel)</code> </td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#includesMemory-int-">includesMemory</a></span>(int enum_PersistenceLevel)</code> </td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#isFor-java.util.UUID-">isFor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> +<div class="block">Returns true if this event is associated with the given uuid.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#isFor-java.util.UUID:A-">isFor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids)</code> +<div class="block">Returns true if this event is associated with any of the given uuids.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#macAddress--">macAddress</a></span>()</code> +<div class="block">The device or server client in question.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#node--">node</a></span>()</code> +<div class="block">The node that is currently trying to reconnect.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#server--">server</a></span>()</code> +<div class="block">Tries to cast <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#node--"><code>node()</code></a> to a <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>, otherwise returns <a href="../../../com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a>.</div> +</td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#source--">source</a></span>()</code> +<div class="block">The source of the data - read, notify, etc.</div> +</td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="node--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>node</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a> node()</pre> +<div class="block">The node that is currently trying to reconnect.</div> +</li> +</ul> +<a name="device--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>device</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device()</pre> +<div class="block">Tries to cast <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#node--"><code>node()</code></a> to a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>, otherwise returns <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a>.</div> +</li> +</ul> +<a name="server--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>server</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a> server()</pre> +<div class="block">Tries to cast <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#node--"><code>node()</code></a> to a <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>, otherwise returns <a href="../../../com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a>.</div> +</li> +</ul> +<a name="macAddress--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>macAddress</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress()</pre> +<div class="block">The device or server client in question.</div> +</li> +</ul> +<a name="data--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>data</h4> +<pre>public byte[] data()</pre> +<div class="block">The data to be written.</div> +</li> +</ul> +<a name="epochTime--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>epochTime</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime()</pre> +<div class="block">Timestamp of when the data was obtained.</div> +</li> +</ul> +<a name="source--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>source</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a> source()</pre> +<div class="block">The source of the data - read, notify, etc.</div> +</li> +</ul> +<a name="charUuid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>charUuid</h4> +<pre>public <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid()</pre> +<div class="block">The characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> associated with <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--"><code>data()</code></a>.</div> +</li> +</ul> +<a name="isFor-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isFor</h4> +<pre>public boolean isFor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<div class="block">Returns true if this event is associated with the given uuid.</div> +</li> +</ul> +<a name="isFor-java.util.UUID:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isFor</h4> +<pre>public boolean isFor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids)</pre> +<div class="block">Returns true if this event is associated with any of the given uuids.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +<a name="includesMemory-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>includesMemory</h4> +<pre>public static boolean includesMemory(int enum_PersistenceLevel)</pre> +</li> +</ul> +<a name="includesDisk-int-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>includesDisk</h4> +<pre>public static boolean includesDisk(int enum_PersistenceLevel)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html new file mode 100644 index 0000000000000000000000000000000000000000..83da80374d0038a2aab1a17879993f65688115e6 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html @@ -0,0 +1,404 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNodeConfig.HistoricalDataLogFilter.Please (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNodeConfig.HistoricalDataLogFilter.Please (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":10,"i5":10,"i6":10,"i7":9,"i8":9,"i9":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.HistoricalDataLogFilter.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleNodeConfig.HistoricalDataLogFilter.Please" class="title">Class BleNodeConfig.HistoricalDataLogFilter.Please</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.Please</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleNodeConfig.HistoricalDataLogFilter.Please</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Special value returned from <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent-"><code>BleNodeConfig.HistoricalDataLogFilter.onEvent(HistoricalDataLogEvent)</code></a> + that determines if/how <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.data()</code></a> will get logged.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#andAmendData-byte:A-">andAmendData</a></span>(byte[] data)</code> +<div class="block">Last chance to amend or replace <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.data()</code></a> before it's written to the log.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#andAmendEpochTime-com.idevicesinc.sweetblue.utils.EpochTime-">andAmendEpochTime</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime)</code> +<div class="block">Last chance to amend or replace <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#epochTime--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.epochTime()</code></a> before it's written to the log.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#andLimitLogTo-long-">andLimitLogTo</a></span>(long logLimit)</code> +<div class="block">Calling this will crop the log to the given limit <i>before></i> <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.data()</code></a> is written.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#doNotLog--">doNotLog</a></span>()</code> +<div class="block">Will not log the data.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#getAmendedData--">getAmendedData</a></span>()</code> +<div class="block">Returns the amended data provided through <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#andAmendData-byte:A-"><code>andAmendData(byte[])</code></a>, or <code>null</code> if not applicable.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#getAmendedEpochTime--">getAmendedEpochTime</a></span>()</code> +<div class="block">Returns the amended epoch time provided through <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#andAmendEpochTime-com.idevicesinc.sweetblue.utils.EpochTime-"><code>andAmendEpochTime(EpochTime)</code></a>, or <a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html#NULL"><code>EpochTime.NULL</code></a> if not applicable.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>long</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#getLimit--">getLimit</a></span>()</code> +<div class="block">Returns the limit provided through <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#andLimitLogTo-long-"><code>andLimitLogTo(long)</code></a>, or <a href="http://d.android.com/reference/java/lang/Long.html?is-external=true#MAX_VALUE" title="class or interface in java.lang"><code>Long.MAX_VALUE</code></a> if not applicable.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#logToDisk--">logToDisk</a></span>()</code> +<div class="block">Will log the data to disk only, currently through SQLite.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#logToMemory--">logToMemory</a></span>()</code> +<div class="block">Will log the data to current app memory only.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#logToMemoryAndDisk--">logToMemoryAndDisk</a></span>()</code> +<div class="block">Will log the data to both memory and disk - combination of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#logToMemory--"><code>logToMemory()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#logToDisk--"><code>logToDisk()</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="getLimit--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getLimit</h4> +<pre>public long getLimit()</pre> +<div class="block">Returns the limit provided through <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#andLimitLogTo-long-"><code>andLimitLogTo(long)</code></a>, or <a href="http://d.android.com/reference/java/lang/Long.html?is-external=true#MAX_VALUE" title="class or interface in java.lang"><code>Long.MAX_VALUE</code></a> if not applicable.</div> +</li> +</ul> +<a name="getAmendedData--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getAmendedData</h4> +<pre>public byte[] getAmendedData()</pre> +<div class="block">Returns the amended data provided through <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#andAmendData-byte:A-"><code>andAmendData(byte[])</code></a>, or <code>null</code> if not applicable.</div> +</li> +</ul> +<a name="getAmendedEpochTime--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getAmendedEpochTime</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> getAmendedEpochTime()</pre> +<div class="block">Returns the amended epoch time provided through <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#andAmendEpochTime-com.idevicesinc.sweetblue.utils.EpochTime-"><code>andAmendEpochTime(EpochTime)</code></a>, or <a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html#NULL"><code>EpochTime.NULL</code></a> if not applicable.</div> +</li> +</ul> +<a name="andAmendData-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>andAmendData</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a> andAmendData(byte[] data)</pre> +<div class="block">Last chance to amend or replace <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.data()</code></a> before it's written to the log.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>this</code> so you can chain calls together.</dd> +</dl> +</li> +</ul> +<a name="andAmendEpochTime-com.idevicesinc.sweetblue.utils.EpochTime-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>andAmendEpochTime</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a> andAmendEpochTime(<a href="../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime)</pre> +<div class="block">Last chance to amend or replace <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#epochTime--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.epochTime()</code></a> before it's written to the log.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>this</code> so you can chain calls together.</dd> +</dl> +</li> +</ul> +<a name="andLimitLogTo-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>andLimitLogTo</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a> andLimitLogTo(long logLimit)</pre> +<div class="block">Calling this will crop the log to the given limit <i>before></i> <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.data()</code></a> is written. + So if you call this with <code>0</code> <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getHistoricalDataCount-java.util.UUID-"><code>BleDevice.getHistoricalDataCount(java.util.UUID)</code></a> will return <code>1</code> + after this.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>this</code> so you can chain calls together.</dd> +</dl> +</li> +</ul> +<a name="logToDisk--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>logToDisk</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a> logToDisk()</pre> +<div class="block">Will log the data to disk only, currently through SQLite. Data is preserved across app sessions + until (a) the user uninstalls the app, (b) the user clears the app's data, or (c) you call + one of the <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData--"><code>BleDevice.clearHistoricalData()</code></a> overloads.</div> +</li> +</ul> +<a name="logToMemory--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>logToMemory</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a> logToMemory()</pre> +<div class="block">Will log the data to current app memory only. When the app is destroyed the data will be lost.</div> +</li> +</ul> +<a name="logToMemoryAndDisk--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>logToMemoryAndDisk</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a> logToMemoryAndDisk()</pre> +<div class="block">Will log the data to both memory and disk - combination of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#logToMemory--"><code>logToMemory()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#logToDisk--"><code>logToDisk()</code></a>.</div> +</li> +</ul> +<a name="doNotLog--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>doNotLog</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a> doNotLog()</pre> +<div class="block">Will not log the data.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.HistoricalDataLogFilter.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html new file mode 100644 index 0000000000000000000000000000000000000000..a2d12554fbc7b5a834f2c1db924ad239e8fceaad --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html @@ -0,0 +1,487 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNodeConfig.HistoricalDataLogFilter.Source (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNodeConfig.HistoricalDataLogFilter.Source (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9,"i2":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.HistoricalDataLogFilter.Source.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleNodeConfig.HistoricalDataLogFilter.Source" class="title">Enum BleNodeConfig.HistoricalDataLogFilter.Source</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.Source</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleNodeConfig.HistoricalDataLogFilter.Source</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">Signifies where the data came from, usually from a BLE read or notification.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#INDICATION">INDICATION</a></span></code> +<div class="block">Originates from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(java.util.UUID, com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#MULTIPLE_MANUAL_ADDITIONS">MULTIPLE_MANUAL_ADDITIONS</a></span></code> +<div class="block">Originates from manual addition of data through <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-java.util.Iterator-"><code>BleDevice.addHistoricalData(UUID, java.util.Iterator)</code></a> + or various overloads that add multiple pieces of data all at once.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#NOTIFICATION">NOTIFICATION</a></span></code> +<div class="block">Originates from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(java.util.UUID, com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#NULL">NULL</a></span></code> +<div class="block">Satisfies soft contract of <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a></div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#POLL">POLL</a></span></code> +<div class="block">Originates from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(java.util.UUID, com.idevicesinc.sweetblue.utils.Interval, BleDevice.ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#PSUEDO_NOTIFICATION">PSUEDO_NOTIFICATION</a></span></code> +<div class="block">Originates from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(java.util.UUID, Interval, com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)</code></a>, + where a force-read timeout is invoked, or from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startChangeTrackingPoll(java.util.UUID, com.idevicesinc.sweetblue.utils.Interval, BleDevice.ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#READ">READ</a></span></code> +<div class="block">Originates from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(java.util.UUID, BleDevice.ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#SINGLE_MANUAL_ADDITION">SINGLE_MANUAL_ADDITION</a></span></code> +<div class="block">Originates from manual addition of data through <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>BleDevice.addHistoricalData(UUID, byte[], EpochTime)</code></a> + or various overloads that add one piece of historical data.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if <code>this</code> == <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#NULL"><code>NULL</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a> NULL</pre> +<div class="block">Satisfies soft contract of <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a></div> +</li> +</ul> +<a name="READ"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>READ</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a> READ</pre> +<div class="block">Originates from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(java.util.UUID, BleDevice.ReadWriteListener)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#READ"><code>BleDevice.ReadWriteListener.Type.READ</code></a></dd> +</dl> +</li> +</ul> +<a name="POLL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>POLL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a> POLL</pre> +<div class="block">Originates from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(java.util.UUID, com.idevicesinc.sweetblue.utils.Interval, BleDevice.ReadWriteListener)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#POLL"><code>BleDevice.ReadWriteListener.Type.POLL</code></a></dd> +</dl> +</li> +</ul> +<a name="NOTIFICATION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NOTIFICATION</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a> NOTIFICATION</pre> +<div class="block">Originates from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(java.util.UUID, com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#NOTIFICATION"><code>BleDevice.ReadWriteListener.Type.NOTIFICATION</code></a></dd> +</dl> +</li> +</ul> +<a name="INDICATION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>INDICATION</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a> INDICATION</pre> +<div class="block">Originates from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(java.util.UUID, com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#INDICATION"><code>BleDevice.ReadWriteListener.Type.INDICATION</code></a></dd> +</dl> +</li> +</ul> +<a name="PSUEDO_NOTIFICATION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>PSUEDO_NOTIFICATION</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a> PSUEDO_NOTIFICATION</pre> +<div class="block">Originates from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(java.util.UUID, Interval, com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)</code></a>, + where a force-read timeout is invoked, or from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startChangeTrackingPoll(java.util.UUID, com.idevicesinc.sweetblue.utils.Interval, BleDevice.ReadWriteListener)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#PSUEDO_NOTIFICATION"><code>BleDevice.ReadWriteListener.Type.PSUEDO_NOTIFICATION</code></a></dd> +</dl> +</li> +</ul> +<a name="SINGLE_MANUAL_ADDITION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SINGLE_MANUAL_ADDITION</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a> SINGLE_MANUAL_ADDITION</pre> +<div class="block">Originates from manual addition of data through <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>BleDevice.addHistoricalData(UUID, byte[], EpochTime)</code></a> + or various overloads that add one piece of historical data.</div> +</li> +</ul> +<a name="MULTIPLE_MANUAL_ADDITIONS"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>MULTIPLE_MANUAL_ADDITIONS</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a> MULTIPLE_MANUAL_ADDITIONS</pre> +<div class="block">Originates from manual addition of data through <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-java.util.Iterator-"><code>BleDevice.addHistoricalData(UUID, java.util.Iterator)</code></a> + or various overloads that add multiple pieces of data all at once.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleNodeConfig.HistoricalDataLogFilter.Source c : BleNodeConfig.HistoricalDataLogFilter.Source.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block">Returns <code>true</code> if <code>this</code> == <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#NULL"><code>NULL</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.HistoricalDataLogFilter.Source.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html new file mode 100644 index 0000000000000000000000000000000000000000..05fe95091ecfa68f8196138660c96f2c515d4510 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html @@ -0,0 +1,376 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNodeConfig.HistoricalDataLogFilter (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNodeConfig.HistoricalDataLogFilter (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.HistoricalDataLogFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleNodeConfig.HistoricalDataLogFilter" class="title">Interface BleNodeConfig.HistoricalDataLogFilter</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultHistoricalDataLogFilter</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleNodeConfig.HistoricalDataLogFilter</span></pre> +<div class="block">Provide an instance of this class to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataLogFilter"><code>BleNodeConfig.historicalDataLogFilter</code></a> to control + how/if historical data from BLE operations is logged.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a></span></code> +<div class="block">Event passed to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent-"><code>onEvent(HistoricalDataLogEvent)</code></a> that provides + information you can use to determine whether or not <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.data()</code></a> should be logged.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></span></code> +<div class="block">Special value returned from <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent-"><code>onEvent(HistoricalDataLogEvent)</code></a> + that determines if/how <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.data()</code></a> will get logged.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a></span></code> +<div class="block">Signifies where the data came from, usually from a BLE read or notification.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#DISABLED">DISABLED</a></span></code> +<div class="block">Special value you can use in place of Java's built-in <code>null</code>, just for code readability.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#PersistenceLevel_BOTH">PersistenceLevel_BOTH</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#PersistenceLevel_DISK">PersistenceLevel_DISK</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#PersistenceLevel_MEMORY">PersistenceLevel_MEMORY</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#PersistenceLevel_NONE">PersistenceLevel_NONE</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a> e)</code> +<div class="block">Implement this method to be notified of when the library requests whether historical data should be written to a log, + and to respond with your preference of if/how this data should be written.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="DISABLED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DISABLED</h4> +<pre>static final <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a> DISABLED</pre> +<div class="block">Special value you can use in place of Java's built-in <code>null</code>, just for code readability.</div> +</li> +</ul> +<a name="PersistenceLevel_NONE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>PersistenceLevel_NONE</h4> +<pre>static final int PersistenceLevel_NONE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.PersistenceLevel_NONE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="PersistenceLevel_MEMORY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>PersistenceLevel_MEMORY</h4> +<pre>static final int PersistenceLevel_MEMORY</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.PersistenceLevel_MEMORY">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="PersistenceLevel_DISK"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>PersistenceLevel_DISK</h4> +<pre>static final int PersistenceLevel_DISK</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.PersistenceLevel_DISK">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="PersistenceLevel_BOTH"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>PersistenceLevel_BOTH</h4> +<pre>static final int PersistenceLevel_BOTH</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.PersistenceLevel_BOTH">Constant Field Values</a></dd> +</dl> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a> onEvent(<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a> e)</pre> +<div class="block">Implement this method to be notified of when the library requests whether historical data should be written to a log, + and to respond with your preference of if/how this data should be written.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.HistoricalDataLogFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html new file mode 100644 index 0000000000000000000000000000000000000000..ad0805c0091a628561b056a1f09ae073b4257db7 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html @@ -0,0 +1,328 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNodeConfig.ReconnectFilter.Please (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNodeConfig.ReconnectFilter.Please (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.ReconnectFilter.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleNodeConfig.ReconnectFilter.Please" class="title">Class BleNodeConfig.ReconnectFilter.Please</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.Please</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleNodeConfig.ReconnectFilter.Please</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Return value for <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(ReconnectEvent)</code></a>. Use static constructor methods to create instances.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#persist--">persist</a></span>()</code> +<div class="block">Indicates that the <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> should keep <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_SHORT_TERM"><code>BleDeviceState.RECONNECTING_SHORT_TERM</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#persistIf-boolean-">persistIf</a></span>(boolean condition)</code> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#persist--"><code>persist()</code></a> if the condition holds, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#stopRetrying--"><code>stopRetrying()</code></a> otherwise.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#retryIn-com.idevicesinc.sweetblue.utils.Interval-">retryIn</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</code> +<div class="block">Return this from <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)</code></a> to retry after the given amount of time.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#retryInstantly--">retryInstantly</a></span>()</code> +<div class="block">When <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#type--"><code>BleNodeConfig.ReconnectFilter.ReconnectEvent.type()</code></a> is either <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_TRY_AGAIN"><code>BleNodeConfig.ReconnectFilter.Type.SHORT_TERM__SHOULD_TRY_AGAIN</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_TRY_AGAIN"><code>BleNodeConfig.ReconnectFilter.Type.LONG_TERM__SHOULD_TRY_AGAIN</code></a>, + return this from <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)</code></a> to instantly reconnect.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#stopRetrying--">stopRetrying</a></span>()</code> +<div class="block">Return this from <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)</code></a> to stop a reconnect attempt loop.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#stopRetryingIf-boolean-">stopRetryingIf</a></span>(boolean condition)</code> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#stopRetrying--"><code>stopRetrying()</code></a> if the condition holds, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#persist--"><code>persist()</code></a> otherwise.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="retryInstantly--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>retryInstantly</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a> retryInstantly()</pre> +<div class="block">When <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#type--"><code>BleNodeConfig.ReconnectFilter.ReconnectEvent.type()</code></a> is either <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_TRY_AGAIN"><code>BleNodeConfig.ReconnectFilter.Type.SHORT_TERM__SHOULD_TRY_AGAIN</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_TRY_AGAIN"><code>BleNodeConfig.ReconnectFilter.Type.LONG_TERM__SHOULD_TRY_AGAIN</code></a>, + return this from <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)</code></a> to instantly reconnect.</div> +</li> +</ul> +<a name="stopRetrying--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopRetrying</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a> stopRetrying()</pre> +<div class="block">Return this from <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)</code></a> to stop a reconnect attempt loop. + Note that <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disconnect--"><code>BleDevice.disconnect()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleServer.html#disconnect-java.lang.String-"><code>BleServer.disconnect(String)</code></a> will also stop any ongoing reconnect loops.</div> +</li> +</ul> +<a name="retryIn-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>retryIn</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a> retryIn(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</pre> +<div class="block">Return this from <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)</code></a> to retry after the given amount of time.</div> +</li> +</ul> +<a name="persist--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>persist</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a> persist()</pre> +<div class="block">Indicates that the <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> should keep <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_SHORT_TERM"><code>BleDeviceState.RECONNECTING_SHORT_TERM</code></a>.</div> +</li> +</ul> +<a name="persistIf-boolean-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>persistIf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a> persistIf(boolean condition)</pre> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#persist--"><code>persist()</code></a> if the condition holds, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#stopRetrying--"><code>stopRetrying()</code></a> otherwise.</div> +</li> +</ul> +<a name="stopRetryingIf-boolean-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>stopRetryingIf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a> stopRetryingIf(boolean condition)</pre> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#stopRetrying--"><code>stopRetrying()</code></a> if the condition holds, <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#persist--"><code>persist()</code></a> otherwise.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.ReconnectFilter.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..f334df6738f7ffdc6cc6e2c382e41f7b6d3427e3 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html @@ -0,0 +1,404 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNodeConfig.ReconnectFilter.ReconnectEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNodeConfig.ReconnectFilter.ReconnectEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.ReconnectFilter.ReconnectEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleNodeConfig.ReconnectFilter.ReconnectEvent" class="title">Class BleNodeConfig.ReconnectFilter.ReconnectEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleNodeConfig.ReconnectFilter.ReconnectEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></pre> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)</code></a> to aid in making a decision.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#connectionFailEvent--">connectionFailEvent</a></span>()</code> +<div class="block">Returns the more detailed information about why the connection failed.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#device--">device</a></span>()</code> +<div class="block">Tries to cast <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#node--"><code>node()</code></a> to a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>, otherwise returns <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#failureCount--">failureCount</a></span>()</code> +<div class="block">The number of times a reconnect attempt has failed so far.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#macAddress--">macAddress</a></span>()</code> +<div class="block">Convience to return the mac address of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#device--"><code>device()</code></a> or the client being reconnected to the <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#server--"><code>server()</code></a>.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#node--">node</a></span>()</code> +<div class="block">The node that is currently trying to reconnect.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#previousDelay--">previousDelay</a></span>()</code> +<div class="block">The previous <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> returned through <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#retryIn-com.idevicesinc.sweetblue.utils.Interval-"><code>BleNodeConfig.ReconnectFilter.Please.retryIn(Interval)</code></a>, + or <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#ZERO"><code>Interval.ZERO</code></a> for the first invocation.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#server--">server</a></span>()</code> +<div class="block">Tries to cast <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#node--"><code>node()</code></a> to a <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>, otherwise returns <a href="../../../com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a>.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#totalTimeReconnecting--">totalTimeReconnecting</a></span>()</code> +<div class="block">The total amount of time since the device disconnected and we started the reconnect process.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#type--">type</a></span>()</code> +<div class="block">See <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue"><code>BleNodeConfig.ReconnectFilter.Type</code></a> for more info.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="node--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>node</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a> node()</pre> +<div class="block">The node that is currently trying to reconnect.</div> +</li> +</ul> +<a name="device--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>device</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device()</pre> +<div class="block">Tries to cast <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#node--"><code>node()</code></a> to a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>, otherwise returns <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a>.</div> +</li> +</ul> +<a name="server--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>server</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a> server()</pre> +<div class="block">Tries to cast <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#node--"><code>node()</code></a> to a <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>, otherwise returns <a href="../../../com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a>.</div> +</li> +</ul> +<a name="macAddress--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>macAddress</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress()</pre> +<div class="block">Convience to return the mac address of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#device--"><code>device()</code></a> or the client being reconnected to the <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#server--"><code>server()</code></a>.</div> +</li> +</ul> +<a name="failureCount--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>failureCount</h4> +<pre>public int failureCount()</pre> +<div class="block">The number of times a reconnect attempt has failed so far.</div> +</li> +</ul> +<a name="totalTimeReconnecting--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>totalTimeReconnecting</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> totalTimeReconnecting()</pre> +<div class="block">The total amount of time since the device disconnected and we started the reconnect process.</div> +</li> +</ul> +<a name="previousDelay--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>previousDelay</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> previousDelay()</pre> +<div class="block">The previous <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> returned through <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#retryIn-com.idevicesinc.sweetblue.utils.Interval-"><code>BleNodeConfig.ReconnectFilter.Please.retryIn(Interval)</code></a>, + or <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#ZERO"><code>Interval.ZERO</code></a> for the first invocation.</div> +</li> +</ul> +<a name="connectionFailEvent--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connectionFailEvent</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.ConnectionFailEvent</a> connectionFailEvent()</pre> +<div class="block">Returns the more detailed information about why the connection failed. This is passed to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)</code></a> + before the call is made to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(ReconnectEvent)</code></a>. For the first call to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(ReconnectEvent)</code></a>, + right after a spontaneous disconnect occurred, the connection didn't fail, so <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--"><code>UsesCustomNull.isNull()</code></a> will return <code>true</code>.</div> +</li> +</ul> +<a name="type--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>type</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a> type()</pre> +<div class="block">See <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue"><code>BleNodeConfig.ReconnectFilter.Type</code></a> for more info.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.ReconnectFilter.ReconnectEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html new file mode 100644 index 0000000000000000000000000000000000000000..51075a0251b039c558ac9ff57021fe3fa5e5cb32 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html @@ -0,0 +1,444 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNodeConfig.ReconnectFilter.Type (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNodeConfig.ReconnectFilter.Type (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.ReconnectFilter.Type.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleNodeConfig.ReconnectFilter.Type" class="title">Enum BleNodeConfig.ReconnectFilter.Type</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.Type</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleNodeConfig.ReconnectFilter.Type</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a>></pre> +<div class="block">An enum provided through <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#type--"><code>BleNodeConfig.ReconnectFilter.ReconnectEvent.type()</code></a> that describes what reconnect stage we're at.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_CONTINUE">LONG_TERM__SHOULD_CONTINUE</a></span></code> +<div class="block">A small period of time has passed since we last asked about <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_TRY_AGAIN"><code>LONG_TERM__SHOULD_TRY_AGAIN</code></a>, so just making sure you want to keep going.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_TRY_AGAIN">LONG_TERM__SHOULD_TRY_AGAIN</a></span></code> +<div class="block">An attempt to reconnect in the long term failed, should we try again?.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_CONTINUE">SHORT_TERM__SHOULD_CONTINUE</a></span></code> +<div class="block">A small period of time has passed since we last asked about <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_TRY_AGAIN"><code>SHORT_TERM__SHOULD_TRY_AGAIN</code></a>, so just making sure you want to keep going.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_TRY_AGAIN">SHORT_TERM__SHOULD_TRY_AGAIN</a></span></code> +<div class="block">An attempt to reconnect in the short term failed, should we try again?.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#isLongTerm--">isLongTerm</a></span>()</code> +<div class="block">Is this either <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_TRY_AGAIN"><code>LONG_TERM__SHOULD_TRY_AGAIN</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_CONTINUE"><code>LONG_TERM__SHOULD_CONTINUE</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#isShortTerm--">isShortTerm</a></span>()</code> +<div class="block">Is this either <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_TRY_AGAIN"><code>SHORT_TERM__SHOULD_TRY_AGAIN</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_CONTINUE"><code>SHORT_TERM__SHOULD_CONTINUE</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#isShouldContinue--">isShouldContinue</a></span>()</code> +<div class="block">Is this either <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_CONTINUE"><code>SHORT_TERM__SHOULD_CONTINUE</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_CONTINUE"><code>LONG_TERM__SHOULD_CONTINUE</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#isShouldTryAgain--">isShouldTryAgain</a></span>()</code> +<div class="block">Is this either <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_CONTINUE"><code>SHORT_TERM__SHOULD_CONTINUE</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_TRY_AGAIN"><code>LONG_TERM__SHOULD_TRY_AGAIN</code></a>.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="SHORT_TERM__SHOULD_CONTINUE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SHORT_TERM__SHOULD_CONTINUE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a> SHORT_TERM__SHOULD_CONTINUE</pre> +<div class="block">A small period of time has passed since we last asked about <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_TRY_AGAIN"><code>SHORT_TERM__SHOULD_TRY_AGAIN</code></a>, so just making sure you want to keep going.</div> +</li> +</ul> +<a name="SHORT_TERM__SHOULD_TRY_AGAIN"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SHORT_TERM__SHOULD_TRY_AGAIN</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a> SHORT_TERM__SHOULD_TRY_AGAIN</pre> +<div class="block">An attempt to reconnect in the short term failed, should we try again?.</div> +</li> +</ul> +<a name="LONG_TERM__SHOULD_CONTINUE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>LONG_TERM__SHOULD_CONTINUE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a> LONG_TERM__SHOULD_CONTINUE</pre> +<div class="block">A small period of time has passed since we last asked about <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_TRY_AGAIN"><code>LONG_TERM__SHOULD_TRY_AGAIN</code></a>, so just making sure you want to keep going.</div> +</li> +</ul> +<a name="LONG_TERM__SHOULD_TRY_AGAIN"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>LONG_TERM__SHOULD_TRY_AGAIN</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a> LONG_TERM__SHOULD_TRY_AGAIN</pre> +<div class="block">An attempt to reconnect in the long term failed, should we try again?.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleNodeConfig.ReconnectFilter.Type c : BleNodeConfig.ReconnectFilter.Type.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="isShouldTryAgain--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isShouldTryAgain</h4> +<pre>public boolean isShouldTryAgain()</pre> +<div class="block">Is this either <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_CONTINUE"><code>SHORT_TERM__SHOULD_CONTINUE</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_TRY_AGAIN"><code>LONG_TERM__SHOULD_TRY_AGAIN</code></a>.</div> +</li> +</ul> +<a name="isShouldContinue--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isShouldContinue</h4> +<pre>public boolean isShouldContinue()</pre> +<div class="block">Is this either <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_CONTINUE"><code>SHORT_TERM__SHOULD_CONTINUE</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_CONTINUE"><code>LONG_TERM__SHOULD_CONTINUE</code></a>.</div> +</li> +</ul> +<a name="isShortTerm--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isShortTerm</h4> +<pre>public boolean isShortTerm()</pre> +<div class="block">Is this either <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_TRY_AGAIN"><code>SHORT_TERM__SHOULD_TRY_AGAIN</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_CONTINUE"><code>SHORT_TERM__SHOULD_CONTINUE</code></a>.</div> +</li> +</ul> +<a name="isLongTerm--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isLongTerm</h4> +<pre>public boolean isLongTerm()</pre> +<div class="block">Is this either <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_TRY_AGAIN"><code>LONG_TERM__SHOULD_TRY_AGAIN</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_CONTINUE"><code>LONG_TERM__SHOULD_CONTINUE</code></a>.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.ReconnectFilter.Type.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html new file mode 100644 index 0000000000000000000000000000000000000000..e3eafda3e24655418373361c7684cdee8a4dd7b7 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html @@ -0,0 +1,271 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNodeConfig.ReconnectFilter (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNodeConfig.ReconnectFilter (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.ReconnectFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleNodeConfig.ReconnectFilter" class="title">Interface BleNodeConfig.ReconnectFilter</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultReconnectFilter</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleNodeConfig.ReconnectFilter</span></pre> +<div class="block">An optional interface you can implement on <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#reconnectFilter"><code>BleNodeConfig.reconnectFilter</code></a> to control reconnection behavior.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#reconnectFilter"><code>BleNodeConfig.reconnectFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultReconnectFilter</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a></span></code> +<div class="block">Return value for <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>onEvent(ReconnectEvent)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a></span></code> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)</code></a> to aid in making a decision.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a></span></code> +<div class="block">An enum provided through <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#type--"><code>BleNodeConfig.ReconnectFilter.ReconnectEvent.type()</code></a> that describes what reconnect stage we're at.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a> e)</code> +<div class="block">Called for every connection failure while device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a> onEvent(<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a> e)</pre> +<div class="block">Called for every connection failure while device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a>. + Use the static methods of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.ReconnectFilter.Please</code></a> as return values to stop reconnection (<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#stopRetrying--"><code>BleNodeConfig.ReconnectFilter.Please.stopRetrying()</code></a>), try again + instantly (<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#retryInstantly--"><code>BleNodeConfig.ReconnectFilter.Please.retryInstantly()</code></a>), or after some amount of time <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#retryIn-com.idevicesinc.sweetblue.utils.Interval-"><code>BleNodeConfig.ReconnectFilter.Please.retryIn(Interval)</code></a>.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.ReconnectFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html new file mode 100644 index 0000000000000000000000000000000000000000..90e9d484783256f399abbc4d4238f39311253e34 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html @@ -0,0 +1,261 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNodeConfig.TaskTimeoutRequestFilter.Please (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNodeConfig.TaskTimeoutRequestFilter.Please (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.TaskTimeoutRequestFilter.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleNodeConfig.TaskTimeoutRequestFilter.Please" class="title">Class BleNodeConfig.TaskTimeoutRequestFilter.Please</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter.Please</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleNodeConfig.TaskTimeoutRequestFilter.Please</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Use static constructor methods to create instances to return from <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent-"><code>BleNodeConfig.TaskTimeoutRequestFilter.onEvent(TaskTimeoutRequestEvent)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html#doNotUseTimeout--">doNotUseTimeout</a></span>()</code> +<div class="block">Tells SweetBlue to not timeout the task at all.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html#setTimeoutFor-com.idevicesinc.sweetblue.utils.Interval-">setTimeoutFor</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</code> +<div class="block">Tells SweetBlue to wait for the given interval before timing out the task.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="setTimeoutFor-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setTimeoutFor</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.Please</a> setTimeoutFor(<a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval)</pre> +<div class="block">Tells SweetBlue to wait for the given interval before timing out the task.</div> +</li> +</ul> +<a name="doNotUseTimeout--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>doNotUseTimeout</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.Please</a> doNotUseTimeout()</pre> +<div class="block">Tells SweetBlue to not timeout the task at all. + <br><br> + WARNING: This can be dangerous to use because if a task never finishes it will block all other operations indefinitely.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.TaskTimeoutRequestFilter.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..1064e29f3e98f958cdc6a821b79c666c845595d1 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html @@ -0,0 +1,410 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent" class="title">Class BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></pre> +<div class="block">Event passed to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent-"><code>BleNodeConfig.TaskTimeoutRequestFilter.onEvent(TaskTimeoutRequestEvent)</code></a> that provides + information about the <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> that will soon be executed.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#TaskTimeoutRequestEvent--">TaskTimeoutRequestEvent</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#charUuid--">charUuid</a></span>()</code> +<div class="block">The ble characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> associated with the task if <a href="../../../com/idevicesinc/sweetblue/BleTask.html#usesCharUuid--"><code>BleTask.usesCharUuid()</code></a> + returns <code>true</code>, or <a href="../../../com/idevicesinc/sweetblue/utils/Uuids.html#INVALID"><code>Uuids.INVALID</code></a> otherwise.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#descUuid--">descUuid</a></span>()</code> +<div class="block">The ble descriptor <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> associated with the task, or <a href="../../../com/idevicesinc/sweetblue/utils/Uuids.html#INVALID"><code>Uuids.INVALID</code></a> otherwise.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#device--">device</a></span>()</code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> associated with the <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#task--"><code>task()</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> if + <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#task--"><code>task()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleTask.html#isDeviceSpecific--"><code>BleTask.isDeviceSpecific()</code></a> does not return <code>true</code>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#macAddress--">macAddress</a></span>()</code> +<div class="block">Convience to return the mac address of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#device--"><code>device()</code></a>.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#manager--">manager</a></span>()</code> +<div class="block">Returns the manager.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#server--">server</a></span>()</code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> associated with the <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#task--"><code>task()</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a> if + <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#task--"><code>task()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleTask.html#isServerSpecific--"><code>BleTask.isServerSpecific()</code></a> does not return <code>true</code>.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#task--">task</a></span>()</code> +<div class="block">The type of task for which we are requesting a timeout.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="TaskTimeoutRequestEvent--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>TaskTimeoutRequestEvent</h4> +<pre>public TaskTimeoutRequestEvent()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="device--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>device</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device()</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> associated with the <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#task--"><code>task()</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> if + <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#task--"><code>task()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleTask.html#isDeviceSpecific--"><code>BleTask.isDeviceSpecific()</code></a> does not return <code>true</code>.</div> +</li> +</ul> +<a name="macAddress--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>macAddress</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress()</pre> +<div class="block">Convience to return the mac address of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#device--"><code>device()</code></a>.</div> +</li> +</ul> +<a name="server--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>server</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a> server()</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> associated with the <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#task--"><code>task()</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a> if + <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#task--"><code>task()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleTask.html#isServerSpecific--"><code>BleTask.isServerSpecific()</code></a> does not return <code>true</code>.</div> +</li> +</ul> +<a name="manager--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>manager</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> manager()</pre> +<div class="block">Returns the manager.</div> +</li> +</ul> +<a name="task--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>task</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> task()</pre> +<div class="block">The type of task for which we are requesting a timeout.</div> +</li> +</ul> +<a name="charUuid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>charUuid</h4> +<pre>public <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid()</pre> +<div class="block">The ble characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> associated with the task if <a href="../../../com/idevicesinc/sweetblue/BleTask.html#usesCharUuid--"><code>BleTask.usesCharUuid()</code></a> + returns <code>true</code>, or <a href="../../../com/idevicesinc/sweetblue/utils/Uuids.html#INVALID"><code>Uuids.INVALID</code></a> otherwise.</div> +</li> +</ul> +<a name="descUuid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>descUuid</h4> +<pre>public <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descUuid()</pre> +<div class="block">The ble descriptor <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> associated with the task, or <a href="../../../com/idevicesinc/sweetblue/utils/Uuids.html#INVALID"><code>Uuids.INVALID</code></a> otherwise. + For now only associated with <a href="../../../com/idevicesinc/sweetblue/BleTask.html#TOGGLE_NOTIFY"><code>BleTask.TOGGLE_NOTIFY</code></a>.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html new file mode 100644 index 0000000000000000000000000000000000000000..bcedbf1de3fa67cdcdcc1bce2b43a8c81d9816a1 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html @@ -0,0 +1,259 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNodeConfig.TaskTimeoutRequestFilter (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNodeConfig.TaskTimeoutRequestFilter (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.TaskTimeoutRequestFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleNodeConfig.TaskTimeoutRequestFilter" class="title">Interface BleNodeConfig.TaskTimeoutRequestFilter</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultTaskTimeoutRequestFilter</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleNodeConfig.TaskTimeoutRequestFilter</span></pre> +<div class="block">Provides a way to control timeout behavior for various <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> instances. Assign an instance to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter"><code>BleNodeConfig.taskTimeoutRequestFilter</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.Please</a></span></code> +<div class="block">Use static constructor methods to create instances to return from <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent-"><code>onEvent(TaskTimeoutRequestEvent)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a></span></code> +<div class="block">Event passed to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent-"><code>onEvent(TaskTimeoutRequestEvent)</code></a> that provides + information about the <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> that will soon be executed.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a> e)</code> +<div class="block">Implement this to have fine-grained control over <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> timeout behavior.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.Please</a> onEvent(<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a> e)</pre> +<div class="block">Implement this to have fine-grained control over <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> timeout behavior.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.TaskTimeoutRequestFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.html new file mode 100644 index 0000000000000000000000000000000000000000..3671e51e236696ab7aeec5300c871f2f00b71705 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleNodeConfig.html @@ -0,0 +1,644 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleNodeConfig (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleNodeConfig (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9,"i2":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleNodeConfig" class="title">Class BleNodeConfig</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleNodeConfig</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Direct Known Subclasses:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">BleNodeConfig</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Provides a number of options to (optionally) pass to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setConfig-com.idevicesinc.sweetblue.BleNodeConfig-"><code>BleServer.setConfig(BleNodeConfig)</code></a>. + This class is also a super class of <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a>, which you can pass + to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(Context, BleManagerConfig)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setConfig-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.setConfig(BleManagerConfig)</code></a> to set default base options for all servers at once. + For all options in this class, you may set the value to <code>null</code> when passed to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setConfig-com.idevicesinc.sweetblue.BleNodeConfig-"><code>BleServer.setConfig(BleNodeConfig)</code></a> + and the value will then be inherited from the <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(Context, BleManagerConfig)</code></a>. + Otherwise, if the value is not <code>null</code> it will override any option in the <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a>. + If an option is ultimately <code>null</code> (<code>null</code> when passed to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setConfig-com.idevicesinc.sweetblue.BleNodeConfig-"><code>BleServer.setConfig(BleNodeConfig)</code></a> + *and* <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(Context, BleManagerConfig)</code></a>) then it is interpreted as <code>false</code> or <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a>. + <br><br> + TIP: You can use <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a> instead of <code>null</code> to disable any time-based options, for code readability's sake. + <br><br> + TIP: You can use <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#newNulled--"><code>newNulled()</code></a> (or <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#nullOut--"><code>nullOut()</code></a>) then only set the few options you want for <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setConfig-com.idevicesinc.sweetblue.BleNodeConfig-"><code>BleServer.setConfig(BleNodeConfig)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Class and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultHistoricalDataLogFilter</a></span></code> +<div class="block">Default implementation of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a> set on <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataLogFilter"><code>historicalDataLogFilter</code></a> + that logs the most recent data reading to memory only, flushing the previous one.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultReconnectFilter</a></span></code> +<div class="block">Default implementation of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.ReconnectFilter</code></a> that uses <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#retryInstantly--"><code>BleNodeConfig.ReconnectFilter.Please.retryInstantly()</code></a> for the + first reconnect attempt, and from then on uses the <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> rate passed to the constructor</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultTaskTimeoutRequestFilter</a></span></code> +<div class="block">Default implementation of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.TaskTimeoutRequestFilter</code></a> that simply sets the timeout + for all <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> instances to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html#DEFAULT_TASK_TIMEOUT"><code>BleNodeConfig.DefaultTaskTimeoutRequestFilter.DEFAULT_TASK_TIMEOUT</code></a> seconds.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataFactory</a></span></code> +<div class="block">Provide an instance to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataFactory"><code>historicalDataFactory</code></a> to return custom subclasses + of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> if you would like.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></span></code> +<div class="block">Provide an instance of this class to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataLogFilter"><code>historicalDataLogFilter</code></a> to control + how/if historical data from BLE operations is logged.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter</a></span></code> +<div class="block">An optional interface you can implement on <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#reconnectFilter"><code>reconnectFilter</code></a> to control reconnection behavior.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter</a></span></code> +<div class="block">Provides a way to control timeout behavior for various <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> instances.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#allowCallsFromAllThreads">allowCallsFromAllThreads</a></span></code> +<div class="block">Default is <code>false</code> - SweetBlue, for the sake of performance, stability, and simplicity, requires all back and forth to take place on the main thread, + with <a href="../../../com/idevicesinc/sweetblue/utils/WrongThreadError.html" title="class in com.idevicesinc.sweetblue.utils"><code>WrongThreadError</code></a> thrown if not.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#alwaysUseAutoConnect">alwaysUseAutoConnect</a></span></code> +<div class="block">Default is <code>false</code> - see the <code>boolean autoConnect</code> parameters of + <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#connectGatt-android.content.Context-boolean-android.bluetooth.BluetoothGattCallback-" title="class or interface in android.bluetooth"><code>BluetoothDevice.connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)</code></a> + and <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#connect-android.bluetooth.BluetoothDevice-boolean-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.connect(BluetoothDevice, boolean)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#DEFAULT_MTU_SIZE">DEFAULT_MTU_SIZE</a></span></code> +<div class="block">The default MTU size in bytes for gatt reads/writes/notifies/etc.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#disconnectIsCancellable">disconnectIsCancellable</a></span></code> +<div class="block">Default is <code>true</code> - controls whether the library is allowed to optimize fast disconnect/reconnect cycles + by actually not disconnecting in the native stack at all.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#GATT_MTU_OVERHEAD">GATT_MTU_OVERHEAD</a></span></code> +<div class="block">The overhead in bytes that is subtracted from the total mtu size (e.g.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataFactory</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataFactory">historicalDataFactory</a></span></code> +<div class="block">Implement this to override the default behavior, which is simply to return an instance created with + the constructor <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#HistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>HistoricalData.HistoricalData(byte[], com.idevicesinc.sweetblue.utils.EpochTime)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataLogFilter">historicalDataLogFilter</a></span></code> +<div class="block">Default is an instance of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a> - + set an implementation here to control how/if data is logged.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#INVALID_TX_POWER">INVALID_TX_POWER</a></span></code> +<div class="block">Constant for an invalid or unknown transmission power.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#reconnectFilter">reconnectFilter</a></span></code> +<div class="block">Default is an instance of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultReconnectFilter</code></a> using the timings that are <code>public static final</code> members thereof - set your own implementation here to + have fine-grain control over reconnect behavior while a device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_SHORT_TERM"><code>BleDeviceState.RECONNECTING_SHORT_TERM</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter">taskTimeoutRequestFilter</a></span></code> +<div class="block">Default is an instance of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultTaskTimeoutRequestFilter</code></a> - set an implementation here to + have fine control over how long individual <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> instances can take before they + are considered "timed out" and failed.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#BleNodeConfig--">BleNodeConfig</a></span>()</code> +<div class="block">Creates a <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig</code></a> with all default options set.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>protected <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#clone--">clone</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#newNulled--">newNulled</a></span>()</code> +<div class="block">Convenience method that returns a nulled out <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig</code></a>, which is useful + when using <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setConfig-com.idevicesinc.sweetblue.BleNodeConfig-"><code>BleServer.setConfig(BleNodeConfig)</code></a> to only override a few options + from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(Context, BleManagerConfig)</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setConfig-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.setConfig(BleManagerConfig)</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#nullOut--">nullOut</a></span>()</code> +<div class="block">Sets all <a href="../../../com/idevicesinc/sweetblue/annotations/Nullable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><code>Nullable</code></a> options in <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> to <code>null</code> + so for example it's easier to cherry-pick just a few options to override from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> when using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConfig-com.idevicesinc.sweetblue.BleDeviceConfig-"><code>BleDevice.setConfig(BleDeviceConfig)</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="DEFAULT_MTU_SIZE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_MTU_SIZE</h4> +<pre>public static final int DEFAULT_MTU_SIZE</pre> +<div class="block">The default MTU size in bytes for gatt reads/writes/notifies/etc.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleNodeConfig.DEFAULT_MTU_SIZE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_MTU_OVERHEAD"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_MTU_OVERHEAD</h4> +<pre>public static final int GATT_MTU_OVERHEAD</pre> +<div class="block">The overhead in bytes that is subtracted from the total mtu size (e.g. <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#DEFAULT_MTU_SIZE"><code>DEFAULT_MTU_SIZE</code></a>) to + give you the effective payload size that your application can send or receive. For Android this + payload size is almost always 23-3=20 bytes.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleNodeConfig.GATT_MTU_OVERHEAD">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="INVALID_TX_POWER"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>INVALID_TX_POWER</h4> +<pre>public static final int INVALID_TX_POWER</pre> +<div class="block">Constant for an invalid or unknown transmission power.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getTxPower--"><code>BleDevice.getTxPower()</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html#defaultTxPower"><code>BleDeviceConfig.defaultTxPower</code></a>, +<a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleNodeConfig.INVALID_TX_POWER">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="alwaysUseAutoConnect"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>alwaysUseAutoConnect</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> alwaysUseAutoConnect</pre> +<div class="block">Default is <code>false</code> - see the <code>boolean autoConnect</code> parameters of + <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#connectGatt-android.content.Context-boolean-android.bluetooth.BluetoothGattCallback-" title="class or interface in android.bluetooth"><code>BluetoothDevice.connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)</code></a> + and <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#connect-android.bluetooth.BluetoothDevice-boolean-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.connect(BluetoothDevice, boolean)</code></a>. + <br><br> + This parameter is one of Android's deepest mysteries. By default we keep it false, but it has been observed that a + connection can fail or time out, but then if you try again with autoConnect set to true it works! One would think, + why not always set it to true? Well, while true is anecdotally more stable, it also (anecdotally) makes for longer + connection times, which becomes a UX problem. Would you rather have a 5-10 second connection process that is successful + with 99% of devices, or a 1-2 second connection process that is successful with 95% of devices? By default we've chosen the latter. + <br><br> + HOWEVER, it's important to note that you can have fine-grained control over its usage through the <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue"><code>BleNode.ConnectionFailListener.Please</code></a> + returned from <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)</code></a> (or the equivalent + structures that are inner structures of <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>). + <br><br> + So really this option mainly exists for those situations where you KNOW that you have a device or server that only works + with autoConnect==true and you want connection time to be faster (i.e. you don't want to wait for that first + failed connection for the library to internally start using autoConnect==true).</div> +</li> +</ul> +<a name="allowCallsFromAllThreads"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>allowCallsFromAllThreads</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> allowCallsFromAllThreads</pre> +<div class="block">Default is <code>false</code> - SweetBlue, for the sake of performance, stability, and simplicity, requires all back and forth to take place on the main thread, + with <a href="../../../com/idevicesinc/sweetblue/utils/WrongThreadError.html" title="class in com.idevicesinc.sweetblue.utils"><code>WrongThreadError</code></a> thrown if not. + Versions less than v2 did not enforce this, but feedback indicated that the threading model was unclear and some people would kick + off SweetBlue operations on alternate threads, which could definitely lead to problems. This remains as an option to help older code bases transitioning to >= v2</div> +</li> +</ul> +<a name="disconnectIsCancellable"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disconnectIsCancellable</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> disconnectIsCancellable</pre> +<div class="block">Default is <code>true</code> - controls whether the library is allowed to optimize fast disconnect/reconnect cycles + by actually not disconnecting in the native stack at all. For example, if this option is <code>true</code> and your + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>, calling <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disconnect--"><code>BleDevice.disconnect()</code></a> then <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> + again won't result in a native disconnect/reconnect - your actual physical ble device firmware won't know that a disconnect was requested.</div> +</li> +</ul> +<a name="taskTimeoutRequestFilter"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>taskTimeoutRequestFilter</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter</a> taskTimeoutRequestFilter</pre> +<div class="block">Default is an instance of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultTaskTimeoutRequestFilter</code></a> - set an implementation here to + have fine control over how long individual <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> instances can take before they + are considered "timed out" and failed. + <br><br> + NOTE: Setting this to <code>null</code> will disable timeouts for all <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> instances, + which would probably be very dangerous to do - a task could just sit there spinning forever.</div> +</li> +</ul> +<a name="historicalDataLogFilter"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>historicalDataLogFilter</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a> historicalDataLogFilter</pre> +<div class="block">Default is an instance of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a> - + set an implementation here to control how/if data is logged.</div> +</li> +</ul> +<a name="historicalDataFactory"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>historicalDataFactory</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataFactory</a> historicalDataFactory</pre> +<div class="block">Implement this to override the default behavior, which is simply to return an instance created with + the constructor <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#HistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>HistoricalData.HistoricalData(byte[], com.idevicesinc.sweetblue.utils.EpochTime)</code></a>.</div> +</li> +</ul> +<a name="reconnectFilter"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>reconnectFilter</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter</a> reconnectFilter</pre> +<div class="block">Default is an instance of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultReconnectFilter</code></a> using the timings that are <code>public static final</code> members thereof - set your own implementation here to + have fine-grain control over reconnect behavior while a device is <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_SHORT_TERM"><code>BleDeviceState.RECONNECTING_SHORT_TERM</code></a>. + This is basically how often and how long the library attempts to reconnect to a device that for example may have gone out of range. Set this variable to + <code>null</code> if reconnect behavior isn't desired. If not <code>null</code>, your app may find + <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#manageCpuWakeLock"><code>BleManagerConfig.manageCpuWakeLock</code></a> useful in order to force the app/phone to stay awake while attempting a reconnect.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#manageCpuWakeLock"><code>BleManagerConfig.manageCpuWakeLock</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.ReconnectFilter</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultReconnectFilter</code></a></dd> +</dl> +</li> +</ul> +</li> +</ul> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="BleNodeConfig--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BleNodeConfig</h4> +<pre>public BleNodeConfig()</pre> +<div class="block">Creates a <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig</code></a> with all default options set. See each member of this class + for what the default options are set to. Consider using <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#newNulled--"><code>newNulled()</code></a> also.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="nullOut--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>nullOut</h4> +<pre>public void nullOut()</pre> +<div class="block">Sets all <a href="../../../com/idevicesinc/sweetblue/annotations/Nullable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><code>Nullable</code></a> options in <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> to <code>null</code> + so for example it's easier to cherry-pick just a few options to override from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> when using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConfig-com.idevicesinc.sweetblue.BleDeviceConfig-"><code>BleDevice.setConfig(BleDeviceConfig)</code></a>. + <br><br> + NOTE: This doesn't affect any non-nullable subclass members of <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> like <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#stopScanOnPause"><code>BleManagerConfig.stopScanOnPause</code></a>.</div> +</li> +</ul> +<a name="newNulled--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newNulled</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a> newNulled()</pre> +<div class="block">Convenience method that returns a nulled out <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig</code></a>, which is useful + when using <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setConfig-com.idevicesinc.sweetblue.BleNodeConfig-"><code>BleServer.setConfig(BleNodeConfig)</code></a> to only override a few options + from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(Context, BleManagerConfig)</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setConfig-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.setConfig(BleManagerConfig)</code></a>.</div> +</li> +</ul> +<a name="clone--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>clone</h4> +<pre>protected <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a> clone()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleNodeConfig.html" target="_top">Frames</a></li> +<li><a href="BleNodeConfig.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleScanMode.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleScanMode.html new file mode 100644 index 0000000000000000000000000000000000000000..7db39b9d609e68d6c212abce76bb06aa4877eb4d --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleScanMode.html @@ -0,0 +1,482 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleScanMode (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleScanMode (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":42,"i2":9,"i3":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleScanMode.html" target="_top">Frames</a></li> +<li><a href="BleScanMode.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleScanMode" class="title">Enum BleScanMode</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleScanMode</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a>></dd> +</dl> +<hr> +<br> +<pre>public enum <span class="typeNameLabel">BleScanMode</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a>></pre> +<div class="block">Type-safe parallel of various static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>ScanSettings</code></a> and a way to + force pre-Lollipop scanning mode. Provide an option to <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#scanMode"><code>BleManagerConfig.scanMode</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#AUTO">AUTO</a></span></code> +<div class="block">This option is recommended and will let SweetBlue automatically choose what scanning mode to use + based on whether the app is backgrounded, if we're doing a long-term scan, polling scan, etc.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#CLASSIC">CLASSIC</a></span></code> +<div class="block">Will force SweetBlue to use <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startDiscovery--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startDiscovery()</code></a>, which is so-called "Bluetooth Classic" discovery.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#HIGH_POWER">HIGH_POWER</a></span></code> +<div class="block"><span class="deprecatedLabel">Deprecated.</span> +<div class="block"><span class="deprecationComment">- This will be removed in v3. Use <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#HIGH_POWER"><code>BleScanPower.HIGH_POWER</code></a> instead.</span></div> +</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#LOW_POWER">LOW_POWER</a></span></code> +<div class="block"><span class="deprecatedLabel">Deprecated.</span> +<div class="block"><span class="deprecationComment">- This will be removed in v3. Use <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#LOW_POWER"><code>BleScanPower.LOW_POWER</code></a> instead.</span></div> +</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#MEDIUM_POWER">MEDIUM_POWER</a></span></code> +<div class="block"><span class="deprecatedLabel">Deprecated.</span> +<div class="block"><span class="deprecationComment">- This will be removed in v3. Use <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#MEDIUM_POWER"><code>BleScanPower.MEDIUM_POWER</code></a> instead.</span></div> +</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#POST_LOLLIPOP">POST_LOLLIPOP</a></span></code> +<div class="block">This will tell SweetBlue to use the newer scanning API introduced in Lollipop + (<a href="http://d.android.com/reference/android/bluetooth/le/BluetoothLeScanner.html?is-external=true#startScan-java.util.List-android.bluetooth.le.ScanSettings-android.bluetooth.le.ScanCallback-" title="class or interface in android.bluetooth.le"><code>BluetoothLeScanner.startScan(List, ScanSettings, ScanCallback)</code></a>) .</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#PRE_LOLLIPOP">PRE_LOLLIPOP</a></span></code> +<div class="block">This forces the use of the pre-Lollipop scanning API <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startLeScan-android.bluetooth.BluetoothAdapter.LeScanCallback-" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startLeScan(BluetoothAdapter.LeScanCallback)</code></a>, + which was deprecated in Lollipop.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#getNativeMode--">getNativeMode</a></span>()</code> +<div class="block">Returns one of the static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>ScanSettings</code></a>, or -1 for <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#AUTO"><code>AUTO</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#isLollipopScanMode--">isLollipopScanMode</a></span>()</code> +<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="AUTO"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>AUTO</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a> AUTO</pre> +<div class="block">This option is recommended and will let SweetBlue automatically choose what scanning mode to use + based on whether the app is backgrounded, if we're doing a long-term scan, polling scan, etc.</div> +</li> +</ul> +<a name="CLASSIC"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CLASSIC</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a> CLASSIC</pre> +<div class="block">Will force SweetBlue to use <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startDiscovery--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startDiscovery()</code></a>, which is so-called "Bluetooth Classic" discovery. + This is the scanning mode used on the Android Bluetooth Settings screen. It only returns the mac address and name of your + device through a <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig.ScanFilter.ScanEvent</code></a>, as opposed to full LE scanning packets + which usually have a service <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> (at the least) as well.</div> +</li> +</ul> +<a name="PRE_LOLLIPOP"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>PRE_LOLLIPOP</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a> PRE_LOLLIPOP</pre> +<div class="block">This forces the use of the pre-Lollipop scanning API <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startLeScan-android.bluetooth.BluetoothAdapter.LeScanCallback-" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startLeScan(BluetoothAdapter.LeScanCallback)</code></a>, + which was deprecated in Lollipop.</div> +</li> +</ul> +<a name="POST_LOLLIPOP"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>POST_LOLLIPOP</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a> POST_LOLLIPOP</pre> +<div class="block">This will tell SweetBlue to use the newer scanning API introduced in Lollipop + (<a href="http://d.android.com/reference/android/bluetooth/le/BluetoothLeScanner.html?is-external=true#startScan-java.util.List-android.bluetooth.le.ScanSettings-android.bluetooth.le.ScanCallback-" title="class or interface in android.bluetooth.le"><code>BluetoothLeScanner.startScan(List, ScanSettings, ScanCallback)</code></a>) . We've found that this API is + not yet as good as it's predecessor. It may be better for battery life, as you have more control over the scanning power (using + <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue"><code>BleScanPower</code></a>), however, even at <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#HIGH_POWER"><code>BleScanPower.HIGH_POWER</code></a>, we've found that it doesn't discover devices + as reliably as the pre-lollipop scan API.</div> +</li> +</ul> +<a name="LOW_POWER"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>LOW_POWER</h4> +<pre><a href="http://d.android.com/reference/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a> +public static final <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a> LOW_POWER</pre> +<div class="block"><span class="deprecatedLabel">Deprecated.</span> <span class="deprecationComment">- This will be removed in v3. Use <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#LOW_POWER"><code>BleScanPower.LOW_POWER</code></a> instead.</span></div> +<div class="block">Lollipop-and-up-relevant-only, this is strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.html?is-external=true#SCAN_MODE_LOW_POWER" title="class or interface in android.bluetooth.le"><code>ScanSettings.SCAN_MODE_LOW_POWER</code></a>. + For phones lower than Lollipop, <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#PRE_LOLLIPOP"><code>PRE_LOLLIPOP</code></a> will automatically be used instead.</div> +</li> +</ul> +<a name="MEDIUM_POWER"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>MEDIUM_POWER</h4> +<pre><a href="http://d.android.com/reference/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a> +public static final <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a> MEDIUM_POWER</pre> +<div class="block"><span class="deprecatedLabel">Deprecated.</span> <span class="deprecationComment">- This will be removed in v3. Use <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#MEDIUM_POWER"><code>BleScanPower.MEDIUM_POWER</code></a> instead.</span></div> +<div class="block">Lollipop-and-up-relevant-only, this is strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.html?is-external=true#SCAN_MODE_BALANCED" title="class or interface in android.bluetooth.le"><code>ScanSettings.SCAN_MODE_BALANCED</code></a>. + For phones lower than Lollipop, <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#PRE_LOLLIPOP"><code>PRE_LOLLIPOP</code></a> will automatically be used instead.</div> +</li> +</ul> +<a name="HIGH_POWER"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>HIGH_POWER</h4> +<pre><a href="http://d.android.com/reference/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a> +public static final <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a> HIGH_POWER</pre> +<div class="block"><span class="deprecatedLabel">Deprecated.</span> <span class="deprecationComment">- This will be removed in v3. Use <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#HIGH_POWER"><code>BleScanPower.HIGH_POWER</code></a> instead.</span></div> +<div class="block">Lollipop-and-up-relevant-only, this is strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.html?is-external=true#SCAN_MODE_LOW_LATENCY" title="class or interface in android.bluetooth.le"><code>ScanSettings.SCAN_MODE_LOW_LATENCY</code></a>. + For phones lower than Lollipop, <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#PRE_LOLLIPOP"><code>PRE_LOLLIPOP</code></a> will automatically be used instead.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleScanMode c : BleScanMode.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="getNativeMode--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeMode</h4> +<pre>public int getNativeMode()</pre> +<div class="block">Returns one of the static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>ScanSettings</code></a>, or -1 for <a href="../../../com/idevicesinc/sweetblue/BleScanMode.html#AUTO"><code>AUTO</code></a>.</div> +</li> +</ul> +<a name="isLollipopScanMode--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isLollipopScanMode</h4> +<pre><a href="http://d.android.com/reference/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a> +public boolean isLollipopScanMode()</pre> +<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleScanMode.html" target="_top">Frames</a></li> +<li><a href="BleScanMode.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleScanPower.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleScanPower.html new file mode 100644 index 0000000000000000000000000000000000000000..1418cc286ffbcb2407361c6f36cc11af77a767bf --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleScanPower.html @@ -0,0 +1,408 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleScanPower (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleScanPower (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":10,"i2":9,"i3":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleScanPower.html" target="_top">Frames</a></li> +<li><a href="BleScanPower.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleScanPower" class="title">Enum BleScanPower</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleScanPower</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a>></dd> +</dl> +<hr> +<br> +<pre>public enum <span class="typeNameLabel">BleScanPower</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a>></pre> +<div class="block">Type-safe parallel of various static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>ScanSettings</code></a> for setting the scanning power + when using the Lollipop scanning API. This is ONLY valid on devices running Lollipop, or higher.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#AUTO">AUTO</a></span></code> +<div class="block">SweetBlue will automatically set the scan power depending on if the app is in the foreground or not.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#HIGH_POWER">HIGH_POWER</a></span></code> +<div class="block">Lollipop-and-up-relevant-only, this is strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.html?is-external=true#SCAN_MODE_LOW_LATENCY" title="class or interface in android.bluetooth.le"><code>ScanSettings.SCAN_MODE_LOW_LATENCY</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#LOW_POWER">LOW_POWER</a></span></code> +<div class="block">Lollipop-and-up-relevant-only, this is strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.html?is-external=true#SCAN_MODE_LOW_POWER" title="class or interface in android.bluetooth.le"><code>ScanSettings.SCAN_MODE_LOW_POWER</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#MEDIUM_POWER">MEDIUM_POWER</a></span></code> +<div class="block">Lollipop-and-up-relevant-only, this is strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.html?is-external=true#SCAN_MODE_BALANCED" title="class or interface in android.bluetooth.le"><code>ScanSettings.SCAN_MODE_BALANCED</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#fromBleScanMode-com.idevicesinc.sweetblue.BleScanMode-">fromBleScanMode</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a> mode)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#getNativeMode--">getNativeMode</a></span>()</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="AUTO"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>AUTO</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a> AUTO</pre> +<div class="block">SweetBlue will automatically set the scan power depending on if the app is in the foreground or not. When foregrounded, + and running a periodic, or limited scan, <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#HIGH_POWER"><code>HIGH_POWER</code></a> will be used. If you are using an infinite scan length, + then <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#MEDIUM_POWER"><code>MEDIUM_POWER</code></a> will be used instead. Otherwise, when in the background, <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html#LOW_POWER"><code>LOW_POWER</code></a> is used.</div> +</li> +</ul> +<a name="LOW_POWER"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>LOW_POWER</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a> LOW_POWER</pre> +<div class="block">Lollipop-and-up-relevant-only, this is strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.html?is-external=true#SCAN_MODE_LOW_POWER" title="class or interface in android.bluetooth.le"><code>ScanSettings.SCAN_MODE_LOW_POWER</code></a>. + For phones lower than Lollipop, this will be used ignored.</div> +</li> +</ul> +<a name="MEDIUM_POWER"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>MEDIUM_POWER</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a> MEDIUM_POWER</pre> +<div class="block">Lollipop-and-up-relevant-only, this is strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.html?is-external=true#SCAN_MODE_BALANCED" title="class or interface in android.bluetooth.le"><code>ScanSettings.SCAN_MODE_BALANCED</code></a>. + For phones lower than Lollipop, this will be used ignored.</div> +</li> +</ul> +<a name="HIGH_POWER"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>HIGH_POWER</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a> HIGH_POWER</pre> +<div class="block">Lollipop-and-up-relevant-only, this is strict typing for <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.html?is-external=true#SCAN_MODE_LOW_LATENCY" title="class or interface in android.bluetooth.le"><code>ScanSettings.SCAN_MODE_LOW_LATENCY</code></a>. + For phones lower than Lollipop, this will be used ignored.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleScanPower c : BleScanPower.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="getNativeMode--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeMode</h4> +<pre>public int getNativeMode()</pre> +</li> +</ul> +<a name="fromBleScanMode-com.idevicesinc.sweetblue.BleScanMode-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>fromBleScanMode</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a> fromBleScanMode(<a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a> mode)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleScanPower.html" target="_top">Frames</a></li> +<li><a href="BleScanPower.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..1879cbf85d3b85c8efb360905b6ee17af733d0c1 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html @@ -0,0 +1,333 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.AdvertisingListener.AdvertisingEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.AdvertisingListener.AdvertisingEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" target="_top">Frames</a></li> +<li><a href="BleServer.AdvertisingListener.AdvertisingEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleServer.AdvertisingListener.AdvertisingEvent" class="title">Class BleServer.AdvertisingListener.AdvertisingEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleServer.AdvertisingListener.AdvertisingEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleServer.AdvertisingListener.AdvertisingEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">Sub class representing the Advertising Event</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html#server--">server</a></span>()</code> +<div class="block">The backing <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> which is attempting to start advertising.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html#status--">status</a></span>()</code> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue"><code>BleServer.OutgoingListener.Status</code></a> describing + the m_status of calling <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a></div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html#wasSuccess--">wasSuccess</a></span>()</code> +<div class="block">Whether or not <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a> was successful or not.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="server--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>server</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a> server()</pre> +<div class="block">The backing <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> which is attempting to start advertising.</div> +</li> +</ul> +<a name="wasSuccess--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>wasSuccess</h4> +<pre>public boolean wasSuccess()</pre> +<div class="block">Whether or not <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a> was successful or not. If false, + then call <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html#m_status"><code>m_status</code></a> to get the error code.</div> +</li> +</ul> +<a name="status--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>status</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a> status()</pre> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue"><code>BleServer.OutgoingListener.Status</code></a> describing + the m_status of calling <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a></div> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">UsesCustomNull</a></code></span></div> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" target="_top">Frames</a></li> +<li><a href="BleServer.AdvertisingListener.AdvertisingEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html new file mode 100644 index 0000000000000000000000000000000000000000..964a4c1dec11a2b58f27dbfe4cc60a18409a29a6 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html @@ -0,0 +1,488 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.AdvertisingListener.Status (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.AdvertisingListener.Status (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":10,"i2":10,"i3":9,"i4":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" target="_top">Frames</a></li> +<li><a href="BleServer.AdvertisingListener.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleServer.AdvertisingListener.Status" class="title">Enum BleServer.AdvertisingListener.Status</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleServer.AdvertisingListener.Status</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleServer.AdvertisingListener.Status</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">Enumeration describing the m_status of calling <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#ALREADY_STARTED">ALREADY_STARTED</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#ANDROID_VERSION_NOT_SUPPORTED">ANDROID_VERSION_NOT_SUPPORTED</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#BLE_NOT_ON">BLE_NOT_ON</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#CHIPSET_NOT_SUPPORTED">CHIPSET_NOT_SUPPORTED</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#DATA_TOO_LARGE">DATA_TOO_LARGE</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#INTERNAL_ERROR">INTERNAL_ERROR</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#NULL">NULL</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#NULL_SERVER">NULL_SERVER</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#SUCCESS">SUCCESS</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#TOO_MANY_ADVERTISERS">TOO_MANY_ADVERTISERS</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#fromNativeStatus-int-">fromNativeStatus</a></span>(int bit)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#getNativeStatus--">getNativeStatus</a></span>()</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="SUCCESS"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SUCCESS</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a> SUCCESS</pre> +</li> +</ul> +<a name="DATA_TOO_LARGE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DATA_TOO_LARGE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a> DATA_TOO_LARGE</pre> +</li> +</ul> +<a name="TOO_MANY_ADVERTISERS"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>TOO_MANY_ADVERTISERS</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a> TOO_MANY_ADVERTISERS</pre> +</li> +</ul> +<a name="ALREADY_STARTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ALREADY_STARTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a> ALREADY_STARTED</pre> +</li> +</ul> +<a name="INTERNAL_ERROR"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>INTERNAL_ERROR</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a> INTERNAL_ERROR</pre> +</li> +</ul> +<a name="ANDROID_VERSION_NOT_SUPPORTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ANDROID_VERSION_NOT_SUPPORTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a> ANDROID_VERSION_NOT_SUPPORTED</pre> +</li> +</ul> +<a name="CHIPSET_NOT_SUPPORTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CHIPSET_NOT_SUPPORTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a> CHIPSET_NOT_SUPPORTED</pre> +</li> +</ul> +<a name="BLE_NOT_ON"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BLE_NOT_ON</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a> BLE_NOT_ON</pre> +</li> +</ul> +<a name="NULL_SERVER"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL_SERVER</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a> NULL_SERVER</pre> +</li> +</ul> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a> NULL</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleServer.AdvertisingListener.Status c : BleServer.AdvertisingListener.Status.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="getNativeStatus--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNativeStatus</h4> +<pre>public int getNativeStatus()</pre> +</li> +</ul> +<a name="fromNativeStatus-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromNativeStatus</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a> fromNativeStatus(int bit)</pre> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">UsesCustomNull</a></code></span></div> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" target="_top">Frames</a></li> +<li><a href="BleServer.AdvertisingListener.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html new file mode 100644 index 0000000000000000000000000000000000000000..bf098cfe99726817e2c3bae96e8f2ee55652b9da --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html @@ -0,0 +1,256 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.AdvertisingListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.AdvertisingListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" target="_top">Frames</a></li> +<li><a href="BleServer.AdvertisingListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleServer.AdvertisingListener" class="title">Interface BleServer.AdvertisingListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleServer.AdvertisingListener</span></pre> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Advertising-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>BleServer.setListener_Advertising(BleServer.AdvertisingListener)</code></a>, and + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Advertising-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>BleManager.setListener_Advertising(BleServer.AdvertisingListener)</code></a> to receive a callback + when using <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></span></code> +<div class="block">Sub class representing the Advertising Event</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a></span></code> +<div class="block">Enumeration describing the m_status of calling <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.AdvertisingListener.AdvertisingEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a> e)</code> +<div class="block">Called upon the m_status of calling <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a></div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleServer.AdvertisingListener.AdvertisingEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>void onEvent(<a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a> e)</pre> +<div class="block">Called upon the m_status of calling <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a></div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" target="_top">Frames</a></li> +<li><a href="BleServer.AdvertisingListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..2838003870c5f78850367bde98e23777d81f88d9 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html @@ -0,0 +1,398 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.ConnectionFailListener.ConnectionFailEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.ConnectionFailListener.ConnectionFailEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" target="_top">Frames</a></li> +<li><a href="BleServer.ConnectionFailListener.ConnectionFailEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleServer.ConnectionFailListener.ConnectionFailEvent" class="title">Class BleServer.ConnectionFailListener.ConnectionFailEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">com.idevicesinc.sweetblue.BleNode.ConnectionFailListener.ConnectionFailEvent</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleServer.ConnectionFailListener.ConnectionFailEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.ConnectionFailEvent</a> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">Structure passed to <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"><code>BleServer.ConnectionFailListener.onEvent(ConnectionFailEvent)</code></a> to provide more info about how/why the connection failed.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#history--">history</a></span>()</code> +<div class="block">Returns a chronologically-ordered list of all <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener.ConnectionFailEvent</code></a> instances returned through + <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"><code>BleServer.ConnectionFailListener.onEvent(ConnectionFailEvent)</code></a> since the first call to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a>, + including the current instance.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns whether this <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener.ConnectionFailEvent</code></a> instance is a "dummy" value.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#macAddress--">macAddress</a></span>()</code> +<div class="block">Returns the mac address of the client that's undergoing the state change with this <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#server--"><code>server()</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth">BluetoothDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#nativeDevice--">nativeDevice</a></span>()</code> +<div class="block">The native <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothDevice</code></a> client this <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener.ConnectionFailEvent</code></a> is for.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#server--">server</a></span>()</code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> this <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener.ConnectionFailEvent</code></a> is for.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#shouldBeReportedToUser--">shouldBeReportedToUser</a></span>()</code> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#shouldBeReportedToUser--"><code>BleDevice.ConnectionFailListener.Status.shouldBeReportedToUser()</code></a> + using <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#status--"><code>status()</code></a>.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#status--">status</a></span>()</code> +<div class="block">General reason why the connection failed.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.BleNode.ConnectionFailListener.ConnectionFailEvent"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.ConnectionFailEvent</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#attemptTime_latest--">attemptTime_latest</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#attemptTime_total--">attemptTime_total</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#autoConnectUsage--">autoConnectUsage</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#failureCountSoFar--">failureCountSoFar</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#gattStatus--">gattStatus</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="server--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>server</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a> server()</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> this <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener.ConnectionFailEvent</code></a> is for.</div> +</li> +</ul> +<a name="nativeDevice--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>nativeDevice</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth">BluetoothDevice</a> nativeDevice()</pre> +<div class="block">The native <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothDevice</code></a> client this <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener.ConnectionFailEvent</code></a> is for.</div> +</li> +</ul> +<a name="macAddress--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>macAddress</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress()</pre> +<div class="block">Returns the mac address of the client that's undergoing the state change with this <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#server--"><code>server()</code></a>.</div> +</li> +</ul> +<a name="status--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>status</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a> status()</pre> +<div class="block">General reason why the connection failed.</div> +</li> +</ul> +<a name="history--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>history</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a>[] history()</pre> +<div class="block">Returns a chronologically-ordered list of all <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener.ConnectionFailEvent</code></a> instances returned through + <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"><code>BleServer.ConnectionFailListener.onEvent(ConnectionFailEvent)</code></a> since the first call to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a>, + including the current instance. Thus this list will always have at least a length of one (except if <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#isNull--"><code>isNull()</code></a> is <code>true</code>). + The list length is "reset" back to one whenever a <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING_OVERALL"><code>BleDeviceState.CONNECTING_OVERALL</code></a> operation completes, either + through becoming <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZED"><code>BleDeviceState.INITIALIZED</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a> for good.</div> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block">Returns whether this <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener.ConnectionFailEvent</code></a> instance is a "dummy" value. For now used for + <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#connectionFailEvent--"><code>BleNodeConfig.ReconnectFilter.ReconnectEvent.connectionFailEvent()</code></a> in certain situations.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +<a name="shouldBeReportedToUser--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>shouldBeReportedToUser</h4> +<pre>public boolean shouldBeReportedToUser()</pre> +<div class="block">Forwards <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#shouldBeReportedToUser--"><code>BleDevice.ConnectionFailListener.Status.shouldBeReportedToUser()</code></a> + using <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#status--"><code>status()</code></a>.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" target="_top">Frames</a></li> +<li><a href="BleServer.ConnectionFailListener.ConnectionFailEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html new file mode 100644 index 0000000000000000000000000000000000000000..48d31796b25f35d5e0ae0a7039d71029d7ddd2f7 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html @@ -0,0 +1,548 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.ConnectionFailListener.Status (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.ConnectionFailListener.Status (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":9,"i5":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" target="_top">Frames</a></li> +<li><a href="BleServer.ConnectionFailListener.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleServer.ConnectionFailListener.Status" class="title">Enum BleServer.ConnectionFailListener.Status</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.Status</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleServer.ConnectionFailListener.Status</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">The reason for the connection failure.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#ALREADY_CONNECTING_OR_CONNECTED">ALREADY_CONNECTING_OR_CONNECTED</a></span></code> +<div class="block">A call was made to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-"><code>BleServer.connect(String)</code></a> or its overloads + but <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#server--"><code>BleServer.ConnectionFailListener.ConnectionFailEvent.server()</code></a> is already + <a href="../../../com/idevicesinc/sweetblue/BleServerState.html#CONNECTING"><code>BleServerState.CONNECTING</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleServerState.html#CONNECTED"><code>BleServerState.CONNECTED</code></a> for the given client.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#CANCELLED_FROM_BLE_TURNING_OFF">CANCELLED_FROM_BLE_TURNING_OFF</a></span></code> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOff--"><code>BleManager.turnOff()</code></a> (or + overloads) were called sometime during the connection process.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#CANCELLED_FROM_DISCONNECT">CANCELLED_FROM_DISCONNECT</a></span></code> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#disconnect--"><code>BleServer.disconnect()</code></a> or overloads was called sometime during the connection process.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#NATIVE_CONNECTION_FAILED_EVENTUALLY">NATIVE_CONNECTION_FAILED_EVENTUALLY</a></span></code> +<div class="block">Couldn't connect through <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#connect-android.bluetooth.BluetoothDevice-boolean-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.connect(BluetoothDevice, boolean)</code></a> + because we eventually got a bad status code through <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServerCallback.html?is-external=true#onConnectionStateChange-android.bluetooth.BluetoothDevice-int-int-" title="class or interface in android.bluetooth"><code>BluetoothGattServerCallback.onConnectionStateChange(BluetoothDevice, int, int)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#NATIVE_CONNECTION_FAILED_IMMEDIATELY">NATIVE_CONNECTION_FAILED_IMMEDIATELY</a></span></code> +<div class="block">Couldn't connect through <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#connect-android.bluetooth.BluetoothDevice-boolean-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.connect(BluetoothDevice, boolean)</code></a> + because it returned <code>false</code>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#NULL">NULL</a></span></code> +<div class="block">Used in place of Java's built-in <code>null</code> wherever needed.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#NULL_SERVER">NULL_SERVER</a></span></code> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-"><code>BleServer.connect(String)</code></a> (or various overloads) was called on <a href="../../../com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#SERVER_OPENING_FAILED">SERVER_OPENING_FAILED</a></span></code> +<div class="block">The call to <a href="http://d.android.com/reference/android/bluetooth/BluetoothManager.html?is-external=true#openGattServer-android.content.Context-android.bluetooth.BluetoothGattServerCallback-" title="class or interface in android.bluetooth"><code>BluetoothManager.openGattServer(Context, BluetoothGattServerCallback)</code></a> returned + a <code>null</code> object instance, so we could not proceed.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#TIMED_OUT">TIMED_OUT</a></span></code> +<div class="block">Couldn't connect through <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#connect-android.bluetooth.BluetoothDevice-boolean-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.connect(BluetoothDevice, boolean)</code></a> + because the operation took longer than the time dictated by <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter"><code>BleNodeConfig.taskTimeoutRequestFilter</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#allowsRetry--">allowsRetry</a></span>()</code> +<div class="block">Whether this reason honors a <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#isRetry--"><code>BleNode.ConnectionFailListener.Please.isRetry()</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#shouldBeReportedToUser--">shouldBeReportedToUser</a></span>()</code> +<div class="block">Convenience method that returns whether this status is something that your app user would usually care about.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#wasCancelled--">wasCancelled</a></span>()</code> +<div class="block">Returns true for <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#CANCELLED_FROM_DISCONNECT"><code>CANCELLED_FROM_DISCONNECT</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#CANCELLED_FROM_BLE_TURNING_OFF"><code>CANCELLED_FROM_BLE_TURNING_OFF</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a> NULL</pre> +<div class="block">Used in place of Java's built-in <code>null</code> wherever needed. As of now, the <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#status--"><code>BleServer.ConnectionFailListener.ConnectionFailEvent.status()</code></a> given + to <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"><code>BleServer.ConnectionFailListener.onEvent(ConnectionFailEvent)</code></a> will *never* be <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#NULL"><code>NULL</code></a>.</div> +</li> +</ul> +<a name="ALREADY_CONNECTING_OR_CONNECTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ALREADY_CONNECTING_OR_CONNECTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a> ALREADY_CONNECTING_OR_CONNECTED</pre> +<div class="block">A call was made to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-"><code>BleServer.connect(String)</code></a> or its overloads + but <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#server--"><code>BleServer.ConnectionFailListener.ConnectionFailEvent.server()</code></a> is already + <a href="../../../com/idevicesinc/sweetblue/BleServerState.html#CONNECTING"><code>BleServerState.CONNECTING</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleServerState.html#CONNECTED"><code>BleServerState.CONNECTED</code></a> for the given client.</div> +</li> +</ul> +<a name="NULL_SERVER"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL_SERVER</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a> NULL_SERVER</pre> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-"><code>BleServer.connect(String)</code></a> (or various overloads) was called on <a href="../../../com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a>.</div> +</li> +</ul> +<a name="SERVER_OPENING_FAILED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SERVER_OPENING_FAILED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a> SERVER_OPENING_FAILED</pre> +<div class="block">The call to <a href="http://d.android.com/reference/android/bluetooth/BluetoothManager.html?is-external=true#openGattServer-android.content.Context-android.bluetooth.BluetoothGattServerCallback-" title="class or interface in android.bluetooth"><code>BluetoothManager.openGattServer(Context, BluetoothGattServerCallback)</code></a> returned + a <code>null</code> object instance, so we could not proceed.</div> +</li> +</ul> +<a name="NATIVE_CONNECTION_FAILED_IMMEDIATELY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NATIVE_CONNECTION_FAILED_IMMEDIATELY</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a> NATIVE_CONNECTION_FAILED_IMMEDIATELY</pre> +<div class="block">Couldn't connect through <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#connect-android.bluetooth.BluetoothDevice-boolean-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.connect(BluetoothDevice, boolean)</code></a> + because it returned <code>false</code>.</div> +</li> +</ul> +<a name="NATIVE_CONNECTION_FAILED_EVENTUALLY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NATIVE_CONNECTION_FAILED_EVENTUALLY</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a> NATIVE_CONNECTION_FAILED_EVENTUALLY</pre> +<div class="block">Couldn't connect through <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#connect-android.bluetooth.BluetoothDevice-boolean-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.connect(BluetoothDevice, boolean)</code></a> + because we eventually got a bad status code through <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServerCallback.html?is-external=true#onConnectionStateChange-android.bluetooth.BluetoothDevice-int-int-" title="class or interface in android.bluetooth"><code>BluetoothGattServerCallback.onConnectionStateChange(BluetoothDevice, int, int)</code></a>.</div> +</li> +</ul> +<a name="TIMED_OUT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>TIMED_OUT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a> TIMED_OUT</pre> +<div class="block">Couldn't connect through <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#connect-android.bluetooth.BluetoothDevice-boolean-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.connect(BluetoothDevice, boolean)</code></a> + because the operation took longer than the time dictated by <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter"><code>BleNodeConfig.taskTimeoutRequestFilter</code></a>.</div> +</li> +</ul> +<a name="CANCELLED_FROM_DISCONNECT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CANCELLED_FROM_DISCONNECT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a> CANCELLED_FROM_DISCONNECT</pre> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#disconnect--"><code>BleServer.disconnect()</code></a> or overloads was called sometime during the connection process.</div> +</li> +</ul> +<a name="CANCELLED_FROM_BLE_TURNING_OFF"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>CANCELLED_FROM_BLE_TURNING_OFF</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a> CANCELLED_FROM_BLE_TURNING_OFF</pre> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOff--"><code>BleManager.turnOff()</code></a> (or + overloads) were called sometime during the connection process. + Basic testing reveals that this value will also be used when a + user turns off BLE by going through their OS settings, airplane + mode, etc., but it's not absolutely *certain* that this behavior + is consistent across phones. For example there might be a phone + that kills all connections *before* going through the ble turn-off + process, thus <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#NATIVE_CONNECTION_FAILED_EVENTUALLY"><code>NATIVE_CONNECTION_FAILED_EVENTUALLY</code></a> would probably be seen.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleServer.ConnectionFailListener.Status c : BleServer.ConnectionFailListener.Status.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="wasCancelled--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>wasCancelled</h4> +<pre>public boolean wasCancelled()</pre> +<div class="block">Returns true for <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#CANCELLED_FROM_DISCONNECT"><code>CANCELLED_FROM_DISCONNECT</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#CANCELLED_FROM_BLE_TURNING_OFF"><code>CANCELLED_FROM_BLE_TURNING_OFF</code></a>.</div> +</li> +</ul> +<a name="allowsRetry--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>allowsRetry</h4> +<pre>public boolean allowsRetry()</pre> +<div class="block">Whether this reason honors a <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#isRetry--"><code>BleNode.ConnectionFailListener.Please.isRetry()</code></a>. Returns <code>false</code> if <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#wasCancelled--"><code>wasCancelled()</code></a> or + <code>this</code> is <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#ALREADY_CONNECTING_OR_CONNECTED"><code>ALREADY_CONNECTING_OR_CONNECTED</code></a>.</div> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">UsesCustomNull</a></code></span></div> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +<a name="shouldBeReportedToUser--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>shouldBeReportedToUser</h4> +<pre>public boolean shouldBeReportedToUser()</pre> +<div class="block">Convenience method that returns whether this status is something that your app user would usually care about. + If this returns <code>true</code> then perhaps you should pop up a <a href="http://d.android.com/reference/android/widget/Toast.html?is-external=true" title="class or interface in android.widget"><code>Toast</code></a> or something of that nature.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" target="_top">Frames</a></li> +<li><a href="BleServer.ConnectionFailListener.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html new file mode 100644 index 0000000000000000000000000000000000000000..ebca18459afe7995bd7a54240a80ea0d7e00a9b7 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html @@ -0,0 +1,271 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.ConnectionFailListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.ConnectionFailListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" target="_top">Frames</a></li> +<li><a href="BleServer.ConnectionFailListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleServer.ConnectionFailListener" class="title">Interface BleServer.ConnectionFailListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Superinterfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener</a></dd> +</dl> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleServer.DefaultConnectionFailListener</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleServer.ConnectionFailListener</span> +extends <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener</a></pre> +<div class="block">Provide an implementation of this callback to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>BleServer.setListener_ConnectionFail(ConnectionFailListener)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>BleServer.setListener_ConnectionFail(ConnectionFailListener)</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a></span></code> +<div class="block">Structure passed to <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"><code>onEvent(ConnectionFailEvent)</code></a> to provide more info about how/why the connection failed.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a></span></code> +<div class="block">The reason for the connection failure.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleNode.ConnectionFailListener"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></code></li> +</ul> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a> e)</code> </td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a> onEvent(<a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a> e)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" target="_top">Frames</a></li> +<li><a href="BleServer.ConnectionFailListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html new file mode 100644 index 0000000000000000000000000000000000000000..c996f94a935c9947d049cd55acdeb8363b39893f --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html @@ -0,0 +1,421 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.DefaultConnectionFailListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.DefaultConnectionFailListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" target="_top">Frames</a></li> +<li><a href="BleServer.DefaultConnectionFailListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleServer.DefaultConnectionFailListener" class="title">Class BleServer.DefaultConnectionFailListener</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleServer.DefaultConnectionFailListener</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleServer.DefaultConnectionFailListener</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a></pre> +<div class="block">Default implementation of <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener</code></a> that attempts a certain number of retries. An instance of this class is set by default + for all new <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> instances using <a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html#DEFAULT_CONNECTION_FAIL_RETRY_COUNT"><code>DEFAULT_CONNECTION_FAIL_RETRY_COUNT</code></a>. + Use <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>BleServer.setListener_ConnectionFail(ConnectionFailListener)</code></a> to override the default behavior.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>BleServer.setListener_ConnectionFail(ConnectionFailListener)</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleServer.ConnectionFailListener"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleNode.ConnectionFailListener"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></code></li> +</ul> +</li> +</ul> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html#DEFAULT_CONNECTION_FAIL_RETRY_COUNT">DEFAULT_CONNECTION_FAIL_RETRY_COUNT</a></span></code> +<div class="block">The default retry count provided to <a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.DefaultConnectionFailListener</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html#DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT">DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT</a></span></code> +<div class="block">The default connection fail limit past which <a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.DefaultConnectionFailListener</code></a> will start returning <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retryWithAutoConnectTrue--"><code>BleNode.ConnectionFailListener.Please.retryWithAutoConnectTrue()</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html#MAX_RETRY_TIME_FOR_BOND_FAILURE">MAX_RETRY_TIME_FOR_BOND_FAILURE</a></span></code> +<div class="block">The maximum amount of time to keep trying if connection is failing due to (what usually are) transient bonding failures</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html#DefaultConnectionFailListener--">DefaultConnectionFailListener</a></span>()</code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html#DefaultConnectionFailListener-int-int-">DefaultConnectionFailListener</a></span>(int retryCount, + int failCountBeforeUsingAutoConnect)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html#getRetryCount--">getRetryCount</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a> e)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="DEFAULT_CONNECTION_FAIL_RETRY_COUNT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_CONNECTION_FAIL_RETRY_COUNT</h4> +<pre>public static final int DEFAULT_CONNECTION_FAIL_RETRY_COUNT</pre> +<div class="block">The default retry count provided to <a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.DefaultConnectionFailListener</code></a>. + So if you were to call <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> and all connections failed, in total the + library would try to connect 2+1 times.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.DefaultConnectionFailListener</code></a>, +<a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleServer.DefaultConnectionFailListener.DEFAULT_CONNECTION_FAIL_RETRY_COUNT">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT</h4> +<pre>public static final int DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT</pre> +<div class="block">The default connection fail limit past which <a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.DefaultConnectionFailListener</code></a> will start returning <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retryWithAutoConnectTrue--"><code>BleNode.ConnectionFailListener.Please.retryWithAutoConnectTrue()</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleServer.DefaultConnectionFailListener.DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="MAX_RETRY_TIME_FOR_BOND_FAILURE"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>MAX_RETRY_TIME_FOR_BOND_FAILURE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> MAX_RETRY_TIME_FOR_BOND_FAILURE</pre> +<div class="block">The maximum amount of time to keep trying if connection is failing due to (what usually are) transient bonding failures</div> +</li> +</ul> +</li> +</ul> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="DefaultConnectionFailListener--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DefaultConnectionFailListener</h4> +<pre>public DefaultConnectionFailListener()</pre> +</li> +</ul> +<a name="DefaultConnectionFailListener-int-int-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>DefaultConnectionFailListener</h4> +<pre>public DefaultConnectionFailListener(int retryCount, + int failCountBeforeUsingAutoConnect)</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="getRetryCount--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getRetryCount</h4> +<pre>public int getRetryCount()</pre> +</li> +</ul> +<a name="onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a> onEvent(<a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a> e)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-">onEvent</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" target="_top">Frames</a></li> +<li><a href="BleServer.DefaultConnectionFailListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..4bf47ed8d38235b9c5a6e6bfe09633d6946770db --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html @@ -0,0 +1,531 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.ExchangeListener.ExchangeEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.ExchangeListener.ExchangeEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" target="_top">Frames</a></li> +<li><a href="BleServer.ExchangeListener.ExchangeEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleServer.ExchangeListener.ExchangeEvent" class="title">Class BleServer.ExchangeListener.ExchangeEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleServer.ExchangeListener.ExchangeEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Direct Known Subclasses:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.IncomingEvent</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ExchangeListener</a></dd> +</dl> +<hr> +<br> +<pre>public abstract static class <span class="typeNameLabel">BleServer.ExchangeListener.ExchangeEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></pre> +<div class="block">Like <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener</code></a>, this class should not be used directly as this is just a base class to statically tie together + <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener.IncomingEvent</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.OutgoingListener.OutgoingEvent</code></a> with a common API.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#NON_APPLICABLE_REQUEST_ID">NON_APPLICABLE_REQUEST_ID</a></span></code> +<div class="block">Return value of <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#requestId--"><code>requestId()</code></a> if <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>type()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#NOTIFICATION"><code>BleServer.ExchangeListener.Type.NOTIFICATION</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#NON_APPLICABLE_UUID">NON_APPLICABLE_UUID</a></span></code> +<div class="block">Value used in place of <code>null</code>, either indicating that <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#descUuid--"><code>descUuid()</code></a> + isn't used for the <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a> because <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#target--"><code>target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html#CHARACTERISTIC"><code>BleServer.ExchangeListener.Target.CHARACTERISTIC</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#charUuid--">charUuid</a></span>()</code> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the characteristic associated with this <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#data_received--">data_received</a></span>()</code> +<div class="block">The data received from the client if <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>type()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isWrite--"><code>BleServer.ExchangeListener.Type.isWrite()</code></a>, otherwise an empty byte array.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#descUuid--">descUuid</a></span>()</code> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the descriptor associated with this <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#isFor-java.lang.String-">isFor</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#isFor-java.util.UUID-">isFor</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> </td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#macAddress--">macAddress</a></span>()</code> +<div class="block">Returns the mac address of the client peripheral that we are exchanging data with.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth">BluetoothDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#nativeDevice--">nativeDevice</a></span>()</code> +<div class="block">Returns the native bluetooth device object representing the client making the request.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#offset--">offset</a></span>()</code> +<div class="block">The offset forwarded from the native stack.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#requestId--">requestId</a></span>()</code> +<div class="block">The request id forwarded from the native stack.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#responseNeeded--">responseNeeded</a></span>()</code> +<div class="block">Dictates whether a response is needed.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#server--">server</a></span>()</code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> this <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a> is for.</div> +</td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#serviceUuid--">serviceUuid</a></span>()</code> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the service associated with this <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a>.</div> +</td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Target</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#target--">target</a></span>()</code> +<div class="block">The type of GATT object this <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a> is for, characteristic or descriptor.</div> +</td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--">type</a></span>()</code> +<div class="block">The type of operation, read or write.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="NON_APPLICABLE_UUID"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NON_APPLICABLE_UUID</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> NON_APPLICABLE_UUID</pre> +<div class="block">Value used in place of <code>null</code>, either indicating that <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#descUuid--"><code>descUuid()</code></a> + isn't used for the <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a> because <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#target--"><code>target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html#CHARACTERISTIC"><code>BleServer.ExchangeListener.Target.CHARACTERISTIC</code></a>.</div> +</li> +</ul> +<a name="NON_APPLICABLE_REQUEST_ID"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>NON_APPLICABLE_REQUEST_ID</h4> +<pre>public static final int NON_APPLICABLE_REQUEST_ID</pre> +<div class="block">Return value of <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#requestId--"><code>requestId()</code></a> if <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>type()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#NOTIFICATION"><code>BleServer.ExchangeListener.Type.NOTIFICATION</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleServer.ExchangeListener.ExchangeEvent.NON_APPLICABLE_REQUEST_ID">Constant Field Values</a></dd> +</dl> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="server--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>server</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a> server()</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> this <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a> is for.</div> +</li> +</ul> +<a name="macAddress--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>macAddress</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress()</pre> +<div class="block">Returns the mac address of the client peripheral that we are exchanging data with.</div> +</li> +</ul> +<a name="nativeDevice--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>nativeDevice</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth">BluetoothDevice</a> nativeDevice()</pre> +<div class="block">Returns the native bluetooth device object representing the client making the request.</div> +</li> +</ul> +<a name="type--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>type</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a> type()</pre> +<div class="block">The type of operation, read or write.</div> +</li> +</ul> +<a name="target--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>target</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Target</a> target()</pre> +<div class="block">The type of GATT object this <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a> is for, characteristic or descriptor.</div> +</li> +</ul> +<a name="serviceUuid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>serviceUuid</h4> +<pre>public <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid()</pre> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the service associated with this <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a>.</div> +</li> +</ul> +<a name="charUuid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>charUuid</h4> +<pre>public <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid()</pre> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the characteristic associated with this <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a>. This will always be + a valid <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>, even if <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#target--"><code>target()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html#DESCRIPTOR"><code>BleServer.ExchangeListener.Target.DESCRIPTOR</code></a>.</div> +</li> +</ul> +<a name="descUuid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>descUuid</h4> +<pre>public <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descUuid()</pre> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the descriptor associated with this <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a>. If <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#target--"><code>target()</code></a> is + <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html#CHARACTERISTIC"><code>BleServer.ExchangeListener.Target.CHARACTERISTIC</code></a> then this will be referentially equal (i.e. you can use == to compare) + to <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#NON_APPLICABLE_UUID"><code>NON_APPLICABLE_UUID</code></a>.</div> +</li> +</ul> +<a name="data_received--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>data_received</h4> +<pre>public byte[] data_received()</pre> +<div class="block">The data received from the client if <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>type()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isWrite--"><code>BleServer.ExchangeListener.Type.isWrite()</code></a>, otherwise an empty byte array. + This is in contrast to <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#data_sent--"><code>BleServer.OutgoingListener.OutgoingEvent.data_sent()</code></a> if + <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>type()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isRead--"><code>BleServer.ExchangeListener.Type.isRead()</code></a>.</div> +</li> +</ul> +<a name="requestId--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>requestId</h4> +<pre>public int requestId()</pre> +<div class="block">The request id forwarded from the native stack. See various methods of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServerCallback.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattServerCallback</code></a> for explanation. + Not relevant if <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>type()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isNotificationOrIndication--"><code>BleServer.ExchangeListener.Type.isNotificationOrIndication()</code></a> is <code>true</code>.</div> +</li> +</ul> +<a name="offset--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>offset</h4> +<pre>public int offset()</pre> +<div class="block">The offset forwarded from the native stack. See various methods of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServerCallback.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattServerCallback</code></a> for explanation. + Not relevant if <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>type()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isNotificationOrIndication--"><code>BleServer.ExchangeListener.Type.isNotificationOrIndication()</code></a> is <code>true</code>.</div> +</li> +</ul> +<a name="responseNeeded--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>responseNeeded</h4> +<pre>public boolean responseNeeded()</pre> +<div class="block">Dictates whether a response is needed. + Not relevant if <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>type()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isNotificationOrIndication--"><code>BleServer.ExchangeListener.Type.isNotificationOrIndication()</code></a> is <code>true</code>.</div> +</li> +</ul> +<a name="isFor-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isFor</h4> +<pre>public boolean isFor(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</pre> +</li> +</ul> +<a name="isFor-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isFor</h4> +<pre>public boolean isFor(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" target="_top">Frames</a></li> +<li><a href="BleServer.ExchangeListener.ExchangeEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html new file mode 100644 index 0000000000000000000000000000000000000000..3d5f89cd745f8204edb36be2acf1ec866194cc23 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html @@ -0,0 +1,350 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.ExchangeListener.Target (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.ExchangeListener.Target (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" target="_top">Frames</a></li> +<li><a href="BleServer.ExchangeListener.Target.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleServer.ExchangeListener.Target" class="title">Enum BleServer.ExchangeListener.Target</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Target</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleServer.ExchangeListener.Target</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Target</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ExchangeListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleServer.ExchangeListener.Target</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Target</a>></pre> +<div class="block">The type of GATT object, provided by <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#target--"><code>BleServer.ExchangeListener.ExchangeEvent.target()</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html#CHARACTERISTIC">CHARACTERISTIC</a></span></code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a> returned has to do with a <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic</code></a> under the hood.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html#DESCRIPTOR">DESCRIPTOR</a></span></code> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a> returned has to do with a <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor</code></a> under the hood.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Target</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Target</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="CHARACTERISTIC"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CHARACTERISTIC</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Target</a> CHARACTERISTIC</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a> returned has to do with a <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic</code></a> under the hood.</div> +</li> +</ul> +<a name="DESCRIPTOR"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>DESCRIPTOR</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Target</a> DESCRIPTOR</pre> +<div class="block">The <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a> returned has to do with a <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor</code></a> under the hood.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Target</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleServer.ExchangeListener.Target c : BleServer.ExchangeListener.Target.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Target</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" target="_top">Frames</a></li> +<li><a href="BleServer.ExchangeListener.Target.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html new file mode 100644 index 0000000000000000000000000000000000000000..fae311911b073c1314a5192ee662b14f0e563e75 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html @@ -0,0 +1,443 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.ExchangeListener.Type (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.ExchangeListener.Type (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" target="_top">Frames</a></li> +<li><a href="BleServer.ExchangeListener.Type.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleServer.ExchangeListener.Type" class="title">Enum BleServer.ExchangeListener.Type</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleServer.ExchangeListener.Type</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ExchangeListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleServer.ExchangeListener.Type</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a>></pre> +<div class="block">The type of exchange being executed, read, write, or notify.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#INDICATION">INDICATION</a></span></code> +<div class="block">Only for <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-byte:A-"><code>BleServer.sendIndication(String, UUID, byte[])</code></a> or overloads.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#NOTIFICATION">NOTIFICATION</a></span></code> +<div class="block">Only for <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-byte:A-"><code>BleServer.sendNotification(String, UUID, byte[])</code></a> or overloads.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#PREPARED_WRITE">PREPARED_WRITE</a></span></code> +<div class="block">The client is requesting acceptance of a prepared write.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#READ">READ</a></span></code> +<div class="block">The client is requesting a read of some data from us, the server.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#WRITE">WRITE</a></span></code> +<div class="block">The client is requesting acceptance of a write.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isNotificationOrIndication--">isNotificationOrIndication</a></span>()</code> +<div class="block">Shorthand for checking if this equals <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#NOTIFICATION"><code>NOTIFICATION</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#INDICATION"><code>INDICATION</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isRead--">isRead</a></span>()</code> +<div class="block">Shorthand for checking if this equals <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#READ"><code>READ</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isWrite--">isWrite</a></span>()</code> +<div class="block">Shorthand for checking if this equals <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#WRITE"><code>WRITE</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#PREPARED_WRITE"><code>PREPARED_WRITE</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="READ"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>READ</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a> READ</pre> +<div class="block">The client is requesting a read of some data from us, the server.</div> +</li> +</ul> +<a name="WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WRITE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a> WRITE</pre> +<div class="block">The client is requesting acceptance of a write.</div> +</li> +</ul> +<a name="PREPARED_WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>PREPARED_WRITE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a> PREPARED_WRITE</pre> +<div class="block">The client is requesting acceptance of a prepared write.</div> +</li> +</ul> +<a name="NOTIFICATION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NOTIFICATION</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a> NOTIFICATION</pre> +<div class="block">Only for <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-byte:A-"><code>BleServer.sendNotification(String, UUID, byte[])</code></a> or overloads.</div> +</li> +</ul> +<a name="INDICATION"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>INDICATION</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a> INDICATION</pre> +<div class="block">Only for <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-byte:A-"><code>BleServer.sendIndication(String, UUID, byte[])</code></a> or overloads.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleServer.ExchangeListener.Type c : BleServer.ExchangeListener.Type.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="isRead--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isRead</h4> +<pre>public boolean isRead()</pre> +<div class="block">Shorthand for checking if this equals <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#READ"><code>READ</code></a>.</div> +</li> +</ul> +<a name="isNotificationOrIndication--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNotificationOrIndication</h4> +<pre>public boolean isNotificationOrIndication()</pre> +<div class="block">Shorthand for checking if this equals <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#NOTIFICATION"><code>NOTIFICATION</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#INDICATION"><code>INDICATION</code></a>.</div> +</li> +</ul> +<a name="isWrite--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isWrite</h4> +<pre>public boolean isWrite()</pre> +<div class="block">Shorthand for checking if this equals <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#WRITE"><code>WRITE</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#PREPARED_WRITE"><code>PREPARED_WRITE</code></a>.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" target="_top">Frames</a></li> +<li><a href="BleServer.ExchangeListener.Type.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ExchangeListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ExchangeListener.html new file mode 100644 index 0000000000000000000000000000000000000000..573c9f3b6a37daaa77e6d6d0868d5b9b8d7561e8 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ExchangeListener.html @@ -0,0 +1,215 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.ExchangeListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.ExchangeListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" target="_top">Frames</a></li> +<li><a href="BleServer.ExchangeListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleServer.ExchangeListener" class="title">Interface BleServer.ExchangeListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Subinterfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.IncomingListener</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleServer.ExchangeListener</span></pre> +<div class="block">Tagging interface, not to be implemented directly as this is just the base interface to statically tie together + <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.OutgoingListener</code></a> with common enums/structures.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></span></code> +<div class="block">Like <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener</code></a>, this class should not be used directly as this is just a base class to statically tie together + <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener.IncomingEvent</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.OutgoingListener.OutgoingEvent</code></a> with a common API.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Target</a></span></code> +<div class="block">The type of GATT object, provided by <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#target--"><code>BleServer.ExchangeListener.ExchangeEvent.target()</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a></span></code> +<div class="block">The type of exchange being executed, read, write, or notify.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" target="_top">Frames</a></li> +<li><a href="BleServer.ExchangeListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..46ac0402bcccd3a51c14d72672525f7dfc0df232 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html @@ -0,0 +1,283 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.IncomingListener.IncomingEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.IncomingListener.IncomingEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" target="_top">Frames</a></li> +<li><a href="BleServer.IncomingListener.IncomingEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.BleServer.ExchangeListener.ExchangeEvent">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleServer.IncomingListener.IncomingEvent" class="title">Class BleServer.IncomingListener.IncomingEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">com.idevicesinc.sweetblue.BleServer.ExchangeListener.ExchangeEvent</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.IncomingListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleServer.IncomingListener.IncomingEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></pre> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>BleServer.IncomingListener.onEvent(BleServer.IncomingListener.IncomingEvent)</code></a>} that provides details about the client and what it wants from us, the server.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.com.idevicesinc.sweetblue.BleServer.ExchangeListener.ExchangeEvent"> +<!-- --> +</a> +<h3>Fields inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#NON_APPLICABLE_REQUEST_ID">NON_APPLICABLE_REQUEST_ID</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#NON_APPLICABLE_UUID">NON_APPLICABLE_UUID</a></code></li> +</ul> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.BleServer.ExchangeListener.ExchangeEvent"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#charUuid--">charUuid</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#data_received--">data_received</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#descUuid--">descUuid</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#isFor-java.lang.String-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#isFor-java.util.UUID-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#macAddress--">macAddress</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#nativeDevice--">nativeDevice</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#offset--">offset</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#requestId--">requestId</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#responseNeeded--">responseNeeded</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#server--">server</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#serviceUuid--">serviceUuid</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#target--">target</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--">type</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" target="_top">Frames</a></li> +<li><a href="BleServer.IncomingListener.IncomingEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.BleServer.ExchangeListener.ExchangeEvent">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html new file mode 100644 index 0000000000000000000000000000000000000000..f520602ed4d09c9371721fb69e2f7504636c28d8 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html @@ -0,0 +1,423 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.IncomingListener.Please (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.IncomingListener.Please (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" target="_top">Frames</a></li> +<li><a href="BleServer.IncomingListener.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleServer.IncomingListener.Please" class="title">Class BleServer.IncomingListener.Please</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleServer.IncomingListener.Please</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.IncomingListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleServer.IncomingListener.Please</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Struct returned from <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>BleServer.IncomingListener.onEvent(IncomingEvent)</code></a>. + Use the static constructor methods to create instances.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#doNotRespond--">doNotRespond</a></span>()</code> +<div class="block">Use this as the return value of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>BleServer.IncomingListener.onEvent(IncomingEvent)</code></a> + when <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#responseNeeded--"><code>BleServer.ExchangeListener.ExchangeEvent.responseNeeded()</code></a> is <code>true</code>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#doNotRespond-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">doNotRespond</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#doNotRespond--"><code>doNotRespond()</code></a> but allows you to provide a listener specific to this (non-)response.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithError-int-">respondWithError</a></span>(int gattStatus)</code> +<div class="block">Send an error/status code back to the client.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithError-int-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">respondWithError</a></span>(int gattStatus, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithError-int-"><code>respondWithError(int)</code></a> but allows you to provide a listener specific to this response.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess--">respondWithSuccess</a></span>()</code> +<div class="block">Use this as the return value of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>BleServer.IncomingListener.onEvent(IncomingEvent)</code></a> + when <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#responseNeeded--"><code>BleServer.ExchangeListener.ExchangeEvent.responseNeeded()</code></a> is <code>true</code> and <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>BleServer.ExchangeListener.ExchangeEvent.type()</code></a> + <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isWrite--"><code>BleServer.ExchangeListener.Type.isWrite()</code></a> is <code>true</code> and you consider the write successful.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">respondWithSuccess</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess--"><code>respondWithSuccess()</code></a> but allows you to provide a listener specific to this response.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-byte:A-">respondWithSuccess</a></span>(byte[] data)</code> +<div class="block">Use this as the return value of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>BleServer.IncomingListener.onEvent(IncomingEvent)</code></a> when + <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>BleServer.ExchangeListener.ExchangeEvent.type()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isRead--"><code>BleServer.ExchangeListener.Type.isRead()</code></a> is <code>true</code> and you can respect + the read request and respond with data.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">respondWithSuccess</a></span>(byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-byte:A-"><code>respondWithSuccess(byte[])</code></a> but allows you to provide a listener specific to this response.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-com.idevicesinc.sweetblue.utils.FutureData-">respondWithSuccess</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-byte:A-"><code>respondWithSuccess(byte[])</code></a> - see <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><code>FutureData</code></a> for why/when you would want to use this.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">respondWithSuccess</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>respondWithSuccess(byte[], BleServer.OutgoingListener)</code></a> - see <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><code>FutureData</code></a> for why/when you would want to use this.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="doNotRespond--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>doNotRespond</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a> doNotRespond()</pre> +<div class="block">Use this as the return value of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>BleServer.IncomingListener.onEvent(IncomingEvent)</code></a> + when <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#responseNeeded--"><code>BleServer.ExchangeListener.ExchangeEvent.responseNeeded()</code></a> is <code>true</code>.</div> +</li> +</ul> +<a name="doNotRespond-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>doNotRespond</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a> doNotRespond(<a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#doNotRespond--"><code>doNotRespond()</code></a> but allows you to provide a listener specific to this (non-)response. + Your <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.OutgoingListener.OutgoingEvent-"><code>BleServer.OutgoingListener.onEvent(BleServer.OutgoingListener.OutgoingEvent)</code></a> will simply be called + with <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#NO_RESPONSE_ATTEMPTED"><code>BleServer.OutgoingListener.Status.NO_RESPONSE_ATTEMPTED</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.setListener_Outgoing(BleServer.OutgoingListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="respondWithSuccess-com.idevicesinc.sweetblue.utils.FutureData-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>respondWithSuccess</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a> respondWithSuccess(<a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-byte:A-"><code>respondWithSuccess(byte[])</code></a> - see <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><code>FutureData</code></a> for why/when you would want to use this.</div> +</li> +</ul> +<a name="respondWithSuccess-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>respondWithSuccess</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a> respondWithSuccess(<a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>respondWithSuccess(byte[], BleServer.OutgoingListener)</code></a> - see <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><code>FutureData</code></a> for why/when you would want to use this.</div> +</li> +</ul> +<a name="respondWithSuccess-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>respondWithSuccess</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a> respondWithSuccess(byte[] data)</pre> +<div class="block">Use this as the return value of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>BleServer.IncomingListener.onEvent(IncomingEvent)</code></a> when + <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>BleServer.ExchangeListener.ExchangeEvent.type()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isRead--"><code>BleServer.ExchangeListener.Type.isRead()</code></a> is <code>true</code> and you can respect + the read request and respond with data.</div> +</li> +</ul> +<a name="respondWithSuccess-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>respondWithSuccess</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a> respondWithSuccess(byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-byte:A-"><code>respondWithSuccess(byte[])</code></a> but allows you to provide a listener specific to this response.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.setListener_Outgoing(OutgoingListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="respondWithSuccess--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>respondWithSuccess</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a> respondWithSuccess()</pre> +<div class="block">Use this as the return value of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>BleServer.IncomingListener.onEvent(IncomingEvent)</code></a> + when <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#responseNeeded--"><code>BleServer.ExchangeListener.ExchangeEvent.responseNeeded()</code></a> is <code>true</code> and <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>BleServer.ExchangeListener.ExchangeEvent.type()</code></a> + <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isWrite--"><code>BleServer.ExchangeListener.Type.isWrite()</code></a> is <code>true</code> and you consider the write successful.</div> +</li> +</ul> +<a name="respondWithSuccess-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>respondWithSuccess</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a> respondWithSuccess(<a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess--"><code>respondWithSuccess()</code></a> but allows you to provide a listener specific to this response.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.setListener_Outgoing(OutgoingListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="respondWithError-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>respondWithError</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a> respondWithError(int gattStatus)</pre> +<div class="block">Send an error/status code back to the client. See <code>static final int</code> + members of <a href="../../../com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue"><code>BleStatuses</code></a> starting with GATT_ for possible values.</div> +</li> +</ul> +<a name="respondWithError-int-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>respondWithError</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a> respondWithError(int gattStatus, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithError-int-"><code>respondWithError(int)</code></a> but allows you to provide a listener specific to this response.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.setListener_Outgoing(OutgoingListener)</code></a></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" target="_top">Frames</a></li> +<li><a href="BleServer.IncomingListener.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.IncomingListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.IncomingListener.html new file mode 100644 index 0000000000000000000000000000000000000000..ce3c7b3387020426bbdc92e17940939f708ec737 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.IncomingListener.html @@ -0,0 +1,267 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.IncomingListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.IncomingListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.IncomingListener.html" target="_top">Frames</a></li> +<li><a href="BleServer.IncomingListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleServer.IncomingListener" class="title">Interface BleServer.IncomingListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Superinterfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ExchangeListener</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleServer.IncomingListener</span> +extends <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ExchangeListener</a></pre> +<div class="block">Provide an instance through <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Incoming-com.idevicesinc.sweetblue.BleServer.IncomingListener-"><code>BleServer.setListener_Incoming(IncomingListener)</code></a>. + The return value of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>onEvent(IncomingEvent)</code></a> is used to decide if/how to respond to a given <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener.IncomingEvent</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.IncomingEvent</a></span></code> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>onEvent(BleServer.IncomingListener.IncomingEvent)</code></a>} that provides details about the client and what it wants from us, the server.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></span></code> +<div class="block">Struct returned from <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>onEvent(IncomingEvent)</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleServer.ExchangeListener"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ExchangeListener</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Target</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a></code></li> +</ul> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.IncomingEvent</a> e)</code> +<div class="block">Called when a read or write from the client is requested.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a> onEvent(<a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.IncomingEvent</a> e)</pre> +<div class="block">Called when a read or write from the client is requested.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.IncomingListener.html" target="_top">Frames</a></li> +<li><a href="BleServer.IncomingListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..44c520bd0ba1194b52a728a4dba1bf267eeea9b3 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html @@ -0,0 +1,415 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.OutgoingListener.OutgoingEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.OutgoingListener.OutgoingEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" target="_top">Frames</a></li> +<li><a href="BleServer.OutgoingListener.OutgoingEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.BleServer.ExchangeListener.ExchangeEvent">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleServer.OutgoingListener.OutgoingEvent" class="title">Class BleServer.OutgoingListener.OutgoingEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">com.idevicesinc.sweetblue.BleServer.ExchangeListener.ExchangeEvent</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleServer.OutgoingListener.OutgoingEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleServer.OutgoingListener.OutgoingEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.OutgoingListener.OutgoingEvent-"><code>BleServer.OutgoingListener.onEvent(BleServer.OutgoingListener.OutgoingEvent)</code></a> + that provides details of what was sent to the client and if it succeeded.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.com.idevicesinc.sweetblue.BleServer.ExchangeListener.ExchangeEvent"> +<!-- --> +</a> +<h3>Fields inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#NON_APPLICABLE_REQUEST_ID">NON_APPLICABLE_REQUEST_ID</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#NON_APPLICABLE_UUID">NON_APPLICABLE_UUID</a></code></li> +</ul> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#data_sent--">data_sent</a></span>()</code> +<div class="block">The data that was attempted to be sent back to the client if <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>BleServer.ExchangeListener.ExchangeEvent.type()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isRead--"><code>BleServer.ExchangeListener.Type.isRead()</code></a> is <code>true</code>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#gattStatus_received--">gattStatus_received</a></span>()</code> +<div class="block">The gattStatus received from an attempted communication with the client.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#gattStatus_sent--">gattStatus_sent</a></span>()</code> +<div class="block">The gattStatus sent to the client, provided to static methods of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener.Please</code></a> + if <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>BleServer.ExchangeListener.ExchangeEvent.type()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#READ"><code>BleServer.ExchangeListener.Type.READ</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#WRITE"><code>BleServer.ExchangeListener.Type.WRITE</code></a> - otherwise this will equal <a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_STATUS_NOT_APPLICABLE"><code>BleStatuses.GATT_STATUS_NOT_APPLICABLE</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#isNull--">isNull</a></span>()</code> +<div class="block">Will return true in certain early-out cases when there is no issue and the response can continue.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#solicited--">solicited</a></span>()</code> +<div class="block">This returns <code>true</code> if this event was the result of an explicit call through SweetBlue, e.g.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#status--">status</a></span>()</code> +<div class="block">Returns the result of the response, or <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#NO_RESPONSE_ATTEMPTED"><code>BleServer.OutgoingListener.Status.NO_RESPONSE_ATTEMPTED</code></a> if + for example <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#doNotRespond-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.IncomingListener.Please.doNotRespond(BleServer.OutgoingListener)</code></a> was used.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#wasSuccess--">wasSuccess</a></span>()</code> +<div class="block">Checks if <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#status--"><code>status()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#SUCCESS"><code>BleServer.OutgoingListener.Status.SUCCESS</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.BleServer.ExchangeListener.ExchangeEvent"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#charUuid--">charUuid</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#data_received--">data_received</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#descUuid--">descUuid</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#isFor-java.lang.String-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#isFor-java.util.UUID-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#macAddress--">macAddress</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#nativeDevice--">nativeDevice</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#offset--">offset</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#requestId--">requestId</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#responseNeeded--">responseNeeded</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#server--">server</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#serviceUuid--">serviceUuid</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#target--">target</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--">type</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="status--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>status</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a> status()</pre> +<div class="block">Returns the result of the response, or <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#NO_RESPONSE_ATTEMPTED"><code>BleServer.OutgoingListener.Status.NO_RESPONSE_ATTEMPTED</code></a> if + for example <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#doNotRespond-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.IncomingListener.Please.doNotRespond(BleServer.OutgoingListener)</code></a> was used.</div> +</li> +</ul> +<a name="data_sent--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>data_sent</h4> +<pre>public byte[] data_sent()</pre> +<div class="block">The data that was attempted to be sent back to the client if <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>BleServer.ExchangeListener.ExchangeEvent.type()</code></a> <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isRead--"><code>BleServer.ExchangeListener.Type.isRead()</code></a> is <code>true</code>.</div> +</li> +</ul> +<a name="gattStatus_sent--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>gattStatus_sent</h4> +<pre>public int gattStatus_sent()</pre> +<div class="block">The gattStatus sent to the client, provided to static methods of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener.Please</code></a> + if <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>BleServer.ExchangeListener.ExchangeEvent.type()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#READ"><code>BleServer.ExchangeListener.Type.READ</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#WRITE"><code>BleServer.ExchangeListener.Type.WRITE</code></a> - otherwise this will equal <a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_STATUS_NOT_APPLICABLE"><code>BleStatuses.GATT_STATUS_NOT_APPLICABLE</code></a>.</div> +</li> +</ul> +<a name="gattStatus_received--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>gattStatus_received</h4> +<pre>public int gattStatus_received()</pre> +<div class="block">The gattStatus received from an attempted communication with the client. For now this is only relevant if <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>BleServer.ExchangeListener.ExchangeEvent.type()</code></a> + <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isNotificationOrIndication--"><code>BleServer.ExchangeListener.Type.isNotificationOrIndication()</code></a> is <code>true</code> - otherwise this will equal <a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_STATUS_NOT_APPLICABLE"><code>BleStatuses.GATT_STATUS_NOT_APPLICABLE</code></a>.</div> +</li> +</ul> +<a name="solicited--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>solicited</h4> +<pre>public boolean solicited()</pre> +<div class="block">This returns <code>true</code> if this event was the result of an explicit call through SweetBlue, e.g. through + <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>. It will return <code>false</code> otherwise, + which can happen if for example you use <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getNative--"><code>BleServer.getNative()</code></a> to bypass SweetBlue for whatever reason. + Another theoretical case is if you make an explicit call through SweetBlue, then you get <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#TIMED_OUT"><code>BleServer.OutgoingListener.Status.TIMED_OUT</code></a>, + but then the native stack eventually *does* come back with something - this has never been observed, but it is possible.</div> +</li> +</ul> +<a name="wasSuccess--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>wasSuccess</h4> +<pre>public boolean wasSuccess()</pre> +<div class="block">Checks if <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#status--"><code>status()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#SUCCESS"><code>BleServer.OutgoingListener.Status.SUCCESS</code></a>.</div> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block">Will return true in certain early-out cases when there is no issue and the response can continue. + See <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendNotification(String, UUID, UUID, byte[], OutgoingListener)</code></a> for more information.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" target="_top">Frames</a></li> +<li><a href="BleServer.OutgoingListener.OutgoingEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.BleServer.ExchangeListener.ExchangeEvent">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html new file mode 100644 index 0000000000000000000000000000000000000000..12f0c645c4c44de94766aa1a74f0dc0c06542377 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html @@ -0,0 +1,562 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.OutgoingListener.Status (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.OutgoingListener.Status (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9,"i2":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" target="_top">Frames</a></li> +<li><a href="BleServer.OutgoingListener.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleServer.OutgoingListener.Status" class="title">Enum BleServer.OutgoingListener.Status</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleServer.OutgoingListener.Status</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleServer.OutgoingListener.Status</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">Enumeration of the various success and error statuses possible for an outgoing message.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#CANCELLED_FROM_BLE_TURNING_OFF">CANCELLED_FROM_BLE_TURNING_OFF</a></span></code> +<div class="block">The operation was cancelled because <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> went <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#TURNING_OFF"><code>BleManagerState.TURNING_OFF</code></a> and/or + <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#CANCELLED_FROM_DISCONNECT">CANCELLED_FROM_DISCONNECT</a></span></code> +<div class="block">The operation was cancelled by the client/server becoming <a href="../../../com/idevicesinc/sweetblue/BleServerState.html#DISCONNECTED"><code>BleServerState.DISCONNECTED</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#FAILED_TO_SEND_OUT">FAILED_TO_SEND_OUT</a></span></code> +<div class="block">The underlying call to <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#sendResponse-android.bluetooth.BluetoothDevice-int-int-int-byte:A-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.sendResponse(BluetoothDevice, int, int, int, byte[])</code></a> + or <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#notifyCharacteristicChanged-android.bluetooth.BluetoothDevice-android.bluetooth.BluetoothGattCharacteristic-boolean-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.notifyCharacteristicChanged(BluetoothDevice, BluetoothGattCharacteristic, boolean)</code></a> + failed for reasons unknown.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#FAILED_TO_SET_VALUE_ON_TARGET">FAILED_TO_SET_VALUE_ON_TARGET</a></span></code> +<div class="block">For now only relevant if <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>BleServer.ExchangeListener.ExchangeEvent.type()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#NOTIFICATION"><code>BleServer.ExchangeListener.Type.NOTIFICATION</code></a> - + <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#setValue-byte:A-" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.setValue(byte[])</code></a> (or one of its overloads) returned <code>false</code>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#NO_MATCHING_TARGET">NO_MATCHING_TARGET</a></span></code> +<div class="block">Couldn't find a matching <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#target--"><code>BleServer.ExchangeListener.ExchangeEvent.target()</code></a> for <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#charUuid--"><code>BleServer.ExchangeListener.ExchangeEvent.charUuid()</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#NO_REQUEST_LISTENER_SET">NO_REQUEST_LISTENER_SET</a></span></code> +<div class="block">The server does not have a <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener</code></a> set so no valid response + could be sent.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#NO_RESPONSE_ATTEMPTED">NO_RESPONSE_ATTEMPTED</a></span></code> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#doNotRespond-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.IncomingListener.Please.doNotRespond(BleServer.OutgoingListener)</code></a> (or overloads) + were called or <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#responseNeeded--"><code>BleServer.ExchangeListener.ExchangeEvent.responseNeeded()</code></a> was <code>false</code>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#NOT_CONNECTED">NOT_CONNECTED</a></span></code> +<div class="block">Could not communicate with the client device because the server is not currently <a href="../../../com/idevicesinc/sweetblue/BleServerState.html#CONNECTED"><code>BleServerState.CONNECTED</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#NULL">NULL</a></span></code> +<div class="block">Fulfills the soft contract of <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#NULL_SERVER">NULL_SERVER</a></span></code> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-byte:A-"><code>BleServer.sendIndication(String, UUID, byte[])</code></a> (or various overloads) was called + on <a href="../../../com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#REMOTE_GATT_FAILURE">REMOTE_GATT_FAILURE</a></span></code> +<div class="block">The operation failed in a "normal" fashion, at least relative to all the other strange ways an operation can fail.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#SUCCESS">SUCCESS</a></span></code> +<div class="block">The outgoing message to the client was successfully sent.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#TIMED_OUT">TIMED_OUT</a></span></code> +<div class="block">Couldn't send out the data because the operation took longer than the time dictated by <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter"><code>BleNodeConfig.taskTimeoutRequestFilter</code></a> + so we had to cut her loose.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns true if <code>this==</code> <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#NULL"><code>NULL</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a> NULL</pre> +<div class="block">Fulfills the soft contract of <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a>.</div> +</li> +</ul> +<a name="SUCCESS"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SUCCESS</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a> SUCCESS</pre> +<div class="block">The outgoing message to the client was successfully sent.</div> +</li> +</ul> +<a name="NULL_SERVER"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL_SERVER</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a> NULL_SERVER</pre> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a> or + <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-byte:A-"><code>BleServer.sendIndication(String, UUID, byte[])</code></a> (or various overloads) was called + on <a href="../../../com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a>.</div> +</li> +</ul> +<a name="NO_RESPONSE_ATTEMPTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NO_RESPONSE_ATTEMPTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a> NO_RESPONSE_ATTEMPTED</pre> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#doNotRespond-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.IncomingListener.Please.doNotRespond(BleServer.OutgoingListener)</code></a> (or overloads) + were called or <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#responseNeeded--"><code>BleServer.ExchangeListener.ExchangeEvent.responseNeeded()</code></a> was <code>false</code>.</div> +</li> +</ul> +<a name="NO_REQUEST_LISTENER_SET"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NO_REQUEST_LISTENER_SET</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a> NO_REQUEST_LISTENER_SET</pre> +<div class="block">The server does not have a <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener</code></a> set so no valid response + could be sent. Please set a listener through <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Incoming-com.idevicesinc.sweetblue.BleServer.IncomingListener-"><code>BleServer.setListener_Incoming(IncomingListener)</code></a>.</div> +</li> +</ul> +<a name="NO_MATCHING_TARGET"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NO_MATCHING_TARGET</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a> NO_MATCHING_TARGET</pre> +<div class="block">Couldn't find a matching <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#target--"><code>BleServer.ExchangeListener.ExchangeEvent.target()</code></a> for <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#charUuid--"><code>BleServer.ExchangeListener.ExchangeEvent.charUuid()</code></a>.</div> +</li> +</ul> +<a name="FAILED_TO_SET_VALUE_ON_TARGET"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>FAILED_TO_SET_VALUE_ON_TARGET</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a> FAILED_TO_SET_VALUE_ON_TARGET</pre> +<div class="block">For now only relevant if <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>BleServer.ExchangeListener.ExchangeEvent.type()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#NOTIFICATION"><code>BleServer.ExchangeListener.Type.NOTIFICATION</code></a> - + <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true#setValue-byte:A-" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic.setValue(byte[])</code></a> (or one of its overloads) returned <code>false</code>.</div> +</li> +</ul> +<a name="FAILED_TO_SEND_OUT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>FAILED_TO_SEND_OUT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a> FAILED_TO_SEND_OUT</pre> +<div class="block">The underlying call to <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#sendResponse-android.bluetooth.BluetoothDevice-int-int-int-byte:A-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.sendResponse(BluetoothDevice, int, int, int, byte[])</code></a> + or <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#notifyCharacteristicChanged-android.bluetooth.BluetoothDevice-android.bluetooth.BluetoothGattCharacteristic-boolean-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.notifyCharacteristicChanged(BluetoothDevice, BluetoothGattCharacteristic, boolean)</code></a> + failed for reasons unknown.</div> +</li> +</ul> +<a name="REMOTE_GATT_FAILURE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>REMOTE_GATT_FAILURE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a> REMOTE_GATT_FAILURE</pre> +<div class="block">The operation failed in a "normal" fashion, at least relative to all the other strange ways an operation can fail. This means for + example that <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#notifyCharacteristicChanged-android.bluetooth.BluetoothDevice-android.bluetooth.BluetoothGattCharacteristic-boolean-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.notifyCharacteristicChanged(BluetoothDevice, BluetoothGattCharacteristic, boolean)</code></a> + returned a status code through <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServerCallback.html?is-external=true#onNotificationSent-android.bluetooth.BluetoothDevice-int-" title="class or interface in android.bluetooth"><code>BluetoothGattServerCallback.onNotificationSent(BluetoothDevice, int)</code></a> that was not zero. + This could mean the device went out of range, was turned off, signal was disrupted, whatever. Often this means that the + client is about to become <a href="../../../com/idevicesinc/sweetblue/BleServerState.html#DISCONNECTED"><code>BleServerState.DISCONNECTED</code></a>.</div> +</li> +</ul> +<a name="CANCELLED_FROM_DISCONNECT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CANCELLED_FROM_DISCONNECT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a> CANCELLED_FROM_DISCONNECT</pre> +<div class="block">The operation was cancelled by the client/server becoming <a href="../../../com/idevicesinc/sweetblue/BleServerState.html#DISCONNECTED"><code>BleServerState.DISCONNECTED</code></a>.</div> +</li> +</ul> +<a name="CANCELLED_FROM_BLE_TURNING_OFF"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CANCELLED_FROM_BLE_TURNING_OFF</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a> CANCELLED_FROM_BLE_TURNING_OFF</pre> +<div class="block">The operation was cancelled because <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> went <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#TURNING_OFF"><code>BleManagerState.TURNING_OFF</code></a> and/or + <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>. Note that if the user turns off BLE from their OS settings (airplane mode, etc.) then + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#status--"><code>BleServer.OutgoingListener.OutgoingEvent.status()</code></a> could potentially be <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#CANCELLED_FROM_DISCONNECT"><code>CANCELLED_FROM_DISCONNECT</code></a> because SweetBlue might get + the disconnect callback before the turning off callback. Basic testing has revealed that this is *not* the case, but you never know. + <br><br> + Either way, the client was or will be disconnected.</div> +</li> +</ul> +<a name="TIMED_OUT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>TIMED_OUT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a> TIMED_OUT</pre> +<div class="block">Couldn't send out the data because the operation took longer than the time dictated by <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter"><code>BleNodeConfig.taskTimeoutRequestFilter</code></a> + so we had to cut her loose.</div> +</li> +</ul> +<a name="NOT_CONNECTED"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>NOT_CONNECTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a> NOT_CONNECTED</pre> +<div class="block">Could not communicate with the client device because the server is not currently <a href="../../../com/idevicesinc/sweetblue/BleServerState.html#CONNECTED"><code>BleServerState.CONNECTED</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleServer.OutgoingListener.Status c : BleServer.OutgoingListener.Status.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block">Returns true if <code>this==</code> <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#NULL"><code>NULL</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" target="_top">Frames</a></li> +<li><a href="BleServer.OutgoingListener.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.OutgoingListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.OutgoingListener.html new file mode 100644 index 0000000000000000000000000000000000000000..d5b8865678adbb1c59bcacbb5f9a1836f74e88d4 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.OutgoingListener.html @@ -0,0 +1,271 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.OutgoingListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.OutgoingListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" target="_top">Frames</a></li> +<li><a href="BleServer.OutgoingListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleServer.OutgoingListener" class="title">Interface BleServer.OutgoingListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Superinterfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ExchangeListener</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleServer.OutgoingListener</span> +extends <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ExchangeListener</a></pre> +<div class="block">Provide an instance to various static methods of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener.Please</code></a> such as + <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.IncomingListener.Please.respondWithSuccess(BleServer.OutgoingListener)</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.setListener_Outgoing(OutgoingListener)</code></a>, + or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleManager.setListener_Outgoing(BleServer.OutgoingListener)</code></a>. Also used to callback the success or failure of + notifications through <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>, or various overloads thereof.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></span></code> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.OutgoingListener.OutgoingEvent-"><code>onEvent(BleServer.OutgoingListener.OutgoingEvent)</code></a> + that provides details of what was sent to the client and if it succeeded.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a></span></code> +<div class="block">Enumeration of the various success and error statuses possible for an outgoing message.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleServer.ExchangeListener"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ExchangeListener</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Target</a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a></code></li> +</ul> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.OutgoingListener.OutgoingEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a> e)</code> +<div class="block">Called when a notification or a response to a request is fulfilled or failed.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleServer.OutgoingListener.OutgoingEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>void onEvent(<a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a> e)</pre> +<div class="block">Called when a notification or a response to a request is fulfilled or failed.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" target="_top">Frames</a></li> +<li><a href="BleServer.OutgoingListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..52d3c9a5d05a8fa72632176371076de031f1f5d2 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html @@ -0,0 +1,373 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.ServiceAddListener.ServiceAddEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.ServiceAddListener.ServiceAddEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" target="_top">Frames</a></li> +<li><a href="BleServer.ServiceAddListener.ServiceAddEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleServer.ServiceAddListener.ServiceAddEvent" class="title">Class BleServer.ServiceAddListener.ServiceAddEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleServer.ServiceAddListener.ServiceAddEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ServiceAddListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleServer.ServiceAddListener.ServiceAddEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></pre> +<div class="block">Event struct passed to <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ServiceAddListener.ServiceAddEvent-"><code>BleServer.ServiceAddListener.onEvent(ServiceAddEvent)</code></a> to give you information about the success + of a service addition or the reason(s) for its failure.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#gattStatus--">gattStatus</a></span>()</code> +<div class="block">Should only be relevant if <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#status--"><code>status()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#FAILED_EVENTUALLY"><code>BleServer.ServiceAddListener.Status.FAILED_EVENTUALLY</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#server--">server</a></span>()</code> +<div class="block">The server to which the service is being added.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattService</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#service--">service</a></span>()</code> +<div class="block">The service being added to <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#server--"><code>server()</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#serviceUuid--">serviceUuid</a></span>()</code> +<div class="block">Convenience to return the <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#service--"><code>service()</code></a>.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#solicited--">solicited</a></span>()</code> +<div class="block">This returns <code>true</code> if this event was the result of an explicit call through SweetBlue, e.g.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#status--">status</a></span>()</code> +<div class="block">Indicates the success or reason for failure for adding the service.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#wasSuccess--">wasSuccess</a></span>()</code> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#wasSuccess--"><code>BleServer.ServiceAddListener.Status.wasSuccess()</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="server--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>server</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a> server()</pre> +<div class="block">The server to which the service is being added.</div> +</li> +</ul> +<a name="service--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>service</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattService</a> service()</pre> +<div class="block">The service being added to <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#server--"><code>server()</code></a>.</div> +</li> +</ul> +<a name="serviceUuid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>serviceUuid</h4> +<pre>public <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid()</pre> +<div class="block">Convenience to return the <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#service--"><code>service()</code></a>.</div> +</li> +</ul> +<a name="gattStatus--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>gattStatus</h4> +<pre>public int gattStatus()</pre> +<div class="block">Should only be relevant if <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#status--"><code>status()</code></a> is <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#FAILED_EVENTUALLY"><code>BleServer.ServiceAddListener.Status.FAILED_EVENTUALLY</code></a>.</div> +</li> +</ul> +<a name="status--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>status</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a> status()</pre> +<div class="block">Indicates the success or reason for failure for adding the service.</div> +</li> +</ul> +<a name="solicited--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>solicited</h4> +<pre>public boolean solicited()</pre> +<div class="block">This returns <code>true</code> if this event was the result of an explicit call through SweetBlue, e.g. through + <a href="../../../com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>BleServer.addService(BleService, ServiceAddListener)</code></a>. It will return <code>false</code> otherwise, + which can happen if for example you use <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getNative--"><code>BleServer.getNative()</code></a> to bypass SweetBlue for whatever reason. + Another theoretical case is if you make an explicit call through SweetBlue, then you get <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#TIMED_OUT"><code>BleServer.ServiceAddListener.Status.TIMED_OUT</code></a>, + but then the native stack eventually *does* come back with something - this has never been observed, but it is possible.</div> +</li> +</ul> +<a name="wasSuccess--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>wasSuccess</h4> +<pre>public boolean wasSuccess()</pre> +<div class="block">Convenience forwarding of <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#wasSuccess--"><code>BleServer.ServiceAddListener.Status.wasSuccess()</code></a>.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" target="_top">Frames</a></li> +<li><a href="BleServer.ServiceAddListener.ServiceAddEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html new file mode 100644 index 0000000000000000000000000000000000000000..02237d492a21f9f0062552571d80100a6025407b --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html @@ -0,0 +1,549 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.ServiceAddListener.Status (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.ServiceAddListener.Status (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9,"i2":9,"i3":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" target="_top">Frames</a></li> +<li><a href="BleServer.ServiceAddListener.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleServer.ServiceAddListener.Status" class="title">Enum BleServer.ServiceAddListener.Status</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleServer.ServiceAddListener.Status</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ServiceAddListener</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BleServer.ServiceAddListener.Status</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">Enumeration of the different ways that service addition can fail (and one way for it to succeed), + provided through <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#status--"><code>BleServer.OutgoingListener.OutgoingEvent.status()</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#BLE_NOT_ON">BLE_NOT_ON</a></span></code> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> is not <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a> so we can't add a service.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#CANCELLED_FROM_BLE_TURNING_OFF">CANCELLED_FROM_BLE_TURNING_OFF</a></span></code> +<div class="block">The operation was cancelled because <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> went <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#TURNING_OFF"><code>BleManagerState.TURNING_OFF</code></a> and/or + <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#CANCELLED_FROM_DISCONNECT">CANCELLED_FROM_DISCONNECT</a></span></code> +<div class="block">The operation was cancelled because <a href="../../../com/idevicesinc/sweetblue/BleServer.html#disconnect--"><code>BleServer.disconnect()</code></a> was called before the operation completed.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#CANCELLED_FROM_REMOVAL">CANCELLED_FROM_REMOVAL</a></span></code> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#removeService-java.util.UUID-"><code>BleServer.removeService(UUID)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleServer.html#removeAllServices--"><code>BleServer.removeAllServices()</code></a> was called before the service could be fully added.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#DUPLICATE_SERVICE">DUPLICATE_SERVICE</a></span></code> +<div class="block">Tried to add the same service reference twice.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#FAILED_EVENTUALLY">FAILED_EVENTUALLY</a></span></code> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServerCallback.html?is-external=true#onServiceAdded-int-android.bluetooth.BluetoothGattService-" title="class or interface in android.bluetooth"><code>BluetoothGattServerCallback.onServiceAdded(int, BluetoothGattService)</code></a> reported a bad gatt status + for the service addition, which is provided through <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#gattStatus_received--"><code>BleServer.OutgoingListener.OutgoingEvent.gattStatus_received()</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#FAILED_IMMEDIATELY">FAILED_IMMEDIATELY</a></span></code> +<div class="block">The call to <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#addService-android.bluetooth.BluetoothGattService-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.addService(BluetoothGattService)</code></a> returned <code>false</code>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#NULL">NULL</a></span></code> +<div class="block">Fulfills the soft contract of <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#NULL_SERVER">NULL_SERVER</a></span></code> +<div class="block">Tried to add a service to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#SERVER_OPENING_FAILED">SERVER_OPENING_FAILED</a></span></code> +<div class="block">Adding this service required that a native <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattServer</code></a> to be created, + but it could not be created for some reason.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#SUCCESS">SUCCESS</a></span></code> +<div class="block">Service was added successfully.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#TIMED_OUT">TIMED_OUT</a></span></code> +<div class="block">Couldn't add the service because the operation took longer than the time dictated by <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter"><code>BleNodeConfig.taskTimeoutRequestFilter</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#wasSuccess--">wasSuccess</a></span>()</code> +<div class="block">Returns true if <code>this</code> equals <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#SUCCESS"><code>SUCCESS</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a> NULL</pre> +<div class="block">Fulfills the soft contract of <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a>.</div> +</li> +</ul> +<a name="SUCCESS"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SUCCESS</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a> SUCCESS</pre> +<div class="block">Service was added successfully.</div> +</li> +</ul> +<a name="NULL_SERVER"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL_SERVER</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a> NULL_SERVER</pre> +<div class="block">Tried to add a service to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a>.</div> +</li> +</ul> +<a name="DUPLICATE_SERVICE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DUPLICATE_SERVICE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a> DUPLICATE_SERVICE</pre> +<div class="block">Tried to add the same service reference twice.</div> +</li> +</ul> +<a name="SERVER_OPENING_FAILED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SERVER_OPENING_FAILED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a> SERVER_OPENING_FAILED</pre> +<div class="block">Adding this service required that a native <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattServer</code></a> to be created, + but it could not be created for some reason.</div> +</li> +</ul> +<a name="FAILED_IMMEDIATELY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>FAILED_IMMEDIATELY</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a> FAILED_IMMEDIATELY</pre> +<div class="block">The call to <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#addService-android.bluetooth.BluetoothGattService-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.addService(BluetoothGattService)</code></a> returned <code>false</code>.</div> +</li> +</ul> +<a name="FAILED_EVENTUALLY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>FAILED_EVENTUALLY</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a> FAILED_EVENTUALLY</pre> +<div class="block"><a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServerCallback.html?is-external=true#onServiceAdded-int-android.bluetooth.BluetoothGattService-" title="class or interface in android.bluetooth"><code>BluetoothGattServerCallback.onServiceAdded(int, BluetoothGattService)</code></a> reported a bad gatt status + for the service addition, which is provided through <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#gattStatus_received--"><code>BleServer.OutgoingListener.OutgoingEvent.gattStatus_received()</code></a>.</div> +</li> +</ul> +<a name="TIMED_OUT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>TIMED_OUT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a> TIMED_OUT</pre> +<div class="block">Couldn't add the service because the operation took longer than the time dictated by <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter"><code>BleNodeConfig.taskTimeoutRequestFilter</code></a>.</div> +</li> +</ul> +<a name="CANCELLED_FROM_REMOVAL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CANCELLED_FROM_REMOVAL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a> CANCELLED_FROM_REMOVAL</pre> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#removeService-java.util.UUID-"><code>BleServer.removeService(UUID)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleServer.html#removeAllServices--"><code>BleServer.removeAllServices()</code></a> was called before the service could be fully added.</div> +</li> +</ul> +<a name="CANCELLED_FROM_DISCONNECT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CANCELLED_FROM_DISCONNECT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a> CANCELLED_FROM_DISCONNECT</pre> +<div class="block">The operation was cancelled because <a href="../../../com/idevicesinc/sweetblue/BleServer.html#disconnect--"><code>BleServer.disconnect()</code></a> was called before the operation completed.</div> +</li> +</ul> +<a name="CANCELLED_FROM_BLE_TURNING_OFF"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CANCELLED_FROM_BLE_TURNING_OFF</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a> CANCELLED_FROM_BLE_TURNING_OFF</pre> +<div class="block">The operation was cancelled because <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> went <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#TURNING_OFF"><code>BleManagerState.TURNING_OFF</code></a> and/or + <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>. Note that if the user turns off BLE from their OS settings (airplane mode, etc.) then + <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#status--"><code>BleServer.ServiceAddListener.ServiceAddEvent.status()</code></a> could potentially be <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#CANCELLED_FROM_DISCONNECT"><code>CANCELLED_FROM_DISCONNECT</code></a> because SweetBlue might get + the disconnect callback before the turning off callback. Basic testing has revealed that this is *not* the case, but you never know. + <br><br> + Either way, the device was or will be disconnected.</div> +</li> +</ul> +<a name="BLE_NOT_ON"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BLE_NOT_ON</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a> BLE_NOT_ON</pre> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> is not <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a> so we can't add a service.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleServer.ServiceAddListener.Status c : BleServer.ServiceAddListener.Status.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="wasSuccess--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>wasSuccess</h4> +<pre>public boolean wasSuccess()</pre> +<div class="block">Returns true if <code>this</code> equals <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#SUCCESS"><code>SUCCESS</code></a>.</div> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">UsesCustomNull</a></code></span></div> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" target="_top">Frames</a></li> +<li><a href="BleServer.ServiceAddListener.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html new file mode 100644 index 0000000000000000000000000000000000000000..5b1c9941148d27723e1d77f1b6c0989c5576733d --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html @@ -0,0 +1,260 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.ServiceAddListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.ServiceAddListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" target="_top">Frames</a></li> +<li><a href="BleServer.ServiceAddListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleServer.ServiceAddListener" class="title">Interface BleServer.ServiceAddListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleServer.ServiceAddListener</span></pre> +<div class="block">Provide an implementation of this callback to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_ServiceAdd-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>BleServer.setListener_ServiceAdd(ServiceAddListener)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_ServiceAdd-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>BleServer.setListener_ServiceAdd(ServiceAddListener)</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.ServiceAddEvent</a></span></code> +<div class="block">Event struct passed to <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ServiceAddListener.ServiceAddEvent-"><code>onEvent(ServiceAddEvent)</code></a> to give you information about the success + of a service addition or the reason(s) for its failure.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a></span></code> +<div class="block">Enumeration of the different ways that service addition can fail (and one way for it to succeed), + provided through <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#status--"><code>BleServer.OutgoingListener.OutgoingEvent.status()</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ServiceAddListener.ServiceAddEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.ServiceAddEvent</a> e)</code> +<div class="block">Called when a service has finished being added or failed to be added.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleServer.ServiceAddListener.ServiceAddEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>void onEvent(<a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.ServiceAddEvent</a> e)</pre> +<div class="block">Called when a service has finished being added or failed to be added.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" target="_top">Frames</a></li> +<li><a href="BleServer.ServiceAddListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..92f847fb18a865b784ca947f03fc05c2e333e052 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html @@ -0,0 +1,319 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.StateListener.StateEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.StateListener.StateEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" target="_top">Frames</a></li> +<li><a href="BleServer.StateListener.StateEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleServer.StateListener.StateEvent" class="title">Class BleServer.StateListener.StateEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.State.ChangeEvent</a><<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleServer.StateListener.StateEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.StateListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleServer.StateListener.StateEvent</span> +extends <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a><<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>></pre> +<div class="block">Subclass that adds the <a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#server--"><code>server()</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#macAddress--"><code>macAddress()</code></a>, and <a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#gattStatus--"><code>gattStatus()</code></a> fields.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#gattStatus--">gattStatus</a></span>()</code> +<div class="block">The change in gattStatus that may have precipitated the state change, or <a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_STATUS_NOT_APPLICABLE"><code>BleStatuses.GATT_STATUS_NOT_APPLICABLE</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#macAddress--">macAddress</a></span>()</code> +<div class="block">Returns the mac address of the client that's undergoing the state change with this <a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#server--"><code>server()</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#server--">server</a></span>()</code> +<div class="block">The server undergoing the state change.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.State.ChangeEvent"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnter-T_State-">didEnter</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAll-T_State...-">didEnterAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAny-T_State...-">didEnterAny</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExit-T_State-">didExit</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAll-T_State...-">didExitAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAny-T_State...-">didExitAny</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#enterMask--">enterMask</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#exitMask--">exitMask</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#getIntent-T_State-">getIntent</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#intentMask--">intentMask</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isFor-T_State-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isForAll-T_State...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isForAny-T_State...-">isForAny</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#newStateBits--">newStateBits</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#oldStateBits--">oldStateBits</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="server--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>server</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a> server()</pre> +<div class="block">The server undergoing the state change.</div> +</li> +</ul> +<a name="macAddress--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>macAddress</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress()</pre> +<div class="block">Returns the mac address of the client that's undergoing the state change with this <a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#server--"><code>server()</code></a>.</div> +</li> +</ul> +<a name="gattStatus--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>gattStatus</h4> +<pre>public int gattStatus()</pre> +<div class="block">The change in gattStatus that may have precipitated the state change, or <a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_STATUS_NOT_APPLICABLE"><code>BleStatuses.GATT_STATUS_NOT_APPLICABLE</code></a>. + For example if <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnter-T_State-"><code>State.ChangeEvent.didEnter(State)</code></a> with <a href="../../../com/idevicesinc/sweetblue/BleServerState.html#DISCONNECTED"><code>BleServerState.DISCONNECTED</code></a> is <code>true</code> and + <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExit-T_State-"><code>State.ChangeEvent.didExit(State)</code></a> with <a href="../../../com/idevicesinc/sweetblue/BleServerState.html#CONNECTING"><code>BleServerState.CONNECTING</code></a> is also <code>true</code> then <a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#gattStatus--"><code>gattStatus()</code></a> may be greater + than zero and give some further hint as to why the connection failed.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" target="_top">Frames</a></li> +<li><a href="BleServer.StateListener.StateEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.StateListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.StateListener.html new file mode 100644 index 0000000000000000000000000000000000000000..5bf4b1e6d42acd5cf388b54ca2ce44d2d64e50b8 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.StateListener.html @@ -0,0 +1,254 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer.StateListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer.StateListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.StateListener.html" target="_top">Frames</a></li> +<li><a href="BleServer.StateListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleServer.StateListener" class="title">Interface BleServer.StateListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleServer.StateListener</span></pre> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_State-com.idevicesinc.sweetblue.BleServer.StateListener-"><code>BleServer.setListener_State(StateListener)</code></a> and/or + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_ServerState-com.idevicesinc.sweetblue.BleServer.StateListener-"><code>BleManager.setListener_ServerState(BleServer.StateListener)</code></a> to receive state change events.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleServerState</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_State-com.idevicesinc.sweetblue.BleServer.StateListener-"><code>BleServer.setListener_State(StateListener)</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.StateListener.StateEvent</a></span></code> +<div class="block">Subclass that adds the <a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#server--"><code>BleServer.StateListener.StateEvent.server()</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#macAddress--"><code>BleServer.StateListener.StateEvent.macAddress()</code></a>, and <a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#gattStatus--"><code>BleServer.StateListener.StateEvent.gattStatus()</code></a> fields.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.StateListener.StateEvent-">onEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.StateListener.StateEvent</a> e)</code> +<div class="block">Called when a server's bitwise <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleServerState</code></a> changes.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.BleServer.StateListener.StateEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>void onEvent(<a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.StateListener.StateEvent</a> e)</pre> +<div class="block">Called when a server's bitwise <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleServerState</code></a> changes. As many bits as possible are flipped at the same time.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.StateListener.html" target="_top">Frames</a></li> +<li><a href="BleServer.StateListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.html new file mode 100644 index 0000000000000000000000000000000000000000..93c887c3dc8a624d7ee09e025b3ce0d10b39032b --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServer.html @@ -0,0 +1,1915 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServer (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServer (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.html" target="_top">Frames</a></li> +<li><a href="BleServer.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleServer" class="title">Class BleServer</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">com.idevicesinc.sweetblue.BleNode</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleServer</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">BleServer</span> +extends <a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></pre> +<div class="block">Get an instance from <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getServer--"><code>BleManager.getServer()</code></a>. Wrapper for functionality exposed by <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattServer</code></a>. For OS levels less than 5.0, this + is only useful by piggybacking on an existing <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> that is currently <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>. + For OS levels 5.0 and up a <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> is capable of acting as an independent peripheral.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Class and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a></span></code> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Advertising-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>setListener_Advertising(BleServer.AdvertisingListener)</code></a>, and + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Advertising-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>BleManager.setListener_Advertising(BleServer.AdvertisingListener)</code></a> to receive a callback + when using <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a></span></code> +<div class="block">Provide an implementation of this callback to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>setListener_ConnectionFail(ConnectionFailListener)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleServer.DefaultConnectionFailListener</a></span></code> +<div class="block">Default implementation of <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener</code></a> that attempts a certain number of retries.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ExchangeListener</a></span></code> +<div class="block">Tagging interface, not to be implemented directly as this is just the base interface to statically tie together + <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.OutgoingListener</code></a> with common enums/structures.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.IncomingListener</a></span></code> +<div class="block">Provide an instance through <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Incoming-com.idevicesinc.sweetblue.BleServer.IncomingListener-"><code>setListener_Incoming(IncomingListener)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a></span></code> +<div class="block">Provide an instance to various static methods of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener.Please</code></a> such as + <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.IncomingListener.Please.respondWithSuccess(BleServer.OutgoingListener)</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>setListener_Outgoing(OutgoingListener)</code></a>, + or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleManager.setListener_Outgoing(BleServer.OutgoingListener)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ServiceAddListener</a></span></code> +<div class="block">Provide an implementation of this callback to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_ServiceAdd-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>setListener_ServiceAdd(ServiceAddListener)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.StateListener</a></span></code> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_State-com.idevicesinc.sweetblue.BleServer.StateListener-"><code>setListener_State(StateListener)</code></a> and/or + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_ServerState-com.idevicesinc.sweetblue.BleServer.StateListener-"><code>BleManager.setListener_ServerState(BleServer.StateListener)</code></a> to receive state change events.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleNode"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener</a></code></li> +</ul> +</li> +</ul> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#NULL">NULL</a></span></code> +<div class="block">Special value that is used in place of Java's built-in <code>null</code>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.com.idevicesinc.sweetblue.BleNode"> +<!-- --> +</a> +<h3>Fields inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNode.html#appData">appData</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#EMPTY_LIST">EMPTY_LIST</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#EMPTY_UUID_ARRAY">EMPTY_UUID_ARRAY</a></code></li> +</ul> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.ServiceAddEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-">addService</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleService.html" title="class in com.idevicesinc.sweetblue">BleService</a> service)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>addService(BleService, ServiceAddListener)</code></a> without the listener.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.ServiceAddEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-">addService</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleService.html" title="class in com.idevicesinc.sweetblue">BleService</a> service, + <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ServiceAddListener</a> listener)</code> +<div class="block">Starts the process of adding a service to this server.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-">connect</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-com.idevicesinc.sweetblue.BleServer.StateListener-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>connect(String, StateListener, ConnectionFailListener)</code></a> with no listeners.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-">connect</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a> connectionFailListener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-com.idevicesinc.sweetblue.BleServer.StateListener-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>connect(String, StateListener, ConnectionFailListener)</code></a> with only one listener.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-com.idevicesinc.sweetblue.BleServer.StateListener-">connect</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.StateListener</a> stateListener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-com.idevicesinc.sweetblue.BleServer.StateListener-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>connect(String, StateListener, ConnectionFailListener)</code></a> with only one listener.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-com.idevicesinc.sweetblue.BleServer.StateListener-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-">connect</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.StateListener</a> stateListener, + <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a> connectionFailListener)</code> +<div class="block">Connect to the given client mac address and provided listeners that are shorthand for calling <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_State-com.idevicesinc.sweetblue.BleServer.StateListener-"><code>setListener_State(StateListener)</code></a> + <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>setListener_ConnectionFail(ConnectionFailListener)</code></a>.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#disconnect--">disconnect</a></span>()</code> +<div class="block">Disconnects this server completely, disconnecting all connected clients and shutting things down.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#disconnect-java.lang.String-">disconnect</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</code> </td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#equals-com.idevicesinc.sweetblue.BleServer-">equals</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a> server_nullable)</code> +<div class="block">Does a referential equality check on the two servers.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#equals-java.lang.Object-">equals</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> object_nullable)</code> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleServer.html#equals-com.idevicesinc.sweetblue.BleServer-"><code>equals(BleServer)</code></a> if object is an instance of <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClientCount--">getClientCount</a></span>()</code> +<div class="block">Returns the total number of clients this server is connecting or connected to (or previously so).</div> +</td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClientCount-com.idevicesinc.sweetblue.BleServerState...-">getClientCount</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>... states)</code> +<div class="block">Returns the number of clients that are in any of the given states.</div> +</td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClientCount-com.idevicesinc.sweetblue.BleServerState-">getClientCount</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> state)</code> +<div class="block">Returns the number of clients that are in the current state.</div> +</td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients_List--">getClients_List</a></span>()</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients--"><code>getClients()</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients_List-com.idevicesinc.sweetblue.BleServerState...-">getClients_List</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>... states)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.BleServerState...-"><code>getClients(BleServerState[])</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</td> +</tr> +<tr id="i15" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients_List-com.idevicesinc.sweetblue.BleServerState-">getClients_List</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> state)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.BleServerState-"><code>getClients(BleServerState)</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</td> +</tr> +<tr id="i16" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients--">getClients</a></span>()</code> +<div class="block">Returns all the clients connected or connecting (or previously so) to this server.</div> +</td> +</tr> +<tr id="i17" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.BleServerState...-">getClients</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>... states)</code> +<div class="block">Returns all the clients connected or connecting (or previously so) to this server.</div> +</td> +</tr> +<tr id="i18" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.BleServerState-">getClients</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> state)</code> +<div class="block">Returns all the clients connected or connecting (or previously so) to this server.</div> +</td> +</tr> +<tr id="i19" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getClients</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> forEach)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-"><code>getClients(ForEach_Void)</code></a> + if you need to break out of the iteration at any point.</div> +</td> +</tr> +<tr id="i20" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Breakable-com.idevicesinc.sweetblue.BleServerState...-">getClients</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> forEach, + <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>... states)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Breakable-"><code>getClients(ForEach_Breakable)</code></a> but will only return clients + in any of the given states provided.</div> +</td> +</tr> +<tr id="i21" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Breakable-com.idevicesinc.sweetblue.BleServerState-">getClients</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> forEach, + <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> state)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-com.idevicesinc.sweetblue.BleServerState-"><code>getClients(ForEach_Void, BleServerState)</code></a> + if you need to break out of the iteration at any point.</div> +</td> +</tr> +<tr id="i22" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-">getClients</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> forEach)</code> +<div class="block">Offers a more "functional" means of iterating through the internal list of clients instead of + using <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients--"><code>getClients()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients_List--"><code>getClients_List()</code></a>.</div> +</td> +</tr> +<tr id="i23" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-com.idevicesinc.sweetblue.BleServerState...-">getClients</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> forEach, + <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>... states)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-"><code>getClients(ForEach_Void)</code></a> but will only return clients + in any of the given states provided.</div> +</td> +</tr> +<tr id="i24" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-com.idevicesinc.sweetblue.BleServerState-">getClients</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> forEach, + <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> state)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-"><code>getClients(ForEach_Void)</code></a> but will only return clients + in the given state provided.</div> +</td> +</tr> +<tr id="i25" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getListener_Advertise--">getListener_Advertise</a></span>()</code> </td> +</tr> +<tr id="i26" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.IncomingListener</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getListener_Incoming--">getListener_Incoming</a></span>()</code> +<div class="block">Returns the listener provided to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Incoming-com.idevicesinc.sweetblue.BleServer.IncomingListener-"><code>setListener_Incoming(IncomingListener)</code></a>.</div> +</td> +</tr> +<tr id="i27" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getMacAddress--">getMacAddress</a></span>()</code> +<div class="block">Returns the local mac address provided by <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#getAddress--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.getAddress()</code></a>.</div> +</td> +</tr> +<tr id="i28" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattServer</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getNative--">getNative</a></span>()</code> +<div class="block">Provides just-in-case lower-level access to the native server instance.</div> +</td> +</tr> +<tr id="i29" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#getStateMask-java.lang.String-">getStateMask</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</code> +<div class="block">Returns the bitwise state mask representation of <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleServerState</code></a> for the given client mac address.</div> +</td> +</tr> +<tr id="i30" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#hasClient-com.idevicesinc.sweetblue.BleServerState...-">hasClient</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>... states)</code> +<div class="block">Returns <code>true</code> if this server has any clients in any of the given states.</div> +</td> +</tr> +<tr id="i31" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#hasClient-com.idevicesinc.sweetblue.BleServerState-">hasClient</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> state)</code> +<div class="block">Returns <code>true</code> if this server has any clients in the given state.</div> +</td> +</tr> +<tr id="i32" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#hasClients--">hasClients</a></span>()</code> +<div class="block">Returns <code>true</code> if this server has any connected or connecting clients (or previously so).</div> +</td> +</tr> +<tr id="i33" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#is-java.lang.String-com.idevicesinc.sweetblue.BleServerState-">is</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> state)</code> +<div class="block">Returns true if the given client is in the state provided.</div> +</td> +</tr> +<tr id="i34" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#isAdvertising--">isAdvertising</a></span>()</code> +<div class="block">Checks to see if the device is currently advertising.</div> +</td> +</tr> +<tr id="i35" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#isAdvertising-java.util.UUID-">isAdvertising</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid)</code> +<div class="block">Checks to see if the device is currently advertising the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</td> +</tr> +<tr id="i36" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#isAdvertisingSupported--">isAdvertisingSupported</a></span>()</code> +<div class="block">Checks to see if the device supports advertising BLE services.</div> +</td> +</tr> +<tr id="i37" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#isAdvertisingSupportedByAndroidVersion--">isAdvertisingSupportedByAndroidVersion</a></span>()</code> +<div class="block">Checks to see if the device is running an Android OS which supports + advertising.</div> +</td> +</tr> +<tr id="i38" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#isAdvertisingSupportedByChipset--">isAdvertisingSupportedByChipset</a></span>()</code> +<div class="block">Checks to see if the device supports advertising.</div> +</td> +</tr> +<tr id="i39" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#isAll-java.lang.String-int-">isAll</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + int mask_BleServerState)</code> +<div class="block">Returns <code>true</code> if there is complete bitwise overlap between the provided value and <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getStateMask-java.lang.String-"><code>getStateMask(String)</code></a>.</div> +</td> +</tr> +<tr id="i40" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#isAny-java.lang.String-com.idevicesinc.sweetblue.BleServerState...-">isAny</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>... states)</code> +<div class="block">Returns true if the given client is in any of the states provided.</div> +</td> +</tr> +<tr id="i41" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#isAny-java.lang.String-int-">isAny</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + int mask_BleServerState)</code> +<div class="block">Returns <code>true</code> if there is any bitwise overlap between the provided value and <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getStateMask-java.lang.String-"><code>getStateMask(String)</code></a>.</div> +</td> +</tr> +<tr id="i42" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +</td> +</tr> +<tr id="i43" class="rowColor"> +<td class="colFirst"><code>protected com.idevicesinc.sweetblue.PA_ServiceManager</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#newServiceManager--">newServiceManager</a></span>()</code> </td> +</tr> +<tr id="i44" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#removeAllServices--">removeAllServices</a></span>()</code> +<div class="block">Convenience to remove all services previously added with <a href="../../../com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>addService(BleService, ServiceAddListener)</code></a> (or overloads).</div> +</td> +</tr> +<tr id="i45" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattService</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#removeService-java.util.UUID-">removeService</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid)</code> +<div class="block">Remove any service previously provided to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>addService(BleService, ServiceAddListener)</code></a> or overloads.</div> +</td> +</tr> +<tr id="i46" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-byte:A-">sendIndication</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</td> +</tr> +<tr id="i47" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">sendIndication</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</td> +</tr> +<tr id="i48" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-">sendIndication</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</td> +</tr> +<tr id="i49" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">sendIndication</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</td> +</tr> +<tr id="i50" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-byte:A-">sendIndication</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</td> +</tr> +<tr id="i51" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">sendIndication</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</td> +</tr> +<tr id="i52" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-">sendIndication</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</td> +</tr> +<tr id="i53" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">sendIndication</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</code> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a> but sends an indication instead.</div> +</td> +</tr> +<tr id="i54" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-byte:A-">sendNotification</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</td> +</tr> +<tr id="i55" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">sendNotification</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</td> +</tr> +<tr id="i56" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-">sendNotification</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</td> +</tr> +<tr id="i57" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">sendNotification</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</td> +</tr> +<tr id="i58" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-byte:A-">sendNotification</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</td> +</tr> +<tr id="i59" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">sendNotification</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</td> +</tr> +<tr id="i60" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-">sendNotification</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</td> +</tr> +<tr id="i61" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">sendNotification</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</code> +<div class="block">Use this method to send a notification to the client device with the given mac address to the given characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</td> +</tr> +<tr id="i62" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#setConfig-com.idevicesinc.sweetblue.BleNodeConfig-">setConfig</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a> config_nullable)</code> +<div class="block">Optionally sets overrides for any custom options given to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(android.content.Context, BleManagerConfig)</code></a> + for this individual server.</div> +</td> +</tr> +<tr id="i63" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Advertising-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-">setListener_Advertising</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a> listener_nullable)</code> </td> +</tr> +<tr id="i64" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-">setListener_ConnectionFail</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a> listener)</code> +<div class="block">Set a listener here to override any listener provided previously.</div> +</td> +</tr> +<tr id="i65" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Incoming-com.idevicesinc.sweetblue.BleServer.IncomingListener-">setListener_Incoming</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.IncomingListener</a> listener_nullable)</code> +<div class="block">Set a listener here to override any listener provided previously.</div> +</td> +</tr> +<tr id="i66" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">setListener_Outgoing</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</code> +<div class="block">This is a default catch-all convenience listener that will be called after any listener provided through + the static methods of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener.Please</code></a> such as <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.IncomingListener.Please.respondWithSuccess(BleServer.OutgoingListener)</code></a>.</div> +</td> +</tr> +<tr id="i67" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_ServiceAdd-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-">setListener_ServiceAdd</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ServiceAddListener</a> listener_nullable)</code> +<div class="block">Set a listener here to override any listener provided previously and provide a default backup that will be called + after any listener provided to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>addService(BleService, ServiceAddListener)</code></a>.</div> +</td> +</tr> +<tr id="i68" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_State-com.idevicesinc.sweetblue.BleServer.StateListener-">setListener_State</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.StateListener</a> listener_nullable)</code> +<div class="block">Set a listener here to be notified whenever this server's state changes in relation to a specific client.</div> +</td> +</tr> +<tr id="i69" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-">startAdvertising</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a> advPacket)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>startAdvertising(BleAdvertisingPacket, BleAdvertisingSettings, AdvertisingListener)</code></a>.</div> +</td> +</tr> +<tr id="i70" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-">startAdvertising</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a> advertisePacket, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingSettings</a> settings, + <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a> listener)</code> +<div class="block">Starts advertising serviceUuids with the information supplied in <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue"><code>BleAdvertisingPacket</code></a>.</div> +</td> +</tr> +<tr id="i71" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-">startAdvertising</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a> advPacket, + <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>startAdvertising(BleAdvertisingPacket, BleAdvertisingSettings, AdvertisingListener)</code></a>.</div> +</td> +</tr> +<tr id="i72" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID-">startAdvertising</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</td> +</tr> +<tr id="i73" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID:A-">startAdvertising</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</td> +</tr> +<tr id="i74" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">startAdvertising</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</td> +</tr> +<tr id="i75" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID:A-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-">startAdvertising</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingSettings</a> settings, + <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>startAdvertising(BleAdvertisingPacket, BleAdvertisingSettings, AdvertisingListener)</code></a>.</div> +</td> +</tr> +<tr id="i76" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID:A-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-">startAdvertising</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>startAdvertising(BleAdvertisingPacket, AdvertisingListener)</code></a>.</div> +</td> +</tr> +<tr id="i77" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">startAdvertising</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</td> +</tr> +<tr id="i78" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-">startAdvertising</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingSettings</a> settings, + <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>startAdvertising(BleAdvertisingPacket, BleAdvertisingSettings, AdvertisingListener)</code></a>.</div> +</td> +</tr> +<tr id="i79" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-">startAdvertising</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a> listener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>startAdvertising(BleAdvertisingPacket, AdvertisingListener)</code></a>.</div> +</td> +</tr> +<tr id="i80" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID-byte:A-">startAdvertising</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + byte[] serviceData)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</td> +</tr> +<tr id="i81" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">startAdvertising</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + byte[] serviceData, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</td> +</tr> +<tr id="i82" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#stopAdvertising--">stopAdvertising</a></span>()</code> +<div class="block">Stops the server from advertising.</div> +</td> +</tr> +<tr id="i83" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServer.html#toString--">toString</a></span>()</code> +<div class="block">Pretty-prints the list of connecting or connected clients.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.BleNode"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleNode.html#appData--">appData</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#cast--">cast</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#cast-java.lang.Class-">cast</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getManager--">getManager</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristic-java.util.UUID-">getNativeCharacteristic</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristic-java.util.UUID-java.util.UUID-">getNativeCharacteristic</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics_List--">getNativeCharacteristics_List</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics_List-java.util.UUID-">getNativeCharacteristics_List</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics--">getNativeCharacteristics</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeCharacteristics</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeCharacteristics</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-">getNativeCharacteristics</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeCharacteristics</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeCharacteristics</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor_inChar-java.util.UUID-java.util.UUID-">getNativeDescriptor_inChar</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor_inService-java.util.UUID-java.util.UUID-">getNativeDescriptor_inService</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor-java.util.UUID-">getNativeDescriptor</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-">getNativeDescriptor</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar_List-java.util.UUID-">getNativeDescriptors_inChar_List</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar-java.util.UUID-">getNativeDescriptors_inChar</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeDescriptors_inChar</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeDescriptors_inChar</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService_List-java.util.UUID-">getNativeDescriptors_inService_List</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService-java.util.UUID-">getNativeDescriptors_inService</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeDescriptors_inService</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeDescriptors_inService</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_List--">getNativeDescriptors_List</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_List-java.util.UUID-java.util.UUID-">getNativeDescriptors_List</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors--">getNativeDescriptors</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeDescriptors</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeDescriptors</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-java.util.UUID-java.util.UUID-">getNativeDescriptors</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeDescriptors</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeDescriptors</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeService-java.util.UUID-">getNativeService</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeServices_List--">getNativeServices_List</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeServices--">getNativeServices</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeServices-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeServices</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getNativeServices-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeServices</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#getServiceManager--">getServiceManager</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-">newHistoricalData</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#queryHistoricalData-java.lang.String-">queryHistoricalData</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#queryHistoricalData-java.lang.String-com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener-">queryHistoricalData</a>, <a href="../../../com/idevicesinc/sweetblue/BleNode.html#select--">select</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a> NULL</pre> +<div class="block">Special value that is used in place of Java's built-in <code>null</code>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="newServiceManager--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newServiceManager</h4> +<pre>protected com.idevicesinc.sweetblue.PA_ServiceManager newServiceManager()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/BleNode.html#newServiceManager--">newServiceManager</a></code> in class <code><a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></code></dd> +</dl> +</li> +</ul> +<a name="setConfig-com.idevicesinc.sweetblue.BleNodeConfig-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setConfig</h4> +<pre>public void setConfig(<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a> config_nullable)</pre> +<div class="block">Optionally sets overrides for any custom options given to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(android.content.Context, BleManagerConfig)</code></a> + for this individual server.</div> +</li> +</ul> +<a name="setListener_State-com.idevicesinc.sweetblue.BleServer.StateListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_State</h4> +<pre>public void setListener_State(<a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.StateListener</a> listener_nullable)</pre> +<div class="block">Set a listener here to be notified whenever this server's state changes in relation to a specific client.</div> +</li> +</ul> +<a name="setListener_Incoming-com.idevicesinc.sweetblue.BleServer.IncomingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_Incoming</h4> +<pre>public void setListener_Incoming(<a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.IncomingListener</a> listener_nullable)</pre> +<div class="block">Set a listener here to override any listener provided previously.</div> +</li> +</ul> +<a name="setListener_ServiceAdd-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_ServiceAdd</h4> +<pre>public void setListener_ServiceAdd(<a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ServiceAddListener</a> listener_nullable)</pre> +<div class="block">Set a listener here to override any listener provided previously and provide a default backup that will be called + after any listener provided to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>addService(BleService, ServiceAddListener)</code></a>.</div> +</li> +</ul> +<a name="setListener_Advertising-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_Advertising</h4> +<pre>public void setListener_Advertising(<a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a> listener_nullable)</pre> +</li> +</ul> +<a name="getListener_Advertise--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getListener_Advertise</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a> getListener_Advertise()</pre> +</li> +</ul> +<a name="getListener_Incoming--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getListener_Incoming</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.IncomingListener</a> getListener_Incoming()</pre> +<div class="block">Returns the listener provided to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Incoming-com.idevicesinc.sweetblue.BleServer.IncomingListener-"><code>setListener_Incoming(IncomingListener)</code></a>.</div> +</li> +</ul> +<a name="setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_Outgoing</h4> +<pre>public void setListener_Outgoing(<a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</pre> +<div class="block">This is a default catch-all convenience listener that will be called after any listener provided through + the static methods of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener.Please</code></a> such as <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.IncomingListener.Please.respondWithSuccess(BleServer.OutgoingListener)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleManager.setListener_Outgoing(BleServer.OutgoingListener)</code></a></dd> +</dl> +</li> +</ul> +<a name="setListener_ConnectionFail-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setListener_ConnectionFail</h4> +<pre>public void setListener_ConnectionFail(<a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a> listener)</pre> +<div class="block">Set a listener here to override any listener provided previously.</div> +</li> +</ul> +<a name="sendIndication-java.lang.String-java.util.UUID-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>sendIndication</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a> sendIndication(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</li> +</ul> +<a name="sendIndication-java.lang.String-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>sendIndication</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a> sendIndication(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</li> +</ul> +<a name="sendIndication-java.lang.String-java.util.UUID-java.util.UUID-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>sendIndication</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a> sendIndication(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</li> +</ul> +<a name="sendIndication-java.lang.String-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>sendIndication</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a> sendIndication(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</li> +</ul> +<a name="sendIndication-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>sendIndication</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a> sendIndication(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</li> +</ul> +<a name="sendIndication-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>sendIndication</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a> sendIndication(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</li> +</ul> +<a name="sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>sendIndication</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a> sendIndication(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</li> +</ul> +<a name="sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>sendIndication</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a> sendIndication(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a> but sends an indication instead.</div> +</li> +</ul> +<a name="sendNotification-java.lang.String-java.util.UUID-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>sendNotification</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a> sendNotification(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</li> +</ul> +<a name="sendNotification-java.lang.String-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>sendNotification</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a> sendNotification(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</li> +</ul> +<a name="sendNotification-java.lang.String-java.util.UUID-java.util.UUID-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>sendNotification</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a> sendNotification(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</li> +</ul> +<a name="sendNotification-java.lang.String-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>sendNotification</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a> sendNotification(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</li> +</ul> +<a name="sendNotification-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>sendNotification</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a> sendNotification(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</li> +</ul> +<a name="sendNotification-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>sendNotification</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a> sendNotification(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</li> +</ul> +<a name="sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>sendNotification</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a> sendNotification(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</li> +</ul> +<a name="sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>sendNotification</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a> sendNotification(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> futureData, + <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a> listener)</pre> +<div class="block">Use this method to send a notification to the client device with the given mac address to the given characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>. + If there is any kind of "early-out" issue then this method will return a <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.OutgoingListener.OutgoingEvent</code></a> in addition + to passing it through the listener. Otherwise this method will return an instance with <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#isNull--"><code>BleServer.OutgoingListener.OutgoingEvent.isNull()</code></a> being + <code>true</code>.</div> +</li> +</ul> +<a name="isAdvertisingSupportedByAndroidVersion--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAdvertisingSupportedByAndroidVersion</h4> +<pre>public boolean isAdvertisingSupportedByAndroidVersion()</pre> +<div class="block">Checks to see if the device is running an Android OS which supports + advertising. This is forwarded from <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isAdvertisingSupportedByAndroidVersion--"><code>BleManager.isAdvertisingSupportedByAndroidVersion()</code></a>.</div> +</li> +</ul> +<a name="isAdvertisingSupportedByChipset--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAdvertisingSupportedByChipset</h4> +<pre>public boolean isAdvertisingSupportedByChipset()</pre> +<div class="block">Checks to see if the device supports advertising. This is forwarded from <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isAdvertisingSupportedByChipset--"><code>BleManager.isAdvertisingSupportedByChipset()</code></a>.</div> +</li> +</ul> +<a name="isAdvertisingSupported--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAdvertisingSupported</h4> +<pre>public boolean isAdvertisingSupported()</pre> +<div class="block">Checks to see if the device supports advertising BLE services. This is forwarded from <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isAdvertisingSupported--"><code>BleManager.isAdvertisingSupported()</code></a>.</div> +</li> +</ul> +<a name="isAdvertising--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAdvertising</h4> +<pre>public boolean isAdvertising()</pre> +<div class="block">Checks to see if the device is currently advertising.</div> +</li> +</ul> +<a name="isAdvertising-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAdvertising</h4> +<pre>public boolean isAdvertising(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid)</pre> +<div class="block">Checks to see if the device is currently advertising the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</li> +</ul> +<a name="startAdvertising-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startAdvertising</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a> startAdvertising(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</li> +</ul> +<a name="startAdvertising-java.util.UUID-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startAdvertising</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a> startAdvertising(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>startAdvertising(BleAdvertisingPacket, AdvertisingListener)</code></a>.</div> +</li> +</ul> +<a name="startAdvertising-java.util.UUID:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startAdvertising</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a> startAdvertising(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</li> +</ul> +<a name="startAdvertising-java.util.UUID:A-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startAdvertising</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a> startAdvertising(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>startAdvertising(BleAdvertisingPacket, AdvertisingListener)</code></a>.</div> +</li> +</ul> +<a name="startAdvertising-java.util.UUID-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startAdvertising</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a> startAdvertising(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + byte[] serviceData)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</li> +</ul> +<a name="startAdvertising-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startAdvertising</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a> startAdvertising(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + byte[] serviceData, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</li> +</ul> +<a name="startAdvertising-java.util.UUID-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startAdvertising</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a> startAdvertising(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</li> +</ul> +<a name="startAdvertising-java.util.UUID:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startAdvertising</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a> startAdvertising(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>... options)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</li> +</ul> +<a name="startAdvertising-java.util.UUID-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startAdvertising</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a> startAdvertising(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingSettings</a> settings, + <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>startAdvertising(BleAdvertisingPacket, BleAdvertisingSettings, AdvertisingListener)</code></a>.</div> +</li> +</ul> +<a name="startAdvertising-java.util.UUID:A-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startAdvertising</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a> startAdvertising(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] serviceUuids, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingSettings</a> settings, + <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>startAdvertising(BleAdvertisingPacket, BleAdvertisingSettings, AdvertisingListener)</code></a>.</div> +</li> +</ul> +<a name="startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startAdvertising</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a> startAdvertising(<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a> advPacket)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>startAdvertising(BleAdvertisingPacket, BleAdvertisingSettings, AdvertisingListener)</code></a>. This sets + the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleAdvertisingMode</code></a> to <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#AUTO"><code>BleAdvertisingSettings.BleAdvertisingMode.AUTO</code></a>, and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleTransmissionPower</code></a> to <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html#MEDIUM"><code>BleAdvertisingSettings.BleTransmissionPower.MEDIUM</code></a>, and + no timeout for the advertisement.</div> +</li> +</ul> +<a name="startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startAdvertising</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a> startAdvertising(<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a> advPacket, + <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a> listener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>startAdvertising(BleAdvertisingPacket, BleAdvertisingSettings, AdvertisingListener)</code></a>. This sets + the <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleAdvertisingMode</code></a> to <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#AUTO"><code>BleAdvertisingSettings.BleAdvertisingMode.AUTO</code></a>, and <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleTransmissionPower</code></a> to <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html#MEDIUM"><code>BleAdvertisingSettings.BleTransmissionPower.MEDIUM</code></a>, and + no timeout for the advertisement.</div> +</li> +</ul> +<a name="startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startAdvertising</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a> startAdvertising(<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a> advertisePacket, + <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingSettings</a> settings, + <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a> listener)</pre> +<div class="block">Starts advertising serviceUuids with the information supplied in <a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue"><code>BleAdvertisingPacket</code></a>. Note that this will + only work for devices on Lollipop, or above. Even then, not every device supports advertising. Use + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#isAdvertisingSupported--"><code>BleManager.isAdvertisingSupported()</code></a> to check to see if the phone supports it.</div> +</li> +</ul> +<a name="stopAdvertising--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopAdvertising</h4> +<pre>public void stopAdvertising()</pre> +<div class="block">Stops the server from advertising.</div> +</li> +</ul> +<a name="getNative--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNative</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattServer</a> getNative()</pre> +<div class="block">Provides just-in-case lower-level access to the native server instance. + See similar warning for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getNative--"><code>BleDevice.getNative()</code></a>.</div> +</li> +</ul> +<a name="getStateMask-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getStateMask</h4> +<pre>public int getStateMask(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</pre> +<div class="block">Returns the bitwise state mask representation of <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleServerState</code></a> for the given client mac address.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleServerState</code></a></dd> +</dl> +</li> +</ul> +<a name="isAny-java.lang.String-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAny</h4> +<pre>public boolean isAny(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + int mask_BleServerState)</pre> +<div class="block">Returns <code>true</code> if there is any bitwise overlap between the provided value and <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getStateMask-java.lang.String-"><code>getStateMask(String)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html#isAll-java.lang.String-int-"><code>isAll(String, int)</code></a></dd> +</dl> +</li> +</ul> +<a name="isAll-java.lang.String-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAll</h4> +<pre>public boolean isAll(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + int mask_BleServerState)</pre> +<div class="block">Returns <code>true</code> if there is complete bitwise overlap between the provided value and <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getStateMask-java.lang.String-"><code>getStateMask(String)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html#isAny-java.lang.String-int-"><code>isAny(String, int)</code></a></dd> +</dl> +</li> +</ul> +<a name="is-java.lang.String-com.idevicesinc.sweetblue.BleServerState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>is</h4> +<pre>public boolean is(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> state)</pre> +<div class="block">Returns true if the given client is in the state provided.</div> +</li> +</ul> +<a name="isAny-java.lang.String-com.idevicesinc.sweetblue.BleServerState...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAny</h4> +<pre>public boolean isAny(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>... states)</pre> +<div class="block">Returns true if the given client is in any of the states provided.</div> +</li> +</ul> +<a name="connect-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a> connect(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-com.idevicesinc.sweetblue.BleServer.StateListener-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>connect(String, StateListener, ConnectionFailListener)</code></a> with no listeners.</div> +</li> +</ul> +<a name="connect-java.lang.String-com.idevicesinc.sweetblue.BleServer.StateListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a> connect(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.StateListener</a> stateListener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-com.idevicesinc.sweetblue.BleServer.StateListener-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>connect(String, StateListener, ConnectionFailListener)</code></a> with only one listener.</div> +</li> +</ul> +<a name="connect-java.lang.String-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a> connect(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a> connectionFailListener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-com.idevicesinc.sweetblue.BleServer.StateListener-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>connect(String, StateListener, ConnectionFailListener)</code></a> with only one listener.</div> +</li> +</ul> +<a name="connect-java.lang.String-com.idevicesinc.sweetblue.BleServer.StateListener-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>connect</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a> connect(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.StateListener</a> stateListener, + <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a> connectionFailListener)</pre> +<div class="block">Connect to the given client mac address and provided listeners that are shorthand for calling <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_State-com.idevicesinc.sweetblue.BleServer.StateListener-"><code>setListener_State(StateListener)</code></a> + <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>setListener_ConnectionFail(ConnectionFailListener)</code></a>.</div> +</li> +</ul> +<a name="disconnect-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disconnect</h4> +<pre>public boolean disconnect(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</pre> +</li> +</ul> +<a name="disconnect--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>disconnect</h4> +<pre>public void disconnect()</pre> +<div class="block">Disconnects this server completely, disconnecting all connected clients and shutting things down. + To disconnect individual clients use <a href="../../../com/idevicesinc/sweetblue/BleServer.html#disconnect-java.lang.String-"><code>disconnect(String)</code></a>.</div> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">UsesCustomNull</a></code></span></div> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +</li> +</ul> +<a name="equals-com.idevicesinc.sweetblue.BleServer-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>equals</h4> +<pre>public boolean equals(<a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a> server_nullable)</pre> +<div class="block">Does a referential equality check on the two servers.</div> +</li> +</ul> +<a name="equals-java.lang.Object-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>equals</h4> +<pre>public boolean equals(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> object_nullable)</pre> +<div class="block">Returns <a href="../../../com/idevicesinc/sweetblue/BleServer.html#equals-com.idevicesinc.sweetblue.BleServer-"><code>equals(BleServer)</code></a> if object is an instance of <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>. Otherwise calls super.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.html#equals-com.idevicesinc.sweetblue.BleServer-"><code>equals(BleServer)</code></a></dd> +</dl> +</li> +</ul> +<a name="addService-com.idevicesinc.sweetblue.BleService-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>addService</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.ServiceAddEvent</a> addService(<a href="../../../com/idevicesinc/sweetblue/BleService.html" title="class in com.idevicesinc.sweetblue">BleService</a> service)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>addService(BleService, ServiceAddListener)</code></a> without the listener.</div> +</li> +</ul> +<a name="addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>addService</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.ServiceAddEvent</a> addService(<a href="../../../com/idevicesinc/sweetblue/BleService.html" title="class in com.idevicesinc.sweetblue">BleService</a> service, + <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ServiceAddListener</a> listener)</pre> +<div class="block">Starts the process of adding a service to this server. The provided listener will be called when the service is added or there is a problem.</div> +</li> +</ul> +<a name="removeService-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>removeService</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattService</a> removeService(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid)</pre> +<div class="block">Remove any service previously provided to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>addService(BleService, ServiceAddListener)</code></a> or overloads. This can be safely called + even if the call to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>addService(BleService, ServiceAddListener)</code></a> hasn't resulted in a callback to the provided listener yet, in which + case it will be called with <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#CANCELLED_FROM_REMOVAL"><code>BleServer.ServiceAddListener.Status.CANCELLED_FROM_REMOVAL</code></a>.</div> +</li> +</ul> +<a name="removeAllServices--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>removeAllServices</h4> +<pre>public void removeAllServices()</pre> +<div class="block">Convenience to remove all services previously added with <a href="../../../com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>addService(BleService, ServiceAddListener)</code></a> (or overloads). This is slightly more performant too.</div> +</li> +</ul> +<a name="getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getClients</h4> +<pre>public void getClients(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> forEach)</pre> +<div class="block">Offers a more "functional" means of iterating through the internal list of clients instead of + using <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients--"><code>getClients()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients_List--"><code>getClients_List()</code></a>.</div> +</li> +</ul> +<a name="getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-com.idevicesinc.sweetblue.BleServerState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getClients</h4> +<pre>public void getClients(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> forEach, + <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> state)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-"><code>getClients(ForEach_Void)</code></a> but will only return clients + in the given state provided.</div> +</li> +</ul> +<a name="getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-com.idevicesinc.sweetblue.BleServerState...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getClients</h4> +<pre>public void getClients(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> forEach, + <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>... states)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-"><code>getClients(ForEach_Void)</code></a> but will only return clients + in any of the given states provided.</div> +</li> +</ul> +<a name="getClients-com.idevicesinc.sweetblue.utils.ForEach_Breakable-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getClients</h4> +<pre>public void getClients(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> forEach)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-"><code>getClients(ForEach_Void)</code></a> + if you need to break out of the iteration at any point.</div> +</li> +</ul> +<a name="getClients-com.idevicesinc.sweetblue.utils.ForEach_Breakable-com.idevicesinc.sweetblue.BleServerState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getClients</h4> +<pre>public void getClients(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> forEach, + <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> state)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-com.idevicesinc.sweetblue.BleServerState-"><code>getClients(ForEach_Void, BleServerState)</code></a> + if you need to break out of the iteration at any point.</div> +</li> +</ul> +<a name="getClients-com.idevicesinc.sweetblue.utils.ForEach_Breakable-com.idevicesinc.sweetblue.BleServerState...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getClients</h4> +<pre>public void getClients(<a href="../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> forEach, + <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>... states)</pre> +<div class="block">Same as <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Breakable-"><code>getClients(ForEach_Breakable)</code></a> but will only return clients + in any of the given states provided.</div> +</li> +</ul> +<a name="getClients--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getClients</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> getClients()</pre> +<div class="block">Returns all the clients connected or connecting (or previously so) to this server.</div> +</li> +</ul> +<a name="getClients-com.idevicesinc.sweetblue.BleServerState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getClients</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> getClients(<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> state)</pre> +<div class="block">Returns all the clients connected or connecting (or previously so) to this server.</div> +</li> +</ul> +<a name="getClients-com.idevicesinc.sweetblue.BleServerState...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getClients</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> getClients(<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>... states)</pre> +<div class="block">Returns all the clients connected or connecting (or previously so) to this server.</div> +</li> +</ul> +<a name="getClients_List--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getClients_List</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> getClients_List()</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients--"><code>getClients()</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</li> +</ul> +<a name="getClients_List-com.idevicesinc.sweetblue.BleServerState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getClients_List</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> getClients_List(<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> state)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.BleServerState-"><code>getClients(BleServerState)</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</li> +</ul> +<a name="getClients_List-com.idevicesinc.sweetblue.BleServerState...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getClients_List</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> getClients_List(<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>... states)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.BleServerState...-"><code>getClients(BleServerState[])</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</li> +</ul> +<a name="getClientCount--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getClientCount</h4> +<pre>public int getClientCount()</pre> +<div class="block">Returns the total number of clients this server is connecting or connected to (or previously so).</div> +</li> +</ul> +<a name="getClientCount-com.idevicesinc.sweetblue.BleServerState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getClientCount</h4> +<pre>public int getClientCount(<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> state)</pre> +<div class="block">Returns the number of clients that are in the current state.</div> +</li> +</ul> +<a name="getClientCount-com.idevicesinc.sweetblue.BleServerState...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getClientCount</h4> +<pre>public int getClientCount(<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>... states)</pre> +<div class="block">Returns the number of clients that are in any of the given states.</div> +</li> +</ul> +<a name="hasClients--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasClients</h4> +<pre>public boolean hasClients()</pre> +<div class="block">Returns <code>true</code> if this server has any connected or connecting clients (or previously so).</div> +</li> +</ul> +<a name="hasClient-com.idevicesinc.sweetblue.BleServerState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasClient</h4> +<pre>public boolean hasClient(<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> state)</pre> +<div class="block">Returns <code>true</code> if this server has any clients in the given state.</div> +</li> +</ul> +<a name="hasClient-com.idevicesinc.sweetblue.BleServerState...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasClient</h4> +<pre>public boolean hasClient(<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>... states)</pre> +<div class="block">Returns <code>true</code> if this server has any clients in any of the given states.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<div class="block">Pretty-prints the list of connecting or connected clients.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +<a name="getMacAddress--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getMacAddress</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getMacAddress()</pre> +<div class="block">Returns the local mac address provided by <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#getAddress--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.getAddress()</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/BleNode.html#getMacAddress--">getMacAddress</a></code> in class <code><a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServer.html" target="_top">Frames</a></li> +<li><a href="BleServer.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServerState.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServerState.html new file mode 100644 index 0000000000000000000000000000000000000000..0b844877e088d047b04bd3714d24fda0ad573247 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServerState.html @@ -0,0 +1,619 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServerState (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServerState (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":9,"i9":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleService.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServerState.html" target="_top">Frames</a></li> +<li><a href="BleServerState.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleServerState" class="title">Enum BleServerState</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleServerState</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>, <a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>, <a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>></dd> +</dl> +<hr> +<br> +<pre>public enum <span class="typeNameLabel">BleServerState</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>> +implements <a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></pre> +<div class="block">An enumeration of the various states that a <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> can be in on a per-client (mac address) basis. + Note that unlike a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>, a <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> can only be in one state at a time for a given client + Use <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_State-com.idevicesinc.sweetblue.BleServer.StateListener-"><code>BleServer.setListener_State(BleServer.StateListener)</code></a> to be notified of state changes.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.StateListener</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.utils.State"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a><<a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a> extends <a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>>, <a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a></code></li> +</ul> +</li> +</ul> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServerState.html#CONNECTED">CONNECTED</a></span></code> +<div class="block">SweetBlue equivalent of <a href="http://d.android.com/reference/android/bluetooth/BluetoothProfile.html?is-external=true#STATE_CONNECTED" title="class or interface in android.bluetooth"><code>BluetoothProfile.STATE_CONNECTED</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServerState.html#CONNECTING">CONNECTING</a></span></code> +<div class="block">SweetBlue equivalent of <a href="http://d.android.com/reference/android/bluetooth/BluetoothProfile.html?is-external=true#STATE_CONNECTING" title="class or interface in android.bluetooth"><code>BluetoothProfile.STATE_CONNECTING</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServerState.html#DISCONNECTED">DISCONNECTED</a></span></code> +<div class="block">SweetBlue equivalent of <a href="http://d.android.com/reference/android/bluetooth/BluetoothProfile.html?is-external=true#STATE_DISCONNECTED" title="class or interface in android.bluetooth"><code>BluetoothProfile.STATE_DISCONNECTED</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServerState.html#NULL">NULL</a></span></code> +<div class="block">Dummy value returned from any method that would otherwise return Java's built-in <code>null</code>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServerState.html#FULL_MASK">FULL_MASK</a></span></code> +<div class="block">Full bitwise mask made by ORing all <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleServerState</code></a> instances together.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServerState.html#bit--">bit</a></span>()</code> +<div class="block">Returns the bit (0x1, 0x2, 0x4, etc.) this enum represents based on the <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--"><code>BitwiseEnum.ordinal()</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServerState.html#didEnter-int-int-">didEnter</a></span>(int oldStateBits, + int newStateBits)</code> +<div class="block">Given an old and new state mask, for example from <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent-"><code>BleDevice.StateListener.onEvent(com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent)</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent-"><code>BleManager.StateListener.onEvent(com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent)</code></a>, this method tells you whether the + the 'this' state was appended.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServerState.html#didExit-int-int-">didExit</a></span>(int oldStateBits, + int newStateBits)</code> +<div class="block">Reverse of <a href="../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-"><code>State.didEnter(int, int)</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServerState.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if this state is meant to stand in for Java's built-in <code>null</code>.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServerState.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or</a></span>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a> state)</code> +<div class="block">Does a bitwise OR for this state and the given state.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServerState.html#or-int-">or</a></span>(int bits)</code> +<div class="block">Does a bitwise OR for this state and the given bits.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServerState.html#overlaps-int-">overlaps</a></span>(int mask)</code> +<div class="block">Convenience method for checking if <code>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--"><code>BitwiseEnum.bit()</code></a> & mask) != 0x0</code>.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServerState.html#toBits-com.idevicesinc.sweetblue.BleServerState...-">toBits</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>... states)</code> </td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServerState.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServerState.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.BitwiseEnum"> +<!-- --> +</a> +<h3>Methods inherited from interface com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#name--">name</a>, <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--">ordinal</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> NULL</pre> +<div class="block">Dummy value returned from any method that would otherwise return Java's built-in <code>null</code>. + A normal <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> will never be in this state, but this will be the sole state of <a href="../../../com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a>.</div> +</li> +</ul> +<a name="DISCONNECTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DISCONNECTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> DISCONNECTED</pre> +<div class="block">SweetBlue equivalent of <a href="http://d.android.com/reference/android/bluetooth/BluetoothProfile.html?is-external=true#STATE_DISCONNECTED" title="class or interface in android.bluetooth"><code>BluetoothProfile.STATE_DISCONNECTED</code></a>.</div> +</li> +</ul> +<a name="CONNECTING"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CONNECTING</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> CONNECTING</pre> +<div class="block">SweetBlue equivalent of <a href="http://d.android.com/reference/android/bluetooth/BluetoothProfile.html?is-external=true#STATE_CONNECTING" title="class or interface in android.bluetooth"><code>BluetoothProfile.STATE_CONNECTING</code></a>.</div> +</li> +</ul> +<a name="CONNECTED"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>CONNECTED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> CONNECTED</pre> +<div class="block">SweetBlue equivalent of <a href="http://d.android.com/reference/android/bluetooth/BluetoothProfile.html?is-external=true#STATE_CONNECTED" title="class or interface in android.bluetooth"><code>BluetoothProfile.STATE_CONNECTED</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="FULL_MASK"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>FULL_MASK</h4> +<pre>public static final int FULL_MASK</pre> +<div class="block">Full bitwise mask made by ORing all <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleServerState</code></a> instances together.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleServerState c : BleServerState.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="toBits-com.idevicesinc.sweetblue.BleServerState...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toBits</h4> +<pre>public static int toBits(<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>... states)</pre> +</li> +</ul> +<a name="overlaps-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>overlaps</h4> +<pre>public boolean overlaps(int mask)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#overlaps-int-">BitwiseEnum</a></code></span></div> +<div class="block">Convenience method for checking if <code>(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--"><code>BitwiseEnum.bit()</code></a> & mask) != 0x0</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#overlaps-int-">overlaps</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="bit--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bit</h4> +<pre>public int bit()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--">BitwiseEnum</a></code></span></div> +<div class="block">Returns the bit (0x1, 0x2, 0x4, etc.) this enum represents based on the <a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--"><code>BitwiseEnum.ordinal()</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--">bit</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="didEnter-int-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>didEnter</h4> +<pre>public boolean didEnter(int oldStateBits, + int newStateBits)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-">State</a></code></span></div> +<div class="block">Given an old and new state mask, for example from <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent-"><code>BleDevice.StateListener.onEvent(com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent)</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent-"><code>BleManager.StateListener.onEvent(com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent)</code></a>, this method tells you whether the + the 'this' state was appended.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-">didEnter</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></code></dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/State.html#didExit-int-int-"><code>State.didExit(int, int)</code></a></dd> +</dl> +</li> +</ul> +<a name="didExit-int-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>didExit</h4> +<pre>public boolean didExit(int oldStateBits, + int newStateBits)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/State.html#didExit-int-int-">State</a></code></span></div> +<div class="block">Reverse of <a href="../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-"><code>State.didEnter(int, int)</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/State.html#didExit-int-int-">didExit</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></code></dd> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-"><code>State.didEnter(int, int)</code></a></dd> +</dl> +</li> +</ul> +<a name="or-com.idevicesinc.sweetblue.utils.BitwiseEnum-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>or</h4> +<pre>public int or(<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a> state)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">BitwiseEnum</a></code></span></div> +<div class="block">Does a bitwise OR for this state and the given state.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="or-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>or</h4> +<pre>public int or(int bits)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-int-">BitwiseEnum</a></code></span></div> +<div class="block">Does a bitwise OR for this state and the given bits.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-int-">or</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></code></dd> +</dl> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../com/idevicesinc/sweetblue/utils/State.html#isNull--">State</a></code></span></div> +<div class="block">Returns <code>true</code> if this state is meant to stand in for Java's built-in <code>null</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/State.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></code></dd> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleService.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServerState.html" target="_top">Frames</a></li> +<li><a href="BleServerState.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleService.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleService.html new file mode 100644 index 0000000000000000000000000000000000000000..09bb77b044b94440907a4ddc950db48d049c8c90 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleService.html @@ -0,0 +1,243 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleService (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleService (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServices.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleService.html" target="_top">Frames</a></li> +<li><a href="BleService.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleService" class="title">Class BleService</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleService</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">BleService</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Proxy of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattService</code></a> to force stricter compile-time checks and order of operations + when creating services for <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleServices.html" title="class in com.idevicesinc.sweetblue"><code>BleServices</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleService.html#BleService-java.util.UUID-com.idevicesinc.sweetblue.BleCharacteristic...-">BleService</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristic.html" title="class in com.idevicesinc.sweetblue">BleCharacteristic</a>... characteristics)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="BleService-java.util.UUID-com.idevicesinc.sweetblue.BleCharacteristic...-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BleService</h4> +<pre>public BleService(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../com/idevicesinc/sweetblue/BleCharacteristic.html" title="class in com.idevicesinc.sweetblue">BleCharacteristic</a>... characteristics)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleServices.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleService.html" target="_top">Frames</a></li> +<li><a href="BleService.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServices.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServices.html new file mode 100644 index 0000000000000000000000000000000000000000..edcaa3be9884bc7069b4b4696112ef9ee4894f8c --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleServices.html @@ -0,0 +1,239 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleServices (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleServices (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleService.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServices.html" target="_top">Frames</a></li> +<li><a href="BleServices.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleServices" class="title">Class BleServices</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleServices</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">BleServices</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Static-only class with some common BLE services for <a href="../../../com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-"><code>BleServer.addService(BleService)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleService.html" title="class in com.idevicesinc.sweetblue">BleService</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleServices.html#currentTime--">currentTime</a></span>()</code> +<div class="block">Returns a new service conforming to the "Current Time Service" specification.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="currentTime--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>currentTime</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleService.html" title="class in com.idevicesinc.sweetblue">BleService</a> currentTime()</pre> +<div class="block">Returns a new service conforming to the "Current Time Service" specification.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleService.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleServices.html" target="_top">Frames</a></li> +<li><a href="BleServices.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleStatuses.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleStatuses.html new file mode 100644 index 0000000000000000000000000000000000000000..8bfed2deb0af609222df93e971bd2c7cfba6fcc8 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleStatuses.html @@ -0,0 +1,1647 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleStatuses (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleStatuses (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServices.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleStatuses.html" target="_top">Frames</a></li> +<li><a href="BleStatuses.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleStatuses" class="title">Class BleStatuses</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleStatuses</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">BleStatuses</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">A collection of various BLE status codes that for whatever reason are not exposed through Android's + public BLE layer - this can be because they are <code>public</code> but use the @hide annotation, + or they are not <code>public</code> in the first place, or they can only be found by Googling + for native C/C++ library code. + <br><br> + See the static members of <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothDevice</code></a> and <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGatt</code></a> for more information. + <br><br> + NOTE: Most <code>GATT_</code> members here are copy/pasted from + https://android.googlesource.com/platform/external/bluetooth/bluedroid/+/android-4.3_r1.1/stack/include/gatt_api.h</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#ADVERTISE_ANDROID_VERSION_NOT_SUPPORTED">ADVERTISE_ANDROID_VERSION_NOT_SUPPORTED</a></span></code> +<div class="block">Status code for (@link BleServer.AdvertiseListener.AdvertisingEvent#status} when trying to advertise on + a device which isn't running an android OS of Lollipop or higher.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#ADVERTISE_SUCCESS">ADVERTISE_SUCCESS</a></span></code> +<div class="block">Status code used for <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html#status--"><code>BleServer.AdvertisingListener.AdvertisingEvent.status()</code></a> when advertising has been + successfully started.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#BOND_FAIL_REASON_NOT_APPLICABLE">BOND_FAIL_REASON_NOT_APPLICABLE</a></span></code> +<div class="block">Used on <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#failReason--"><code>BleDevice.BondListener.BondEvent.failReason()</code></a> when <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#status--"><code>BleDevice.BondListener.BondEvent.status()</code></a> + isn't applicable, for example <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#SUCCESS"><code>BleDevice.BondListener.Status.SUCCESS</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#BOND_FAIL_REASON_NOT_AVAILABLE">BOND_FAIL_REASON_NOT_AVAILABLE</a></span></code> +<div class="block">Used when attempting to bond on a device whose API level is less than 19, or does not have access to android's + <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#createBond--" title="class or interface in android.bluetooth"><code>BluetoothDevice.createBond()</code></a> method.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#BOND_SUCCESS">BOND_SUCCESS</a></span></code> +<div class="block">A bond attempt succeeded.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_AUTH_FAIL">GATT_AUTH_FAIL</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_BUSY">GATT_BUSY</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_CMD_STARTED">GATT_CMD_STARTED</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_CMD_WRITE">GATT_CMD_WRITE</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_CONN_UNKNOWN">GATT_CONN_UNKNOWN</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_DB_FULL">GATT_DB_FULL</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_ENCRYPED_MITM">GATT_ENCRYPED_MITM</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_ENCRYPED_NO_MITM">GATT_ENCRYPED_NO_MITM</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_ERR_UNLIKELY">GATT_ERR_UNLIKELY</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_ERROR">GATT_ERROR</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_HANDLE_VALUE_CONF">GATT_HANDLE_VALUE_CONF</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_HANDLE_VALUE_IND">GATT_HANDLE_VALUE_IND</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_HANDLE_VALUE_NOTIF">GATT_HANDLE_VALUE_NOTIF</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_ILLEGAL_PARAMETER">GATT_ILLEGAL_PARAMETER</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_INSUF_AUTHENTICATION">GATT_INSUF_AUTHENTICATION</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_INSUF_AUTHORIZATION">GATT_INSUF_AUTHORIZATION</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_INSUF_ENCRYPTION">GATT_INSUF_ENCRYPTION</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_INSUF_KEY_SIZE">GATT_INSUF_KEY_SIZE</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_INSUF_RESOURCE">GATT_INSUF_RESOURCE</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_INTERNAL_ERROR">GATT_INTERNAL_ERROR</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_INVALID_ATTR_LEN">GATT_INVALID_ATTR_LEN</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_INVALID_CFG">GATT_INVALID_CFG</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_INVALID_HANDLE">GATT_INVALID_HANDLE</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_INVALID_OFFSET">GATT_INVALID_OFFSET</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_INVALID_PDU">GATT_INVALID_PDU</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_MORE">GATT_MORE</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_NO_RESOURCES">GATT_NO_RESOURCES</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_NOT_ENCRYPTED">GATT_NOT_ENCRYPTED</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_NOT_FOUND">GATT_NOT_FOUND</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_NOT_LONG">GATT_NOT_LONG</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_OP_CODE_MAX">GATT_OP_CODE_MAX</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_PENDING">GATT_PENDING</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_PREPARE_Q_FULL">GATT_PREPARE_Q_FULL</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_READ_NOT_PERMIT">GATT_READ_NOT_PERMIT</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_EXEC_WRITE">GATT_REQ_EXEC_WRITE</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_FIND_INFO">GATT_REQ_FIND_INFO</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_FIND_TYPE_VALUE">GATT_REQ_FIND_TYPE_VALUE</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_MTU">GATT_REQ_MTU</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_NOT_SUPPORTED">GATT_REQ_NOT_SUPPORTED</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_PREPARE_WRITE">GATT_REQ_PREPARE_WRITE</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_READ">GATT_REQ_READ</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_READ_BLOB">GATT_REQ_READ_BLOB</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_READ_BY_GRP_TYPE">GATT_REQ_READ_BY_GRP_TYPE</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_READ_BY_TYPE">GATT_REQ_READ_BY_TYPE</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_READ_MULTI">GATT_REQ_READ_MULTI</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_WRITE">GATT_REQ_WRITE</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_ERROR">GATT_RSP_ERROR</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_EXEC_WRITE">GATT_RSP_EXEC_WRITE</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_FIND_INFO">GATT_RSP_FIND_INFO</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_FIND_TYPE_VALUE">GATT_RSP_FIND_TYPE_VALUE</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_MTU">GATT_RSP_MTU</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_PREPARE_WRITE">GATT_RSP_PREPARE_WRITE</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_READ">GATT_RSP_READ</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_READ_BLOB">GATT_RSP_READ_BLOB</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_READ_BY_GRP_TYPE">GATT_RSP_READ_BY_GRP_TYPE</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_READ_BY_TYPE">GATT_RSP_READ_BY_TYPE</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_READ_MULTI">GATT_RSP_READ_MULTI</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_WRITE">GATT_RSP_WRITE</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_SERVICE_STARTED">GATT_SERVICE_STARTED</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_SIGN_CMD_WRITE">GATT_SIGN_CMD_WRITE</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_STATUS_NOT_APPLICABLE">GATT_STATUS_NOT_APPLICABLE</a></span></code> +<div class="block">Status code used for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#gattStatus--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.gattStatus()</code></a> when the operation failed at a point where a + gatt status from the underlying stack isn't provided or applicable.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_SUCCESS">GATT_SUCCESS</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_UNSUPPORT_GRP_TYPE">GATT_UNSUPPORT_GRP_TYPE</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_WRITE_NOT_PERMIT">GATT_WRITE_NOT_PERMIT</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#GATT_WRONG_STATE">GATT_WRONG_STATE</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_AUTH_CANCELED">UNBOND_REASON_AUTH_CANCELED</a></span></code> +<div class="block">A bond attempt failed because we canceled the bonding process.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_AUTH_FAILED">UNBOND_REASON_AUTH_FAILED</a></span></code> +<div class="block">A bond attempt failed because pins did not match, or remote device did not respond to pin request in time.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_AUTH_REJECTED">UNBOND_REASON_AUTH_REJECTED</a></span></code> +<div class="block">A bond attempt failed because the other side explicitly rejected bonding.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_AUTH_TIMEOUT">UNBOND_REASON_AUTH_TIMEOUT</a></span></code> +<div class="block">A bond attempt failed because of authentication timeout.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_DISCOVERY_IN_PROGRESS">UNBOND_REASON_DISCOVERY_IN_PROGRESS</a></span></code> +<div class="block">A bond attempt failed because a discovery is in progress.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_REMOTE_AUTH_CANCELED">UNBOND_REASON_REMOTE_AUTH_CANCELED</a></span></code> +<div class="block">A bond attempt failed because we received an Authentication Cancel by remote end.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_REMOTE_DEVICE_DOWN">UNBOND_REASON_REMOTE_DEVICE_DOWN</a></span></code> +<div class="block">A bond attempt failed because we could not contact the remote device.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_REPEATED_ATTEMPTS">UNBOND_REASON_REPEATED_ATTEMPTS</a></span></code> +<div class="block">A bond attempt failed because of repeated attempts.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html#BleStatuses--">BleStatuses</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="GATT_STATUS_NOT_APPLICABLE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_STATUS_NOT_APPLICABLE</h4> +<pre>public static final int GATT_STATUS_NOT_APPLICABLE</pre> +<div class="block">Status code used for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#gattStatus--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.gattStatus()</code></a> when the operation failed at a point where a + gatt status from the underlying stack isn't provided or applicable. + <br><br> + Also used for <a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#gattStatus--"><code>BleNode.ConnectionFailListener.ConnectionFailEvent.gattStatus()</code></a> for when the failure didn't involve the gatt layer.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_STATUS_NOT_APPLICABLE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="BOND_FAIL_REASON_NOT_APPLICABLE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BOND_FAIL_REASON_NOT_APPLICABLE</h4> +<pre>public static final int BOND_FAIL_REASON_NOT_APPLICABLE</pre> +<div class="block">Used on <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#failReason--"><code>BleDevice.BondListener.BondEvent.failReason()</code></a> when <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#status--"><code>BleDevice.BondListener.BondEvent.status()</code></a> + isn't applicable, for example <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#SUCCESS"><code>BleDevice.BondListener.Status.SUCCESS</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="BOND_FAIL_REASON_NOT_AVAILABLE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BOND_FAIL_REASON_NOT_AVAILABLE</h4> +<pre>public static final int BOND_FAIL_REASON_NOT_AVAILABLE</pre> +<div class="block">Used when attempting to bond on a device whose API level is less than 19, or does not have access to android's + <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#createBond--" title="class or interface in android.bluetooth"><code>BluetoothDevice.createBond()</code></a> method.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.BOND_FAIL_REASON_NOT_AVAILABLE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="ADVERTISE_SUCCESS"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ADVERTISE_SUCCESS</h4> +<pre>public static final int ADVERTISE_SUCCESS</pre> +<div class="block">Status code used for <a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html#status--"><code>BleServer.AdvertisingListener.AdvertisingEvent.status()</code></a> when advertising has been + successfully started.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.ADVERTISE_SUCCESS">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="ADVERTISE_ANDROID_VERSION_NOT_SUPPORTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ADVERTISE_ANDROID_VERSION_NOT_SUPPORTED</h4> +<pre>public static final int ADVERTISE_ANDROID_VERSION_NOT_SUPPORTED</pre> +<div class="block">Status code for (@link BleServer.AdvertiseListener.AdvertisingEvent#status} when trying to advertise on + a device which isn't running an android OS of Lollipop or higher.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.ADVERTISE_ANDROID_VERSION_NOT_SUPPORTED">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="BOND_SUCCESS"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BOND_SUCCESS</h4> +<pre>public static final int BOND_SUCCESS</pre> +<div class="block">A bond attempt succeeded.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.BOND_SUCCESS">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="UNBOND_REASON_AUTH_FAILED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>UNBOND_REASON_AUTH_FAILED</h4> +<pre>public static final int UNBOND_REASON_AUTH_FAILED</pre> +<div class="block">A bond attempt failed because pins did not match, or remote device did not respond to pin request in time.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.UNBOND_REASON_AUTH_FAILED">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="UNBOND_REASON_AUTH_REJECTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>UNBOND_REASON_AUTH_REJECTED</h4> +<pre>public static final int UNBOND_REASON_AUTH_REJECTED</pre> +<div class="block">A bond attempt failed because the other side explicitly rejected bonding.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.UNBOND_REASON_AUTH_REJECTED">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="UNBOND_REASON_AUTH_CANCELED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>UNBOND_REASON_AUTH_CANCELED</h4> +<pre>public static final int UNBOND_REASON_AUTH_CANCELED</pre> +<div class="block">A bond attempt failed because we canceled the bonding process.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.UNBOND_REASON_AUTH_CANCELED">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="UNBOND_REASON_REMOTE_DEVICE_DOWN"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>UNBOND_REASON_REMOTE_DEVICE_DOWN</h4> +<pre>public static final int UNBOND_REASON_REMOTE_DEVICE_DOWN</pre> +<div class="block">A bond attempt failed because we could not contact the remote device.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.UNBOND_REASON_REMOTE_DEVICE_DOWN">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="UNBOND_REASON_DISCOVERY_IN_PROGRESS"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>UNBOND_REASON_DISCOVERY_IN_PROGRESS</h4> +<pre>public static final int UNBOND_REASON_DISCOVERY_IN_PROGRESS</pre> +<div class="block">A bond attempt failed because a discovery is in progress.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.UNBOND_REASON_DISCOVERY_IN_PROGRESS">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="UNBOND_REASON_AUTH_TIMEOUT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>UNBOND_REASON_AUTH_TIMEOUT</h4> +<pre>public static final int UNBOND_REASON_AUTH_TIMEOUT</pre> +<div class="block">A bond attempt failed because of authentication timeout.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.UNBOND_REASON_AUTH_TIMEOUT">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="UNBOND_REASON_REPEATED_ATTEMPTS"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>UNBOND_REASON_REPEATED_ATTEMPTS</h4> +<pre>public static final int UNBOND_REASON_REPEATED_ATTEMPTS</pre> +<div class="block">A bond attempt failed because of repeated attempts.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.UNBOND_REASON_REPEATED_ATTEMPTS">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="UNBOND_REASON_REMOTE_AUTH_CANCELED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>UNBOND_REASON_REMOTE_AUTH_CANCELED</h4> +<pre>public static final int UNBOND_REASON_REMOTE_AUTH_CANCELED</pre> +<div class="block">A bond attempt failed because we received an Authentication Cancel by remote end.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.UNBOND_REASON_REMOTE_AUTH_CANCELED">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_SUCCESS"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_SUCCESS</h4> +<pre>public static final int GATT_SUCCESS</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_SUCCESS">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_INVALID_HANDLE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_INVALID_HANDLE</h4> +<pre>public static final int GATT_INVALID_HANDLE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_INVALID_HANDLE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_READ_NOT_PERMIT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_READ_NOT_PERMIT</h4> +<pre>public static final int GATT_READ_NOT_PERMIT</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_READ_NOT_PERMIT">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_WRITE_NOT_PERMIT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_WRITE_NOT_PERMIT</h4> +<pre>public static final int GATT_WRITE_NOT_PERMIT</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_WRITE_NOT_PERMIT">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_INVALID_PDU"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_INVALID_PDU</h4> +<pre>public static final int GATT_INVALID_PDU</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_INVALID_PDU">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_INSUF_AUTHENTICATION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_INSUF_AUTHENTICATION</h4> +<pre>public static final int GATT_INSUF_AUTHENTICATION</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_INSUF_AUTHENTICATION">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_REQ_NOT_SUPPORTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_REQ_NOT_SUPPORTED</h4> +<pre>public static final int GATT_REQ_NOT_SUPPORTED</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_NOT_SUPPORTED">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_INVALID_OFFSET"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_INVALID_OFFSET</h4> +<pre>public static final int GATT_INVALID_OFFSET</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_INVALID_OFFSET">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_INSUF_AUTHORIZATION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_INSUF_AUTHORIZATION</h4> +<pre>public static final int GATT_INSUF_AUTHORIZATION</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_INSUF_AUTHORIZATION">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_PREPARE_Q_FULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_PREPARE_Q_FULL</h4> +<pre>public static final int GATT_PREPARE_Q_FULL</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_PREPARE_Q_FULL">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_NOT_FOUND"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_NOT_FOUND</h4> +<pre>public static final int GATT_NOT_FOUND</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_NOT_FOUND">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_NOT_LONG"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_NOT_LONG</h4> +<pre>public static final int GATT_NOT_LONG</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_NOT_LONG">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_INSUF_KEY_SIZE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_INSUF_KEY_SIZE</h4> +<pre>public static final int GATT_INSUF_KEY_SIZE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_INSUF_KEY_SIZE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_INVALID_ATTR_LEN"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_INVALID_ATTR_LEN</h4> +<pre>public static final int GATT_INVALID_ATTR_LEN</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_INVALID_ATTR_LEN">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_ERR_UNLIKELY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_ERR_UNLIKELY</h4> +<pre>public static final int GATT_ERR_UNLIKELY</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_ERR_UNLIKELY">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_INSUF_ENCRYPTION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_INSUF_ENCRYPTION</h4> +<pre>public static final int GATT_INSUF_ENCRYPTION</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_INSUF_ENCRYPTION">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_UNSUPPORT_GRP_TYPE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_UNSUPPORT_GRP_TYPE</h4> +<pre>public static final int GATT_UNSUPPORT_GRP_TYPE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_UNSUPPORT_GRP_TYPE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_INSUF_RESOURCE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_INSUF_RESOURCE</h4> +<pre>public static final int GATT_INSUF_RESOURCE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_INSUF_RESOURCE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_ILLEGAL_PARAMETER"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_ILLEGAL_PARAMETER</h4> +<pre>public static final int GATT_ILLEGAL_PARAMETER</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_ILLEGAL_PARAMETER">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_NO_RESOURCES"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_NO_RESOURCES</h4> +<pre>public static final int GATT_NO_RESOURCES</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_NO_RESOURCES">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_INTERNAL_ERROR"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_INTERNAL_ERROR</h4> +<pre>public static final int GATT_INTERNAL_ERROR</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_INTERNAL_ERROR">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_WRONG_STATE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_WRONG_STATE</h4> +<pre>public static final int GATT_WRONG_STATE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_WRONG_STATE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_DB_FULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_DB_FULL</h4> +<pre>public static final int GATT_DB_FULL</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_DB_FULL">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_BUSY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_BUSY</h4> +<pre>public static final int GATT_BUSY</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_BUSY">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_ERROR"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_ERROR</h4> +<pre>public static final int GATT_ERROR</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_ERROR">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_CMD_STARTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_CMD_STARTED</h4> +<pre>public static final int GATT_CMD_STARTED</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_CMD_STARTED">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_PENDING"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_PENDING</h4> +<pre>public static final int GATT_PENDING</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_PENDING">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_AUTH_FAIL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_AUTH_FAIL</h4> +<pre>public static final int GATT_AUTH_FAIL</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_AUTH_FAIL">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_MORE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_MORE</h4> +<pre>public static final int GATT_MORE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_MORE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_INVALID_CFG"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_INVALID_CFG</h4> +<pre>public static final int GATT_INVALID_CFG</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_INVALID_CFG">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_SERVICE_STARTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_SERVICE_STARTED</h4> +<pre>public static final int GATT_SERVICE_STARTED</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_SERVICE_STARTED">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_ENCRYPED_MITM"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_ENCRYPED_MITM</h4> +<pre>public static final int GATT_ENCRYPED_MITM</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_ENCRYPED_MITM">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_ENCRYPED_NO_MITM"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_ENCRYPED_NO_MITM</h4> +<pre>public static final int GATT_ENCRYPED_NO_MITM</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_ENCRYPED_NO_MITM">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_NOT_ENCRYPTED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_NOT_ENCRYPTED</h4> +<pre>public static final int GATT_NOT_ENCRYPTED</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_NOT_ENCRYPTED">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_RSP_ERROR"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_RSP_ERROR</h4> +<pre>public static final int GATT_RSP_ERROR</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_ERROR">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_REQ_MTU"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_REQ_MTU</h4> +<pre>public static final int GATT_REQ_MTU</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_MTU">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_RSP_MTU"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_RSP_MTU</h4> +<pre>public static final int GATT_RSP_MTU</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_MTU">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_REQ_FIND_INFO"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_REQ_FIND_INFO</h4> +<pre>public static final int GATT_REQ_FIND_INFO</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_FIND_INFO">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_RSP_FIND_INFO"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_RSP_FIND_INFO</h4> +<pre>public static final int GATT_RSP_FIND_INFO</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_FIND_INFO">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_REQ_FIND_TYPE_VALUE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_REQ_FIND_TYPE_VALUE</h4> +<pre>public static final int GATT_REQ_FIND_TYPE_VALUE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_FIND_TYPE_VALUE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_RSP_FIND_TYPE_VALUE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_RSP_FIND_TYPE_VALUE</h4> +<pre>public static final int GATT_RSP_FIND_TYPE_VALUE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_FIND_TYPE_VALUE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_REQ_READ_BY_TYPE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_REQ_READ_BY_TYPE</h4> +<pre>public static final int GATT_REQ_READ_BY_TYPE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_READ_BY_TYPE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_RSP_READ_BY_TYPE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_RSP_READ_BY_TYPE</h4> +<pre>public static final int GATT_RSP_READ_BY_TYPE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_READ_BY_TYPE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_REQ_READ"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_REQ_READ</h4> +<pre>public static final int GATT_REQ_READ</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_READ">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_RSP_READ"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_RSP_READ</h4> +<pre>public static final int GATT_RSP_READ</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_READ">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_REQ_READ_BLOB"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_REQ_READ_BLOB</h4> +<pre>public static final int GATT_REQ_READ_BLOB</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_READ_BLOB">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_RSP_READ_BLOB"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_RSP_READ_BLOB</h4> +<pre>public static final int GATT_RSP_READ_BLOB</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_READ_BLOB">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_REQ_READ_MULTI"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_REQ_READ_MULTI</h4> +<pre>public static final int GATT_REQ_READ_MULTI</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_READ_MULTI">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_RSP_READ_MULTI"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_RSP_READ_MULTI</h4> +<pre>public static final int GATT_RSP_READ_MULTI</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_READ_MULTI">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_REQ_READ_BY_GRP_TYPE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_REQ_READ_BY_GRP_TYPE</h4> +<pre>public static final int GATT_REQ_READ_BY_GRP_TYPE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_READ_BY_GRP_TYPE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_RSP_READ_BY_GRP_TYPE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_RSP_READ_BY_GRP_TYPE</h4> +<pre>public static final int GATT_RSP_READ_BY_GRP_TYPE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_READ_BY_GRP_TYPE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_REQ_WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_REQ_WRITE</h4> +<pre>public static final int GATT_REQ_WRITE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_WRITE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_RSP_WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_RSP_WRITE</h4> +<pre>public static final int GATT_RSP_WRITE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_WRITE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_CMD_WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_CMD_WRITE</h4> +<pre>public static final int GATT_CMD_WRITE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_CMD_WRITE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_REQ_PREPARE_WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_REQ_PREPARE_WRITE</h4> +<pre>public static final int GATT_REQ_PREPARE_WRITE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_PREPARE_WRITE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_RSP_PREPARE_WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_RSP_PREPARE_WRITE</h4> +<pre>public static final int GATT_RSP_PREPARE_WRITE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_PREPARE_WRITE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_REQ_EXEC_WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_REQ_EXEC_WRITE</h4> +<pre>public static final int GATT_REQ_EXEC_WRITE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_EXEC_WRITE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_RSP_EXEC_WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_RSP_EXEC_WRITE</h4> +<pre>public static final int GATT_RSP_EXEC_WRITE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_EXEC_WRITE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_HANDLE_VALUE_NOTIF"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_HANDLE_VALUE_NOTIF</h4> +<pre>public static final int GATT_HANDLE_VALUE_NOTIF</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_HANDLE_VALUE_NOTIF">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_HANDLE_VALUE_IND"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_HANDLE_VALUE_IND</h4> +<pre>public static final int GATT_HANDLE_VALUE_IND</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_HANDLE_VALUE_IND">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_HANDLE_VALUE_CONF"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_HANDLE_VALUE_CONF</h4> +<pre>public static final int GATT_HANDLE_VALUE_CONF</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_HANDLE_VALUE_CONF">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_SIGN_CMD_WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_SIGN_CMD_WRITE</h4> +<pre>public static final int GATT_SIGN_CMD_WRITE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_SIGN_CMD_WRITE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_OP_CODE_MAX"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GATT_OP_CODE_MAX</h4> +<pre>public static final int GATT_OP_CODE_MAX</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_OP_CODE_MAX">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GATT_CONN_UNKNOWN"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>GATT_CONN_UNKNOWN</h4> +<pre>public static final int GATT_CONN_UNKNOWN</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../constant-values.html#com.idevicesinc.sweetblue.BleStatuses.GATT_CONN_UNKNOWN">Constant Field Values</a></dd> +</dl> +</li> +</ul> +</li> +</ul> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="BleStatuses--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BleStatuses</h4> +<pre>public BleStatuses()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleServices.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleStatuses.html" target="_top">Frames</a></li> +<li><a href="BleStatuses.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleTask.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleTask.html new file mode 100644 index 0000000000000000000000000000000000000000..232d9e62022f92391b3f23caaa2150d9953fd651 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleTask.html @@ -0,0 +1,733 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleTask (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleTask (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleTask.html" target="_top">Frames</a></li> +<li><a href="BleTask.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleTask" class="title">Enum BleTask</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleTask</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a>></dd> +</dl> +<hr> +<br> +<pre>public enum <span class="typeNameLabel">BleTask</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a>></pre> +<div class="block">Under the hood, SweetBlue uses a priority task queue to serialize all interaction with the native BLE stack. + This enumeration represents all the tasks that are used and lets you control various timing options in + <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a>, for example <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter"><code>BleNodeConfig.taskTimeoutRequestFilter</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#ADD_SERVICE">ADD_SERVICE</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>BleServer.addService(BleService, BleServer.ServiceAddListener)</code></a> or overloads.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#BOND">BOND</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>BleDevice.bond()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDING"><code>BleDeviceState.BONDING</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#CONNECT">CONNECT</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> and its several overloads.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#CONNECT_SERVER">CONNECT_SERVER</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-"><code>BleServer.connect(String)</code></a> or overloads.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#DISCONNECT">DISCONNECT</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disconnect--"><code>BleDevice.disconnect()</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#DISCONNECT_SERVER">DISCONNECT_SERVER</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleServer.html#disconnect-java.lang.String-"><code>BleServer.disconnect(String)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#DISCOVER_SERVICES">DISCOVER_SERVICES</a></span></code> +<div class="block">Associated with discovering services after a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> becomes <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#READ">READ</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(java.util.UUID, com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#READ_DESCRIPTOR">READ_DESCRIPTOR</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.readDescriptor(UUID, UUID, BleDevice.ReadWriteListener)</code></a> or overloads.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#READ_RSSI">READ_RSSI</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi--"><code>BleDevice.readRssi()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-"><code>BleDevice.startRssiPoll(com.idevicesinc.sweetblue.utils.Interval)</code></a> (and overloads thereof).</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#RELIABLE_WRITE">RELIABLE_WRITE</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_execute--"><code>BleDevice.reliableWrite_execute()</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#RESOLVE_CRASHES">RESOLVE_CRASHES</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#enableCrashResolver"><code>BleManagerConfig.enableCrashResolver</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#SEND_NOTIFICATION">SEND_NOTIFICATION</a></span></code> +<div class="block">Associated with sending a notification to a remote client through <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendNotification(String, UUID, UUID, FutureData, BleServer.OutgoingListener)</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendIndication(String, UUID, UUID, FutureData, BleServer.OutgoingListener)</code></a> overloads.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#SEND_READ_WRITE_RESPONSE">SEND_READ_WRITE_RESPONSE</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess--"><code>BleServer.IncomingListener.Please.respondWithSuccess()</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithError-int-"><code>BleServer.IncomingListener.Please.respondWithError(int)</code></a>, + or various other static methods of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener.Please</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#SET_CONNECTION_PRIORITY">SET_CONNECTION_PRIORITY</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setConnectionPriority(BleConnectionPriority, BleDevice.ReadWriteListener)</code></a> or overloads.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#SET_MTU">SET_MTU</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-"><code>BleDevice.setMtu(int)</code></a> or overloads.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#START_ADVERTISING">START_ADVERTISING</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>BleServer.startAdvertising(BleAdvertisingPacket, BleServer.AdvertisingListener)</code></a></div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#TOGGLE_NOTIFY">TOGGLE_NOTIFY</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(java.util.UUID, com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)</code></a> and + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.disableNotify(java.util.UUID, com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#TURN_BLE_OFF">TURN_BLE_OFF</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOff--"><code>BleManager.turnOff()</code></a></div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#TURN_BLE_ON">TURN_BLE_ON</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOn--"><code>BleManager.turnOn()</code></a></div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#UNBOND">UNBOND</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#unbond--"><code>BleDevice.unbond()</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#WRITE">WRITE</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.write(java.util.UUID, byte[], com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#WRITE_DESCRIPTOR">WRITE_DESCRIPTOR</a></span></code> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.writeDescriptor(UUID, UUID, byte[], BleDevice.ReadWriteListener)</code></a> or overloads.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#isDeviceSpecific--">isDeviceSpecific</a></span>()</code> +<div class="block">Returns whether <code>this</code> is associated with a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#isManagerSpecific--">isManagerSpecific</a></span>()</code> +<div class="block">Returns whether <code>this</code> is associated with <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#isServerSpecific--">isServerSpecific</a></span>()</code> +<div class="block">Returns whether <code>this</code> is associated with a <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#usesCharUuid--">usesCharUuid</a></span>()</code> +<div class="block">Returns <code>true</code> if the task can have a characteristic UUID associated with it - for now <a href="../../../com/idevicesinc/sweetblue/BleTask.html#READ"><code>READ</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleTask.html#WRITE"><code>WRITE</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleTask.html#TOGGLE_NOTIFY"><code>TOGGLE_NOTIFY</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleTask.html#READ_DESCRIPTOR"><code>READ_DESCRIPTOR</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleTask.html#WRITE_DESCRIPTOR"><code>WRITE_DESCRIPTOR</code></a>.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTask.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="TURN_BLE_OFF"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>TURN_BLE_OFF</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> TURN_BLE_OFF</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOff--"><code>BleManager.turnOff()</code></a></div> +</li> +</ul> +<a name="TURN_BLE_ON"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>TURN_BLE_ON</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> TURN_BLE_ON</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleManager.html#turnOn--"><code>BleManager.turnOn()</code></a></div> +</li> +</ul> +<a name="RESOLVE_CRASHES"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>RESOLVE_CRASHES</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> RESOLVE_CRASHES</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html#enableCrashResolver"><code>BleManagerConfig.enableCrashResolver</code></a>.</div> +</li> +</ul> +<a name="CONNECT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CONNECT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> CONNECT</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> and its several overloads.</div> +</li> +</ul> +<a name="DISCONNECT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DISCONNECT</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> DISCONNECT</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disconnect--"><code>BleDevice.disconnect()</code></a>.</div> +</li> +</ul> +<a name="BOND"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BOND</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> BOND</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>BleDevice.bond()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#BONDING"><code>BleDeviceState.BONDING</code></a>.</div> +</li> +</ul> +<a name="UNBOND"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>UNBOND</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> UNBOND</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#unbond--"><code>BleDevice.unbond()</code></a>.</div> +</li> +</ul> +<a name="READ"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>READ</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> READ</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(java.util.UUID, com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WRITE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> WRITE</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.write(java.util.UUID, byte[], com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="TOGGLE_NOTIFY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>TOGGLE_NOTIFY</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> TOGGLE_NOTIFY</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(java.util.UUID, com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)</code></a> and + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.disableNotify(java.util.UUID, com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)</code></a>.</div> +</li> +</ul> +<a name="READ_RSSI"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>READ_RSSI</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> READ_RSSI</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi--"><code>BleDevice.readRssi()</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-"><code>BleDevice.startRssiPoll(com.idevicesinc.sweetblue.utils.Interval)</code></a> (and overloads thereof).</div> +</li> +</ul> +<a name="DISCOVER_SERVICES"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DISCOVER_SERVICES</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> DISCOVER_SERVICES</pre> +<div class="block">Associated with discovering services after a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> becomes <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>.</div> +</li> +</ul> +<a name="SEND_NOTIFICATION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SEND_NOTIFICATION</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> SEND_NOTIFICATION</pre> +<div class="block">Associated with sending a notification to a remote client through <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendNotification(String, UUID, UUID, FutureData, BleServer.OutgoingListener)</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendIndication(String, UUID, UUID, FutureData, BleServer.OutgoingListener)</code></a> overloads.</div> +</li> +</ul> +<a name="CONNECT_SERVER"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CONNECT_SERVER</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> CONNECT_SERVER</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-"><code>BleServer.connect(String)</code></a> or overloads.</div> +</li> +</ul> +<a name="DISCONNECT_SERVER"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DISCONNECT_SERVER</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> DISCONNECT_SERVER</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleServer.html#disconnect-java.lang.String-"><code>BleServer.disconnect(String)</code></a>.</div> +</li> +</ul> +<a name="SEND_READ_WRITE_RESPONSE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SEND_READ_WRITE_RESPONSE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> SEND_READ_WRITE_RESPONSE</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess--"><code>BleServer.IncomingListener.Please.respondWithSuccess()</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithError-int-"><code>BleServer.IncomingListener.Please.respondWithError(int)</code></a>, + or various other static methods of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener.Please</code></a>.</div> +</li> +</ul> +<a name="ADD_SERVICE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ADD_SERVICE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> ADD_SERVICE</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>BleServer.addService(BleService, BleServer.ServiceAddListener)</code></a> or overloads.</div> +</li> +</ul> +<a name="SET_MTU"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SET_MTU</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> SET_MTU</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-"><code>BleDevice.setMtu(int)</code></a> or overloads.</div> +</li> +</ul> +<a name="SET_CONNECTION_PRIORITY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SET_CONNECTION_PRIORITY</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> SET_CONNECTION_PRIORITY</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setConnectionPriority(BleConnectionPriority, BleDevice.ReadWriteListener)</code></a> or overloads.</div> +</li> +</ul> +<a name="READ_DESCRIPTOR"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>READ_DESCRIPTOR</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> READ_DESCRIPTOR</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.readDescriptor(UUID, UUID, BleDevice.ReadWriteListener)</code></a> or overloads.</div> +</li> +</ul> +<a name="WRITE_DESCRIPTOR"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>WRITE_DESCRIPTOR</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> WRITE_DESCRIPTOR</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.writeDescriptor(UUID, UUID, byte[], BleDevice.ReadWriteListener)</code></a> or overloads.</div> +</li> +</ul> +<a name="RELIABLE_WRITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>RELIABLE_WRITE</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> RELIABLE_WRITE</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_execute--"><code>BleDevice.reliableWrite_execute()</code></a>.</div> +</li> +</ul> +<a name="START_ADVERTISING"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>START_ADVERTISING</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> START_ADVERTISING</pre> +<div class="block">Associated with <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>BleServer.startAdvertising(BleAdvertisingPacket, BleServer.AdvertisingListener)</code></a></div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleTask c : BleTask.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="isDeviceSpecific--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isDeviceSpecific</h4> +<pre>public boolean isDeviceSpecific()</pre> +<div class="block">Returns whether <code>this</code> is associated with a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>.</div> +</li> +</ul> +<a name="isManagerSpecific--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isManagerSpecific</h4> +<pre>public boolean isManagerSpecific()</pre> +<div class="block">Returns whether <code>this</code> is associated with <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>.</div> +</li> +</ul> +<a name="isServerSpecific--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isServerSpecific</h4> +<pre>public boolean isServerSpecific()</pre> +<div class="block">Returns whether <code>this</code> is associated with a <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>.</div> +</li> +</ul> +<a name="usesCharUuid--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>usesCharUuid</h4> +<pre>public boolean usesCharUuid()</pre> +<div class="block">Returns <code>true</code> if the task can have a characteristic UUID associated with it - for now <a href="../../../com/idevicesinc/sweetblue/BleTask.html#READ"><code>READ</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleTask.html#WRITE"><code>WRITE</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleTask.html#TOGGLE_NOTIFY"><code>TOGGLE_NOTIFY</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleTask.html#READ_DESCRIPTOR"><code>READ_DESCRIPTOR</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleTask.html#WRITE_DESCRIPTOR"><code>WRITE_DESCRIPTOR</code></a>.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleTask.html" target="_top">Frames</a></li> +<li><a href="BleTask.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleTransaction.Auth.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleTransaction.Auth.html new file mode 100644 index 0000000000000000000000000000000000000000..e32899ade674d933dc6cb35e22fc013296d69180 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleTransaction.Auth.html @@ -0,0 +1,267 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleTransaction.Auth (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleTransaction.Auth (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleTransaction.Auth.html" target="_top">Frames</a></li> +<li><a href="BleTransaction.Auth.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction">Nested</a> | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleTransaction.Auth" class="title">Class BleTransaction.Auth</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">com.idevicesinc.sweetblue.BleTransaction</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleTransaction.Auth</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></dd> +</dl> +<hr> +<br> +<pre>public abstract static class <span class="typeNameLabel">BleTransaction.Auth</span> +extends <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></pre> +<div class="block">Tagging subclass to force type-discrepancy for various <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> overloads.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Ota</a></code></li> +</ul> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html#Auth--">Auth</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--">fail</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#getDevice--">getDevice</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#getTime--">getTime</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#isRunning--">isRunning</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#needsAtomicity--">needsAtomicity</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#onEnd-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleTransaction.EndReason-">onEnd</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#start-com.idevicesinc.sweetblue.BleDevice-">start</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#succeed--">succeed</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#update-double-">update</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="Auth--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>Auth</h4> +<pre>public Auth()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleTransaction.Auth.html" target="_top">Frames</a></li> +<li><a href="BleTransaction.Auth.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction">Nested</a> | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleTransaction.EndReason.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleTransaction.EndReason.html new file mode 100644 index 0000000000000000000000000000000000000000..c6c4d99dc57c238a7cc326de322dcda40337d1cf --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleTransaction.EndReason.html @@ -0,0 +1,367 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleTransaction.EndReason (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleTransaction.EndReason (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleTransaction.EndReason.html" target="_top">Frames</a></li> +<li><a href="BleTransaction.EndReason.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Enum BleTransaction.EndReason" class="title">Enum BleTransaction.EndReason</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleTransaction.EndReason</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a>></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></dd> +</dl> +<hr> +<br> +<pre>protected static enum <span class="typeNameLabel">BleTransaction.EndReason</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a>></pre> +<div class="block">Values are passed to <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#onEnd-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleTransaction.EndReason-"><code>BleTransaction.onEnd(BleDevice, EndReason)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html#CANCELLED">CANCELLED</a></span></code> +<div class="block">The transaction's <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> became <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a> + or/and <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> went <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html#FAILED">FAILED</a></span></code> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--"><code>BleTransaction.fail()</code></a> was called.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html#SUCCEEDED">SUCCEEDED</a></span></code> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#succeed--"><code>BleTransaction.succeed()</code></a> was called.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="SUCCEEDED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SUCCEEDED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a> SUCCEEDED</pre> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#succeed--"><code>BleTransaction.succeed()</code></a> was called.</div> +</li> +</ul> +<a name="CANCELLED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CANCELLED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a> CANCELLED</pre> +<div class="block">The transaction's <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> became <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a> + or/and <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> went <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>.</div> +</li> +</ul> +<a name="FAILED"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>FAILED</h4> +<pre>public static final <a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a> FAILED</pre> +<div class="block"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--"><code>BleTransaction.fail()</code></a> was called.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BleTransaction.EndReason c : BleTransaction.EndReason.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleTransaction.EndReason.html" target="_top">Frames</a></li> +<li><a href="BleTransaction.EndReason.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleTransaction.Init.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleTransaction.Init.html new file mode 100644 index 0000000000000000000000000000000000000000..3f6c67c7459365e65d7af592e8fd5c738f2414dd --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleTransaction.Init.html @@ -0,0 +1,267 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleTransaction.Init (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleTransaction.Init (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleTransaction.Init.html" target="_top">Frames</a></li> +<li><a href="BleTransaction.Init.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction">Nested</a> | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleTransaction.Init" class="title">Class BleTransaction.Init</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">com.idevicesinc.sweetblue.BleTransaction</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleTransaction.Init</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></dd> +</dl> +<hr> +<br> +<pre>public abstract static class <span class="typeNameLabel">BleTransaction.Init</span> +extends <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></pre> +<div class="block">Tagging subclass to force type-discrepancy for various <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> overloads.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Ota</a></code></li> +</ul> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html#Init--">Init</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--">fail</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#getDevice--">getDevice</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#getTime--">getTime</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#isRunning--">isRunning</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#needsAtomicity--">needsAtomicity</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#onEnd-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleTransaction.EndReason-">onEnd</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#start-com.idevicesinc.sweetblue.BleDevice-">start</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#succeed--">succeed</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#update-double-">update</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="Init--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>Init</h4> +<pre>public Init()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleTransaction.Init.html" target="_top">Frames</a></li> +<li><a href="BleTransaction.Init.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction">Nested</a> | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleTransaction.Ota.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleTransaction.Ota.html new file mode 100644 index 0000000000000000000000000000000000000000..0fda8664e2b591ba79eede17289030f2a586e204 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleTransaction.Ota.html @@ -0,0 +1,271 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleTransaction.Ota (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleTransaction.Ota (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleTransaction.Ota.html" target="_top">Frames</a></li> +<li><a href="BleTransaction.Ota.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction">Nested</a> | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleTransaction.Ota" class="title">Class BleTransaction.Ota</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">com.idevicesinc.sweetblue.BleTransaction</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleTransaction.Ota</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Direct Known Subclasses:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></dd> +</dl> +<hr> +<br> +<pre>public abstract static class <span class="typeNameLabel">BleTransaction.Ota</span> +extends <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></pre> +<div class="block">Tagging subclass to force type-correctness for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#performOta-com.idevicesinc.sweetblue.BleTransaction.Ota-"><code>BleDevice.performOta(BleTransaction.Ota)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Ota</a></code></li> +</ul> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Ota.html#Ota--">Ota</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--">fail</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#getDevice--">getDevice</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#getTime--">getTime</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#isRunning--">isRunning</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#needsAtomicity--">needsAtomicity</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#onEnd-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleTransaction.EndReason-">onEnd</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#start-com.idevicesinc.sweetblue.BleDevice-">start</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#succeed--">succeed</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#update-double-">update</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="Ota--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>Ota</h4> +<pre>public Ota()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleTransaction.Ota.html" target="_top">Frames</a></li> +<li><a href="BleTransaction.Ota.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction">Nested</a> | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleTransaction.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleTransaction.html new file mode 100644 index 0000000000000000000000000000000000000000..4d4442a22bf02df67790ce97ae40c6d94d2fddd8 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleTransaction.html @@ -0,0 +1,485 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleTransaction (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleTransaction (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":6,"i7":10,"i8":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleTransaction.html" target="_top">Frames</a></li> +<li><a href="BleTransaction.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleTransaction" class="title">Class BleTransaction</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleTransaction</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Direct Known Subclasses:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Ota</a></dd> +</dl> +<hr> +<br> +<pre>public abstract class <span class="typeNameLabel">BleTransaction</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Abstract base class for transactions passed to various methods of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>. Transactions provide a convenient way + to encapsulate a series of reads and writes for things like authentication handshakes, firmware updates, etc. You optionally + provide subclass instances to the various overloads of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a>. Normally in your <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#start-com.idevicesinc.sweetblue.BleDevice-"><code>start(BleDevice)</code></a> + method you then do some reads/writes and call <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#succeed--"><code>succeed()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--"><code>fail()</code></a> depending on the <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.Status</code></a> returned. + <br><br> + NOTE: Nested subclasses here are only meant for tagging to enforce type-correctness and don't yet provide any differing contracts or implementations.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleDevice.html#performOta-com.idevicesinc.sweetblue.BleTransaction.Ota-"><code>BleDevice.performOta(BleTransaction.Ota)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>BleDevice.connect(BleTransaction.Auth)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Init)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Auth, BleTransaction.Init)</code></a>, +<a href="../../../com/idevicesinc/sweetblue/BleDevice.html#performTransaction-com.idevicesinc.sweetblue.BleTransaction-"><code>BleDevice.performTransaction(BleTransaction)</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Class and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a></span></code> +<div class="block">Tagging subclass to force type-discrepancy for various <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> overloads.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>protected static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a></span></code> +<div class="block">Values are passed to <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#onEnd-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleTransaction.EndReason-"><code>onEnd(BleDevice, EndReason)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a></span></code> +<div class="block">Tagging subclass to force type-discrepancy for various <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> overloads.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Ota</a></span></code> +<div class="block">Tagging subclass to force type-correctness for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#performOta-com.idevicesinc.sweetblue.BleTransaction.Ota-"><code>BleDevice.performOta(BleTransaction.Ota)</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#BleTransaction--">BleTransaction</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>protected boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--">fail</a></span>()</code> +<div class="block">Call this from subclasses to indicate that the transaction has failed.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#getDevice--">getDevice</a></span>()</code> +<div class="block">Returns the device this transaction is running on.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>protected double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#getTime--">getTime</a></span>()</code> +<div class="block">Returns the total time that this transaction has been running.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#isRunning--">isRunning</a></span>()</code> +<div class="block">Returns whether the transaction is currently running.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>protected boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#needsAtomicity--">needsAtomicity</a></span>()</code> +<div class="block">Default is <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true#FALSE" title="class or interface in java.lang"><code>Boolean.FALSE</code></a>.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>protected void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#onEnd-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleTransaction.EndReason-">onEnd</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device, + <a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a> reason)</code> +<div class="block">Called when a transaction ends, either due to the transaction itself finishing itself + through <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--"><code>fail()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#succeed--"><code>succeed()</code></a>, or from the library implicitly ending + the transaction, for example if <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#getDevice--"><code>getDevice()</code></a> becomes <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>protected abstract void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#start-com.idevicesinc.sweetblue.BleDevice-">start</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</code> +<div class="block">Implement this method to kick off your transaction.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>protected boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#succeed--">succeed</a></span>()</code> +<div class="block">Call this from subclasses to indicate that the transaction has succeeded.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>protected void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#update-double-">update</a></span>(double timeStep)</code> +<div class="block">Optional convenience method to override if you want to do periodic updates or time-based calculations.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="BleTransaction--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BleTransaction</h4> +<pre>public BleTransaction()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="getDevice--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevice</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getDevice()</pre> +<div class="block">Returns the device this transaction is running on.</div> +</li> +</ul> +<a name="start-com.idevicesinc.sweetblue.BleDevice-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>start</h4> +<pre>protected abstract void start(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</pre> +<div class="block">Implement this method to kick off your transaction. Usually you kick off some reads/writes inside + your override and call <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#succeed--"><code>succeed()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--"><code>fail()</code></a> depending on how things went.</div> +</li> +</ul> +<a name="onEnd-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleTransaction.EndReason-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>onEnd</h4> +<pre>protected void onEnd(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device, + <a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a> reason)</pre> +<div class="block">Called when a transaction ends, either due to the transaction itself finishing itself + through <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--"><code>fail()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#succeed--"><code>succeed()</code></a>, or from the library implicitly ending + the transaction, for example if <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#getDevice--"><code>getDevice()</code></a> becomes <a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>. + + Override this method to wrap up any loose ends or notify UI or what have you.</div> +</li> +</ul> +<a name="update-double-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>update</h4> +<pre>protected void update(double timeStep)</pre> +<div class="block">Optional convenience method to override if you want to do periodic updates or time-based calculations.</div> +</li> +</ul> +<a name="isRunning--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isRunning</h4> +<pre>public boolean isRunning()</pre> +<div class="block">Returns whether the transaction is currently running.</div> +</li> +</ul> +<a name="fail--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fail</h4> +<pre>protected final boolean fail()</pre> +<div class="block">Call this from subclasses to indicate that the transaction has failed. Usually you call this in your + <a href="../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html#onEvent-T_Event-"><code>GenericListener_Void.onEvent(Event)</code></a> + when <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.Status</code></a> is something other than <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#SUCCESS"><code>BleDevice.ReadWriteListener.Status.SUCCESS</code></a>. If you do so, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#txnFailReason--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.txnFailReason()</code></a> will be set.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><code>false</code> if the transaction wasn't running to begin with.</dd> +</dl> +</li> +</ul> +<a name="succeed--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>succeed</h4> +<pre>protected final boolean succeed()</pre> +<div class="block">Call this from subclasses to indicate that the transaction has succeeded.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true#FALSE" title="class or interface in java.lang"><code>Boolean.FALSE</code></a> if the transaction wasn't running to begin with.</dd> +</dl> +</li> +</ul> +<a name="getTime--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getTime</h4> +<pre>protected double getTime()</pre> +<div class="block">Returns the total time that this transaction has been running. You can use this in <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#update-double-"><code>update(double)</code></a> + for example to <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--"><code>fail()</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#succeed--"><code>succeed()</code></a> a transaction that has taken longer than a certain + amount of time.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#update-double-"><code>update(double)</code></a></dd> +</dl> +</li> +</ul> +<a name="needsAtomicity--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>needsAtomicity</h4> +<pre>protected boolean needsAtomicity()</pre> +<div class="block">Default is <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true#FALSE" title="class or interface in java.lang"><code>Boolean.FALSE</code></a>. Optionally override if you want your transaction's reads/writes to execute "atomically". + This means that if you're connected to multiple devices only the reads/writes of this transaction's device + will be executed until this transaction is finished.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleTransaction.html" target="_top">Frames</a></li> +<li><a href="BleTransaction.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html new file mode 100644 index 0000000000000000000000000000000000000000..d036ffb277ee3f04f52763e6ef7416dfc40a34f5 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html @@ -0,0 +1,277 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleWriteTransaction.FailListener.Please (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleWriteTransaction.FailListener.Please (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" target="_top">Frames</a></li> +<li><a href="BleWriteTransaction.FailListener.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleWriteTransaction.FailListener.Please" class="title">Class BleWriteTransaction.FailListener.Please</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleWriteTransaction.FailListener.Please</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleWriteTransaction.FailListener.Please</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Class used to dictate what should happen if a write fail happens. + Use static methods to specify what to do on a write fail; <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html#next--"><code>next()</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html#retry--"><code>retry()</code></a>, or + <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html#stop--"><code>stop()</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html#next--">next</a></span>()</code> +<div class="block">Tells the transaction to proceed to the next write in the queue, and ignore the one that failed.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html#retry--">retry</a></span>()</code> +<div class="block">Tells the transaction to retry the failed write again.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html#stop--">stop</a></span>()</code> +<div class="block">Stops the transaction, and clears all remaining writes from the queue.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="next--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>next</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener.Please</a> next()</pre> +<div class="block">Tells the transaction to proceed to the next write in the queue, and ignore the one that failed.</div> +</li> +</ul> +<a name="retry--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>retry</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener.Please</a> retry()</pre> +<div class="block">Tells the transaction to retry the failed write again.</div> +</li> +</ul> +<a name="stop--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>stop</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener.Please</a> stop()</pre> +<div class="block">Stops the transaction, and clears all remaining writes from the queue.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" target="_top">Frames</a></li> +<li><a href="BleWriteTransaction.FailListener.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html new file mode 100644 index 0000000000000000000000000000000000000000..99dde19e9921826ca2047ca455071b4cebe59d60 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html @@ -0,0 +1,250 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleWriteTransaction.FailListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleWriteTransaction.FailListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" target="_top">Frames</a></li> +<li><a href="BleWriteTransaction.FailListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleWriteTransaction.FailListener" class="title">Interface BleWriteTransaction.FailListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleWriteTransaction.FailListener</span></pre> +<div class="block">Interface for handling failures when writing. This also specifies how the transaction should + proceed on error.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue"><code>BleWriteTransaction.FailListener.Please</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener.Please</a></span></code> +<div class="block">Class used to dictate what should happen if a write fail happens.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html#onWriteFail-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent-">onWriteFail</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> e)</code> </td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onWriteFail-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onWriteFail</h4> +<pre><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener.Please</a> onWriteFail(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> e)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" target="_top">Frames</a></li> +<li><a href="BleWriteTransaction.FailListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html new file mode 100644 index 0000000000000000000000000000000000000000..81b662abca4836717508fed0dc8cc4425ec1fdf0 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html @@ -0,0 +1,260 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleWriteTransaction.WriteQueueListener.Please (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleWriteTransaction.WriteQueueListener.Please (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/DefaultLogger.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" target="_top">Frames</a></li> +<li><a href="BleWriteTransaction.WriteQueueListener.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleWriteTransaction.WriteQueueListener.Please" class="title">Class BleWriteTransaction.WriteQueueListener.Please</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleWriteTransaction.WriteQueueListener.Please</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue">BleWriteTransaction.WriteQueueListener</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BleWriteTransaction.WriteQueueListener.Please</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Class used to tell this <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleWriteTransaction</code></a> to either proceed to the next write, + or cancel this transaction.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.WriteQueueListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html#cancel--">cancel</a></span>()</code> +<div class="block">Cancels this <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleWriteTransaction</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.WriteQueueListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html#proceed--">proceed</a></span>()</code> +<div class="block">Proceed to the next write in the queue.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="proceed--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>proceed</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.WriteQueueListener.Please</a> proceed()</pre> +<div class="block">Proceed to the next write in the queue.</div> +</li> +</ul> +<a name="cancel--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>cancel</h4> +<pre>public static <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.WriteQueueListener.Please</a> cancel()</pre> +<div class="block">Cancels this <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleWriteTransaction</code></a>.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/DefaultLogger.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" target="_top">Frames</a></li> +<li><a href="BleWriteTransaction.WriteQueueListener.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html new file mode 100644 index 0000000000000000000000000000000000000000..f947018d2889a425feb2c7f6f1bd339154754eb2 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html @@ -0,0 +1,248 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleWriteTransaction.WriteQueueListener (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleWriteTransaction.WriteQueueListener (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" target="_top">Frames</a></li> +<li><a href="BleWriteTransaction.WriteQueueListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface BleWriteTransaction.WriteQueueListener" class="title">Interface BleWriteTransaction.WriteQueueListener</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BleWriteTransaction.WriteQueueListener</span></pre> +<div class="block">Interface for listening between each write made in the queue. This allows you to perform + operations between each write. You then supply <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html#proceed--"><code>BleWriteTransaction.WriteQueueListener.Please.proceed()</code></a> to continue the transaction, + or <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html#cancel--"><code>BleWriteTransaction.WriteQueueListener.Please.cancel()</code></a> to cancel the transaction.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.WriteQueueListener.Please</a></span></code> +<div class="block">Class used to tell this <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleWriteTransaction</code></a> to either proceed to the next write, + or cancel this transaction.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.WriteQueueListener.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html#onWriteComplete-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent-">onWriteComplete</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> e)</code> </td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onWriteComplete-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onWriteComplete</h4> +<pre><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.WriteQueueListener.Please</a> onWriteComplete(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> e)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" target="_top">Frames</a></li> +<li><a href="BleWriteTransaction.WriteQueueListener.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleWriteTransaction.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleWriteTransaction.html new file mode 100644 index 0000000000000000000000000000000000000000..817e183d8143fdfb84345e0ca17804151ba8b8ff --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/BleWriteTransaction.html @@ -0,0 +1,460 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>BleWriteTransaction (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleWriteTransaction (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleWriteTransaction.html" target="_top">Frames</a></li> +<li><a href="BleWriteTransaction.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class BleWriteTransaction" class="title">Class BleWriteTransaction</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">com.idevicesinc.sweetblue.BleTransaction</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue">com.idevicesinc.sweetblue.BleTransaction.Ota</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.BleWriteTransaction</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">BleWriteTransaction</span> +extends <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Ota</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Class and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener</a></span></code> +<div class="block">Interface for handling failures when writing.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue">BleWriteTransaction.WriteQueueListener</a></span></code> +<div class="block">Interface for listening between each write made in the queue.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Ota</a></code></li> +</ul> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html#BleWriteTransaction--">BleWriteTransaction</a></span>()</code> +<div class="block">Use this constructor if you don't plan on setting a <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleWriteTransaction.FailListener</code></a> to listen for + write fails in the queue.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html#BleWriteTransaction-com.idevicesinc.sweetblue.BleWriteTransaction.FailListener-">BleWriteTransaction</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener</a> failListener)</code> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html#BleWriteTransaction-com.idevicesinc.sweetblue.BleWriteTransaction.WriteQueueListener-com.idevicesinc.sweetblue.BleWriteTransaction.FailListener-"><code>BleWriteTransaction(WriteQueueListener, FailListener)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html#BleWriteTransaction-com.idevicesinc.sweetblue.BleWriteTransaction.WriteQueueListener-com.idevicesinc.sweetblue.BleWriteTransaction.FailListener-">BleWriteTransaction</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue">BleWriteTransaction.WriteQueueListener</a> writeListener, + <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener</a> failListener)</code> +<div class="block">Instantiate a new <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleWriteTransaction</code></a> with a <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleWriteTransaction.WriteQueueListener</code></a>, which + allows you to perform operations between each write in the queue, and a <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleWriteTransaction.FailListener</code></a> to + tell the Transaction what to do on a write failure.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html#add-com.idevicesinc.sweetblue.BleDevice.WriteBuilder-">add</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a> write)</code> +<div class="block">Add an <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.WriteBuilder</code></a> to the write queue.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html#add-java.util.UUID-byte:A-">add</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data)</code> +<div class="block">Add a write to the write queue.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html#add-java.util.UUID-java.util.UUID-byte:A-">add</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data)</code> +<div class="block">Add a write to the write queue.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html#addAll-java.util.Collection-">addAll</a></span>(<a href="http://d.android.com/reference/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a>> writes)</code> +<div class="block">Add a Collection of writes to the write queue.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html#remaining--">remaining</a></span>()</code> +<div class="block">Returns how many write operations are left in the queue.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>protected void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html#start-com.idevicesinc.sweetblue.BleDevice-">start</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</code> +<div class="block">Starts the transaction.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.BleTransaction"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></h3> +<code><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#fail--">fail</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#getDevice--">getDevice</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#getTime--">getTime</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#isRunning--">isRunning</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#needsAtomicity--">needsAtomicity</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#onEnd-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleTransaction.EndReason-">onEnd</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#succeed--">succeed</a>, <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#update-double-">update</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="BleWriteTransaction--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleWriteTransaction</h4> +<pre>public BleWriteTransaction()</pre> +<div class="block">Use this constructor if you don't plan on setting a <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleWriteTransaction.FailListener</code></a> to listen for + write fails in the queue. The transaction will abort if any writes fail.</div> +</li> +</ul> +<a name="BleWriteTransaction-com.idevicesinc.sweetblue.BleWriteTransaction.FailListener-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleWriteTransaction</h4> +<pre>public BleWriteTransaction(<a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener</a> failListener)</pre> +<div class="block">Overload of <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html#BleWriteTransaction-com.idevicesinc.sweetblue.BleWriteTransaction.WriteQueueListener-com.idevicesinc.sweetblue.BleWriteTransaction.FailListener-"><code>BleWriteTransaction(WriteQueueListener, FailListener)</code></a>. + Instantiate a new BleWriteTransaction with a <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleWriteTransaction.FailListener</code></a> to tell the transaction how + to proceed on write fails.</div> +</li> +</ul> +<a name="BleWriteTransaction-com.idevicesinc.sweetblue.BleWriteTransaction.WriteQueueListener-com.idevicesinc.sweetblue.BleWriteTransaction.FailListener-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BleWriteTransaction</h4> +<pre>public BleWriteTransaction(<a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue">BleWriteTransaction.WriteQueueListener</a> writeListener, + <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener</a> failListener)</pre> +<div class="block">Instantiate a new <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleWriteTransaction</code></a> with a <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleWriteTransaction.WriteQueueListener</code></a>, which + allows you to perform operations between each write in the queue, and a <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleWriteTransaction.FailListener</code></a> to + tell the Transaction what to do on a write failure.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="start-com.idevicesinc.sweetblue.BleDevice-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>start</h4> +<pre>protected void start(<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</pre> +<div class="block">Starts the transaction. If you override this method, be sure to call super.start(), so the writes + are actually performed.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#start-com.idevicesinc.sweetblue.BleDevice-">start</a></code> in class <code><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></code></dd> +</dl> +</li> +</ul> +<a name="add-com.idevicesinc.sweetblue.BleDevice.WriteBuilder-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a> add(<a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a> write)</pre> +<div class="block">Add an <a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.WriteBuilder</code></a> to the write queue. You can chain this method, to make it easier to add multiple + writes.</div> +</li> +</ul> +<a name="addAll-java.util.Collection-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>addAll</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a> addAll(<a href="http://d.android.com/reference/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a>> writes)</pre> +<div class="block">Add a Collection of writes to the write queue.</div> +</li> +</ul> +<a name="add-java.util.UUID-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a> add(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data)</pre> +<div class="block">Add a write to the write queue. You can chain this method, to make it easier to add multiple + writes.</div> +</li> +</ul> +<a name="add-java.util.UUID-java.util.UUID-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a> add(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + byte[] data)</pre> +<div class="block">Add a write to the write queue. You can chain this method, to make it easier to add multiple + writes.</div> +</li> +</ul> +<a name="remaining--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>remaining</h4> +<pre>public int remaining()</pre> +<div class="block">Returns how many write operations are left in the queue.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/BleWriteTransaction.html" target="_top">Frames</a></li> +<li><a href="BleWriteTransaction.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/DefaultLogger.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/DefaultLogger.html new file mode 100644 index 0000000000000000000000000000000000000000..253f13bbaeffcbce203c7af2fea3e8dd8d86a31d --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/DefaultLogger.html @@ -0,0 +1,282 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>DefaultLogger (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="DefaultLogger (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/DefaultLogger.html" target="_top">Frames</a></li> +<li><a href="DefaultLogger.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class DefaultLogger" class="title">Class DefaultLogger</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.DefaultLogger</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue">SweetLogger</a></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">DefaultLogger</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue">SweetLogger</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/DefaultLogger.html#DefaultLogger--">DefaultLogger</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/DefaultLogger.html#onLogEntry-int-java.lang.String-java.lang.String-">onLogEntry</a></span>(int level, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> tag, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="DefaultLogger--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>DefaultLogger</h4> +<pre>public DefaultLogger()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onLogEntry-int-java.lang.String-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onLogEntry</h4> +<pre>public void onLogEntry(int level, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> tag, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/SweetLogger.html#onLogEntry-int-java.lang.String-java.lang.String-">onLogEntry</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue">SweetLogger</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/DefaultLogger.html" target="_top">Frames</a></li> +<li><a href="DefaultLogger.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/PI_BleScanner.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/PI_BleScanner.html new file mode 100644 index 0000000000000000000000000000000000000000..085351b37aa747a010c82c840f7f71ab1e7b0f57 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/PI_BleScanner.html @@ -0,0 +1,279 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>PI_BleScanner (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="PI_BleScanner (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/PI_BleStatusHelper.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/PI_BleScanner.html" target="_top">Frames</a></li> +<li><a href="PI_BleScanner.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface PI_BleScanner" class="title">Interface PI_BleScanner</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public interface <span class="typeNameLabel">PI_BleScanner</span></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_BleScanner.html#startClassicDiscovery--">startClassicDiscovery</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_BleScanner.html#startLeScan-android.bluetooth.BluetoothAdapter.LeScanCallback-">startLeScan</a></span>(<a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.LeScanCallback.html?is-external=true" title="class or interface in android.bluetooth">BluetoothAdapter.LeScanCallback</a> callback)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_BleScanner.html#startLScan-int-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.compat.L_Util.ScanCallback-">startLScan</a></span>(int scanMode, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> delay, + <a href="../../../com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat">L_Util.ScanCallback</a> callback)</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_BleScanner.html#startMScan-int-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.compat.L_Util.ScanCallback-">startMScan</a></span>(int scanMode, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> delay, + <a href="../../../com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat">L_Util.ScanCallback</a> callback)</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_BleScanner.html#stopLeScan-android.bluetooth.BluetoothAdapter.LeScanCallback-">stopLeScan</a></span>(<a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.LeScanCallback.html?is-external=true" title="class or interface in android.bluetooth">BluetoothAdapter.LeScanCallback</a> callback)</code> </td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="startClassicDiscovery--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startClassicDiscovery</h4> +<pre>boolean startClassicDiscovery()</pre> +</li> +</ul> +<a name="startLScan-int-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.compat.L_Util.ScanCallback-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startLScan</h4> +<pre>void startLScan(int scanMode, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> delay, + <a href="../../../com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat">L_Util.ScanCallback</a> callback)</pre> +</li> +</ul> +<a name="startMScan-int-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.compat.L_Util.ScanCallback-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startMScan</h4> +<pre>void startMScan(int scanMode, + <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> delay, + <a href="../../../com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat">L_Util.ScanCallback</a> callback)</pre> +</li> +</ul> +<a name="startLeScan-android.bluetooth.BluetoothAdapter.LeScanCallback-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startLeScan</h4> +<pre>boolean startLeScan(<a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.LeScanCallback.html?is-external=true" title="class or interface in android.bluetooth">BluetoothAdapter.LeScanCallback</a> callback)</pre> +</li> +</ul> +<a name="stopLeScan-android.bluetooth.BluetoothAdapter.LeScanCallback-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>stopLeScan</h4> +<pre>void stopLeScan(<a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.LeScanCallback.html?is-external=true" title="class or interface in android.bluetooth">BluetoothAdapter.LeScanCallback</a> callback)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/PI_BleStatusHelper.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/PI_BleScanner.html" target="_top">Frames</a></li> +<li><a href="PI_BleScanner.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/PI_BleStatusHelper.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/PI_BleStatusHelper.html new file mode 100644 index 0000000000000000000000000000000000000000..ad6845bd4e828df9a8e8d989227836209d7c26c7 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/PI_BleStatusHelper.html @@ -0,0 +1,258 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>PI_BleStatusHelper (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="PI_BleStatusHelper (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6,"i1":6,"i2":6,"i3":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/PI_BleScanner.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/PI_BleStatusHelper.html" target="_top">Frames</a></li> +<li><a href="PI_BleStatusHelper.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface PI_BleStatusHelper" class="title">Interface PI_BleStatusHelper</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public interface <span class="typeNameLabel">PI_BleStatusHelper</span></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_BleStatusHelper.html#isBluetoothEnabled--">isBluetoothEnabled</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_BleStatusHelper.html#isLocationEnabledForScanning_byOsServices--">isLocationEnabledForScanning_byOsServices</a></span>()</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_BleStatusHelper.html#isLocationEnabledForScanning_byRuntimePermissions--">isLocationEnabledForScanning_byRuntimePermissions</a></span>()</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_BleStatusHelper.html#isLocationEnabledForScanning--">isLocationEnabledForScanning</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="isLocationEnabledForScanning_byOsServices--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isLocationEnabledForScanning_byOsServices</h4> +<pre>boolean isLocationEnabledForScanning_byOsServices()</pre> +</li> +</ul> +<a name="isLocationEnabledForScanning_byRuntimePermissions--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isLocationEnabledForScanning_byRuntimePermissions</h4> +<pre>boolean isLocationEnabledForScanning_byRuntimePermissions()</pre> +</li> +</ul> +<a name="isLocationEnabledForScanning--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isLocationEnabledForScanning</h4> +<pre>boolean isLocationEnabledForScanning()</pre> +</li> +</ul> +<a name="isBluetoothEnabled--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isBluetoothEnabled</h4> +<pre>boolean isBluetoothEnabled()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/PI_BleScanner.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/PI_BleStatusHelper.html" target="_top">Frames</a></li> +<li><a href="PI_BleStatusHelper.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html new file mode 100644 index 0000000000000000000000000000000000000000..e316eb1e6e600a7010796010993d14cf0c7967ea --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html @@ -0,0 +1,227 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>PI_UpdateLoop.Callback (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="PI_UpdateLoop.Callback (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" target="_top">Frames</a></li> +<li><a href="PI_UpdateLoop.Callback.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface PI_UpdateLoop.Callback" class="title">Interface PI_UpdateLoop.Callback</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">PI_UpdateLoop.Callback</span></pre> +<div class="block">A callback where you handle the update time step.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html#onUpdate-double-">onUpdate</a></span>(double timestep_seconds)</code> +<div class="block">Gives you the amount of time that has passed in seconds since the last callback.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onUpdate-double-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onUpdate</h4> +<pre>void onUpdate(double timestep_seconds)</pre> +<div class="block">Gives you the amount of time that has passed in seconds since the last callback.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" target="_top">Frames</a></li> +<li><a href="PI_UpdateLoop.Callback.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html new file mode 100644 index 0000000000000000000000000000000000000000..228b04b53424cd26fb6b287116f3e1afdf144300 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html @@ -0,0 +1,316 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>PI_UpdateLoop.DefaultUpdateLoopFactory (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="PI_UpdateLoop.DefaultUpdateLoopFactory (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" target="_top">Frames</a></li> +<li><a href="PI_UpdateLoop.DefaultUpdateLoopFactory.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class PI_UpdateLoop.DefaultUpdateLoopFactory" class="title">Class PI_UpdateLoop.DefaultUpdateLoopFactory</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.PI_UpdateLoop.DefaultUpdateLoopFactory</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.IUpdateLoopFactory</a></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">PI_UpdateLoop.DefaultUpdateLoopFactory</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.IUpdateLoopFactory</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html#DefaultUpdateLoopFactory--">DefaultUpdateLoopFactory</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html#newAnonThreadLoop--">newAnonThreadLoop</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html#newAnonThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-">newAnonThreadLoop</a></span>(<a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.Callback</a> callback)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html#newMainThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-">newMainThreadLoop</a></span>(<a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.Callback</a> callback)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="DefaultUpdateLoopFactory--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>DefaultUpdateLoopFactory</h4> +<pre>public DefaultUpdateLoopFactory()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="newAnonThreadLoop--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newAnonThreadLoop</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a> newAnonThreadLoop()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html#newAnonThreadLoop--">newAnonThreadLoop</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.IUpdateLoopFactory</a></code></dd> +</dl> +</li> +</ul> +<a name="newMainThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newMainThreadLoop</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a> newMainThreadLoop(<a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.Callback</a> callback)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html#newMainThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-">newMainThreadLoop</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.IUpdateLoopFactory</a></code></dd> +</dl> +</li> +</ul> +<a name="newAnonThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>newAnonThreadLoop</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a> newAnonThreadLoop(<a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.Callback</a> callback)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html#newAnonThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-">newAnonThreadLoop</a></code> in interface <code><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.IUpdateLoopFactory</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" target="_top">Frames</a></li> +<li><a href="PI_UpdateLoop.DefaultUpdateLoopFactory.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html new file mode 100644 index 0000000000000000000000000000000000000000..21f4db48c8ef1eb7eebd2bf3f1f8f62349c7bb36 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html @@ -0,0 +1,253 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>PI_UpdateLoop.IUpdateLoopFactory (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="PI_UpdateLoop.IUpdateLoopFactory (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6,"i1":6,"i2":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" target="_top">Frames</a></li> +<li><a href="PI_UpdateLoop.IUpdateLoopFactory.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface PI_UpdateLoop.IUpdateLoopFactory" class="title">Interface PI_UpdateLoop.IUpdateLoopFactory</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" title="class in com.idevicesinc.sweetblue">PI_UpdateLoop.DefaultUpdateLoopFactory</a></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">PI_UpdateLoop.IUpdateLoopFactory</span></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html#newAnonThreadLoop--">newAnonThreadLoop</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html#newAnonThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-">newAnonThreadLoop</a></span>(<a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.Callback</a> callback)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html#newMainThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-">newMainThreadLoop</a></span>(<a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.Callback</a> callback)</code> </td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="newAnonThreadLoop--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newAnonThreadLoop</h4> +<pre><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a> newAnonThreadLoop()</pre> +</li> +</ul> +<a name="newMainThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newMainThreadLoop</h4> +<pre><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a> newMainThreadLoop(<a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.Callback</a> callback)</pre> +</li> +</ul> +<a name="newAnonThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>newAnonThreadLoop</h4> +<pre><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a> newAnonThreadLoop(<a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.Callback</a> callback)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" target="_top">Frames</a></li> +<li><a href="PI_UpdateLoop.IUpdateLoopFactory.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/PI_UpdateLoop.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/PI_UpdateLoop.html new file mode 100644 index 0000000000000000000000000000000000000000..f4a241b45c1b71f538b55154cf9acd9329240afc --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/PI_UpdateLoop.html @@ -0,0 +1,330 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>PI_UpdateLoop (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="PI_UpdateLoop (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/PI_BleStatusHelper.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/PI_UpdateLoop.html" target="_top">Frames</a></li> +<li><a href="PI_UpdateLoop.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface PI_UpdateLoop" class="title">Interface PI_UpdateLoop</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a></dd> +</dl> +<hr> +<br> +<pre>public interface <span class="typeNameLabel">PI_UpdateLoop</span></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.Callback</a></span></code> +<div class="block">A callback where you handle the update time step.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" title="class in com.idevicesinc.sweetblue">PI_UpdateLoop.DefaultUpdateLoopFactory</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.IUpdateLoopFactory</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html#forcePost-java.lang.Runnable-">forcePost</a></span>(<a href="http://d.android.com/reference/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a> runnable)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/os/Handler.html?is-external=true" title="class or interface in android.os">Handler</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html#getHandler--">getHandler</a></span>()</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html#isRunning--">isRunning</a></span>()</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html#postIfNeeded-java.lang.Runnable-">postIfNeeded</a></span>(<a href="http://d.android.com/reference/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a> runnable)</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html#postNeeded--">postNeeded</a></span>()</code> </td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html#start-double-">start</a></span>(double updateRate)</code> </td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html#stop--">stop</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="isRunning--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isRunning</h4> +<pre>boolean isRunning()</pre> +</li> +</ul> +<a name="start-double-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>start</h4> +<pre>void start(double updateRate)</pre> +</li> +</ul> +<a name="stop--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stop</h4> +<pre>void stop()</pre> +</li> +</ul> +<a name="forcePost-java.lang.Runnable-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>forcePost</h4> +<pre>void forcePost(<a href="http://d.android.com/reference/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a> runnable)</pre> +</li> +</ul> +<a name="getHandler--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getHandler</h4> +<pre><a href="http://d.android.com/reference/android/os/Handler.html?is-external=true" title="class or interface in android.os">Handler</a> getHandler()</pre> +</li> +</ul> +<a name="postNeeded--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>postNeeded</h4> +<pre>boolean postNeeded()</pre> +</li> +</ul> +<a name="postIfNeeded-java.lang.Runnable-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>postIfNeeded</h4> +<pre>void postIfNeeded(<a href="http://d.android.com/reference/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a> runnable)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/PI_BleStatusHelper.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/PI_UpdateLoop.html" target="_top">Frames</a></li> +<li><a href="PI_UpdateLoop.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/P_StringHandler.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/P_StringHandler.html new file mode 100644 index 0000000000000000000000000000000000000000..c7a16a85b1bda60c9160444f1345dd1b568fc3e4 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/P_StringHandler.html @@ -0,0 +1,424 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>P_StringHandler (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="P_StringHandler (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/DefaultLogger.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/P_StringHandler.html" target="_top">Frames</a></li> +<li><a href="P_StringHandler.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class P_StringHandler" class="title">Class P_StringHandler</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.P_StringHandler</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">P_StringHandler</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_StringHandler.html#ACCEPT">ACCEPT</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_StringHandler.html#APP_NEEDS_PERMISSION">APP_NEEDS_PERMISSION</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_StringHandler.html#DENY">DENY</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_StringHandler.html#DENYING_LOCATION_ACCESS">DENYING_LOCATION_ACCESS</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_StringHandler.html#LOCATION_PERMISSION_TOAST">LOCATION_PERMISSION_TOAST</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_StringHandler.html#LOCATION_SERVICES_NEEDS_ENABLING">LOCATION_SERVICES_NEEDS_ENABLING</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_StringHandler.html#LOCATION_SERVICES_TOAST">LOCATION_SERVICES_TOAST</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_StringHandler.html#OK">OK</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_StringHandler.html#REQUIRES_LOCATION_PERMISSION">REQUIRES_LOCATION_PERMISSION</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_StringHandler.html#REQUIRES_LOCATION_PERMISSION_AND_SERVICES">REQUIRES_LOCATION_PERMISSION_AND_SERVICES</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_StringHandler.html#P_StringHandler--">P_StringHandler</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_StringHandler.html#getString-android.app.Activity-java.lang.String-">getString</a></span>(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> context, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> stringKey)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="DENYING_LOCATION_ACCESS"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DENYING_LOCATION_ACCESS</h4> +<pre>public static final <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DENYING_LOCATION_ACCESS</pre> +</li> +</ul> +<a name="APP_NEEDS_PERMISSION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>APP_NEEDS_PERMISSION</h4> +<pre>public static final <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> APP_NEEDS_PERMISSION</pre> +</li> +</ul> +<a name="LOCATION_PERMISSION_TOAST"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>LOCATION_PERMISSION_TOAST</h4> +<pre>public static final <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> LOCATION_PERMISSION_TOAST</pre> +</li> +</ul> +<a name="REQUIRES_LOCATION_PERMISSION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>REQUIRES_LOCATION_PERMISSION</h4> +<pre>public static final <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> REQUIRES_LOCATION_PERMISSION</pre> +</li> +</ul> +<a name="REQUIRES_LOCATION_PERMISSION_AND_SERVICES"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>REQUIRES_LOCATION_PERMISSION_AND_SERVICES</h4> +<pre>public static final <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> REQUIRES_LOCATION_PERMISSION_AND_SERVICES</pre> +</li> +</ul> +<a name="LOCATION_SERVICES_NEEDS_ENABLING"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>LOCATION_SERVICES_NEEDS_ENABLING</h4> +<pre>public static final <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> LOCATION_SERVICES_NEEDS_ENABLING</pre> +</li> +</ul> +<a name="LOCATION_SERVICES_TOAST"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>LOCATION_SERVICES_TOAST</h4> +<pre>public static final <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> LOCATION_SERVICES_TOAST</pre> +</li> +</ul> +<a name="OK"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>OK</h4> +<pre>public static final <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> OK</pre> +</li> +</ul> +<a name="DENY"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DENY</h4> +<pre>public static final <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DENY</pre> +</li> +</ul> +<a name="ACCEPT"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>ACCEPT</h4> +<pre>public static final <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ACCEPT</pre> +</li> +</ul> +</li> +</ul> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="P_StringHandler--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>P_StringHandler</h4> +<pre>public P_StringHandler()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="getString-android.app.Activity-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getString</h4> +<pre>public static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getString(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> context, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> stringKey)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/DefaultLogger.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/P_StringHandler.html" target="_top">Frames</a></li> +<li><a href="P_StringHandler.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/P_Task_BatteryLevel.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/P_Task_BatteryLevel.html new file mode 100644 index 0000000000000000000000000000000000000000..d225666b3cf5f1e38b63ec567e1decc050b90273 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/P_Task_BatteryLevel.html @@ -0,0 +1,1048 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>P_Task_BatteryLevel (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="P_Task_BatteryLevel (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/PI_BleScanner.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/P_Task_BatteryLevel.html" target="_top">Frames</a></li> +<li><a href="P_Task_BatteryLevel.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Class P_Task_BatteryLevel" class="title">Class P_Task_BatteryLevel</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.P_Task_BatteryLevel</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public final class <span class="typeNameLabel">P_Task_BatteryLevel</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>protected <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#m_readWriteListener">m_readWriteListener</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>protected boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#m_requiresBonding">m_requiresBonding</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>protected boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#acknowledgeCallback-int-">acknowledgeCallback</a></span>(int status)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>protected void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#attemptToSoftlyCancel-com.idevicesinc.sweetblue.PA_Task-">attemptToSoftlyCancel</a></span>(com.idevicesinc.sweetblue.PA_Task task)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>protected void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#clearFromQueue--">clearFromQueue</a></span>()</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#execute--">execute</a></span>()</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>protected void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#fail--">fail</a></span>()</code> </td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>protected void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#fail-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Target-java.util.UUID-java.util.UUID-">fail</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> status, + int gattStatus, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a> target, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descUuid)</code> </td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>protected void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#failImmediately--">failImmediately</a></span>()</code> </td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>protected void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#failWithoutRetry--">failWithoutRetry</a></span>()</code> </td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getAggregatedTimeArmedAndExecuting--">getAggregatedTimeArmedAndExecuting</a></span>()</code> </td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>protected <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getCancelType--">getCancelType</a></span>()</code> </td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>protected <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getCharUuid--">getCharUuid</a></span>()</code> </td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code>protected <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getDefaultTarget--">getDefaultTarget</a></span>()</code> </td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code>protected <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getDescUuid--">getDescUuid</a></span>()</code> </td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getDevice--">getDevice</a></span>()</code> </td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code>protected double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getInitialTimeout--">getInitialTimeout</a></span>()</code> </td> +</tr> +<tr id="i15" class="rowColor"> +<td class="colFirst"><code>protected com.idevicesinc.sweetblue.P_Logger</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getLogger--">getLogger</a></span>()</code> </td> +</tr> +<tr id="i16" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getManager--">getManager</a></span>()</code> </td> +</tr> +<tr id="i17" class="rowColor"> +<td class="colFirst"><code>com.idevicesinc.sweetblue.PE_TaskPriority</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getPriority--">getPriority</a></span>()</code> </td> +</tr> +<tr id="i18" class="altColor"> +<td class="colFirst"><code>protected com.idevicesinc.sweetblue.P_TaskQueue</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getQueue--">getQueue</a></span>()</code> </td> +</tr> +<tr id="i19" class="rowColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getServer--">getServer</a></span>()</code> </td> +</tr> +<tr id="i20" class="altColor"> +<td class="colFirst"><code>protected <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getServiceUuid--">getServiceUuid</a></span>()</code> </td> +</tr> +<tr id="i21" class="rowColor"> +<td class="colFirst"><code>protected <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getTaskType--">getTaskType</a></span>()</code> </td> +</tr> +<tr id="i22" class="altColor"> +<td class="colFirst"><code>double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getTimeout--">getTimeout</a></span>()</code> </td> +</tr> +<tr id="i23" class="rowColor"> +<td class="colFirst"><code>protected <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getToStringAddition--">getToStringAddition</a></span>()</code> </td> +</tr> +<tr id="i24" class="altColor"> +<td class="colFirst"><code>double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getTotalTime--">getTotalTime</a></span>()</code> </td> +</tr> +<tr id="i25" class="rowColor"> +<td class="colFirst"><code>double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getTotalTimeExecuting--">getTotalTimeExecuting</a></span>()</code> </td> +</tr> +<tr id="i26" class="altColor"> +<td class="colFirst"><code><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getTxn--">getTxn</a></span>()</code> </td> +</tr> +<tr id="i27" class="rowColor"> +<td class="colFirst"><code>protected boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#isArmable--">isArmable</a></span>()</code> </td> +</tr> +<tr id="i28" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#isCancellableBy-com.idevicesinc.sweetblue.PA_Task-">isCancellableBy</a></span>(com.idevicesinc.sweetblue.PA_Task task)</code> </td> +</tr> +<tr id="i29" class="rowColor"> +<td class="colFirst"><code>protected boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#isExecutable--">isExecutable</a></span>()</code> </td> +</tr> +<tr id="i30" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#isExplicit--">isExplicit</a></span>()</code> </td> +</tr> +<tr id="i31" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#isFor-android.bluetooth.BluetoothGattCharacteristic-">isFor</a></span>(<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a> characteristic)</code> </td> +</tr> +<tr id="i32" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#isFor-android.bluetooth.BluetoothGattDescriptor-">isFor</a></span>(<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a> descriptor)</code> </td> +</tr> +<tr id="i33" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#isFor-java.lang.Class-com.idevicesinc.sweetblue.BleServer-java.lang.String-">isFor</a></span>(<a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><? extends com.idevicesinc.sweetblue.PA_Task_ConnectOrDisconnectServer> taskClass, + <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a> server, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</code> </td> +</tr> +<tr id="i34" class="altColor"> +<td class="colFirst"><code>protected boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#isForCharacteristic-java.util.UUID-">isForCharacteristic</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> </td> +</tr> +<tr id="i35" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#isInterruptableBy-com.idevicesinc.sweetblue.PA_Task-">isInterruptableBy</a></span>(com.idevicesinc.sweetblue.PA_Task task)</code> </td> +</tr> +<tr id="i36" class="altColor"> +<td class="colFirst"><code>protected boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#isMoreImportantThan_default-com.idevicesinc.sweetblue.PA_Task-">isMoreImportantThan_default</a></span>(com.idevicesinc.sweetblue.PA_Task task)</code> +<div class="block">Default implementation to call by subsubclasses if they want to skip their immediate parent's implementation.</div> +</td> +</tr> +<tr id="i37" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#isMoreImportantThan-com.idevicesinc.sweetblue.PA_Task-">isMoreImportantThan</a></span>(com.idevicesinc.sweetblue.PA_Task task)</code> </td> +</tr> +<tr id="i38" class="altColor"> +<td class="colFirst"><code>protected boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#isSoftlyCancellableBy-com.idevicesinc.sweetblue.PA_Task-">isSoftlyCancellableBy</a></span>(com.idevicesinc.sweetblue.PA_Task task)</code> </td> +</tr> +<tr id="i39" class="rowColor"> +<td class="colFirst"><code>protected <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#newReadWriteEvent-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Target-java.util.UUID-java.util.UUID-java.util.UUID-">newReadWriteEvent</a></span>(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> status, + int gattStatus, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a> target, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descUuid)</code> </td> +</tr> +<tr id="i40" class="altColor"> +<td class="colFirst"><code>protected void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#onCharacteristicOrDescriptorRead-android.bluetooth.BluetoothGatt-java.util.UUID-byte:A-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Type-">onCharacteristicOrDescriptorRead</a></span>(<a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGatt</a> gatt, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + byte[] value, + int gattStatus, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a> type)</code> </td> +</tr> +<tr id="i41" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#onCharacteristicRead-android.bluetooth.BluetoothGatt-java.util.UUID-byte:A-int-">onCharacteristicRead</a></span>(<a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGatt</a> gatt, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + byte[] value, + int gattStatus)</code> </td> +</tr> +<tr id="i42" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#onDescriptorRead-android.bluetooth.BluetoothGattDescriptor-byte:A-int-">onDescriptorRead</a></span>(<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a> desc, + byte[] value, + int gattStatus)</code> </td> +</tr> +<tr id="i43" class="rowColor"> +<td class="colFirst"><code>protected void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#onNotExecutable--">onNotExecutable</a></span>()</code> </td> +</tr> +<tr id="i44" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#onStateChange-com.idevicesinc.sweetblue.PA_Task-com.idevicesinc.sweetblue.PE_TaskState-">onStateChange</a></span>(com.idevicesinc.sweetblue.PA_Task task, + com.idevicesinc.sweetblue.PE_TaskState state)</code> </td> +</tr> +<tr id="i45" class="rowColor"> +<td class="colFirst"><code>protected void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#redundant--">redundant</a></span>()</code> </td> +</tr> +<tr id="i46" class="altColor"> +<td class="colFirst"><code>protected void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#selfInterrupt--">selfInterrupt</a></span>()</code> </td> +</tr> +<tr id="i47" class="rowColor"> +<td class="colFirst"><code>protected void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#softlyCancel--">softlyCancel</a></span>()</code> </td> +</tr> +<tr id="i48" class="altColor"> +<td class="colFirst"><code>protected void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#succeed--">succeed</a></span>()</code> </td> +</tr> +<tr id="i49" class="rowColor"> +<td class="colFirst"><code>protected void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#succeedWrite--">succeedWrite</a></span>()</code> </td> +</tr> +<tr id="i50" class="altColor"> +<td class="colFirst"><code>protected void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#timeout--">timeout</a></span>()</code> </td> +</tr> +<tr id="i51" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#toString--">toString</a></span>()</code> </td> +</tr> +<tr id="i52" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#tryExecuting--">tryExecuting</a></span>()</code> </td> +</tr> +<tr id="i53" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#update-double-">update</a></span>(double timeStep)</code> </td> +</tr> +<tr id="i54" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#wasSoftlyCancelled--">wasSoftlyCancelled</a></span>()</code> </td> +</tr> +<tr id="i55" class="rowColor"> +<td class="colFirst"><code>protected boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#write_earlyOut-byte:A-">write_earlyOut</a></span>(byte[] data_nullable)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="m_readWriteListener"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>m_readWriteListener</h4> +<pre>protected final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a> m_readWriteListener</pre> +</li> +</ul> +<a name="m_requiresBonding"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>m_requiresBonding</h4> +<pre>protected final boolean m_requiresBonding</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="newReadWriteEvent-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Target-java.util.UUID-java.util.UUID-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newReadWriteEvent</h4> +<pre>protected <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a> newReadWriteEvent(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> status, + int gattStatus, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a> target, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> serviceUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descUuid)</pre> +</li> +</ul> +<a name="getTaskType--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getTaskType</h4> +<pre>protected <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a> getTaskType()</pre> +</li> +</ul> +<a name="update-double-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>update</h4> +<pre>public void update(double timeStep)</pre> +</li> +</ul> +<a name="execute--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>execute</h4> +<pre>public void execute()</pre> +</li> +</ul> +<a name="onCharacteristicRead-android.bluetooth.BluetoothGatt-java.util.UUID-byte:A-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>onCharacteristicRead</h4> +<pre>public void onCharacteristicRead(<a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGatt</a> gatt, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + byte[] value, + int gattStatus)</pre> +</li> +</ul> +<a name="onDescriptorRead-android.bluetooth.BluetoothGattDescriptor-byte:A-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>onDescriptorRead</h4> +<pre>public void onDescriptorRead(<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a> desc, + byte[] value, + int gattStatus)</pre> +</li> +</ul> +<a name="getDefaultTarget--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDefaultTarget</h4> +<pre>protected <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a> getDefaultTarget()</pre> +</li> +</ul> +<a name="fail-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Target-java.util.UUID-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fail</h4> +<pre>protected void fail(<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> status, + int gattStatus, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a> target, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> charUuid, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> descUuid)</pre> +</li> +</ul> +<a name="onNotExecutable--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>onNotExecutable</h4> +<pre>protected void onNotExecutable()</pre> +</li> +</ul> +<a name="acknowledgeCallback-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>acknowledgeCallback</h4> +<pre>protected boolean acknowledgeCallback(int status)</pre> +</li> +</ul> +<a name="getCharUuid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getCharUuid</h4> +<pre>protected <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> getCharUuid()</pre> +</li> +</ul> +<a name="getServiceUuid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getServiceUuid</h4> +<pre>protected <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> getServiceUuid()</pre> +</li> +</ul> +<a name="isFor-android.bluetooth.BluetoothGattCharacteristic-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isFor</h4> +<pre>public boolean isFor(<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCharacteristic</a> characteristic)</pre> +</li> +</ul> +<a name="isFor-android.bluetooth.BluetoothGattDescriptor-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isFor</h4> +<pre>public boolean isFor(<a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattDescriptor</a> descriptor)</pre> +</li> +</ul> +<a name="isForCharacteristic-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isForCharacteristic</h4> +<pre>protected boolean isForCharacteristic(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +</li> +</ul> +<a name="getToStringAddition--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getToStringAddition</h4> +<pre>protected <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getToStringAddition()</pre> +</li> +</ul> +<a name="onStateChange-com.idevicesinc.sweetblue.PA_Task-com.idevicesinc.sweetblue.PE_TaskState-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>onStateChange</h4> +<pre>public void onStateChange(com.idevicesinc.sweetblue.PA_Task task, + com.idevicesinc.sweetblue.PE_TaskState state)</pre> +</li> +</ul> +<a name="onCharacteristicOrDescriptorRead-android.bluetooth.BluetoothGatt-java.util.UUID-byte:A-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Type-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>onCharacteristicOrDescriptorRead</h4> +<pre>protected void onCharacteristicOrDescriptorRead(<a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGatt</a> gatt, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + byte[] value, + int gattStatus, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a> type)</pre> +</li> +</ul> +<a name="succeedWrite--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>succeedWrite</h4> +<pre>protected void succeedWrite()</pre> +</li> +</ul> +<a name="write_earlyOut-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>write_earlyOut</h4> +<pre>protected boolean write_earlyOut(byte[] data_nullable)</pre> +</li> +</ul> +<a name="getTxn--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getTxn</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a> getTxn()</pre> +</li> +</ul> +<a name="isSoftlyCancellableBy-com.idevicesinc.sweetblue.PA_Task-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isSoftlyCancellableBy</h4> +<pre>protected boolean isSoftlyCancellableBy(com.idevicesinc.sweetblue.PA_Task task)</pre> +</li> +</ul> +<a name="isInterruptableBy-com.idevicesinc.sweetblue.PA_Task-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isInterruptableBy</h4> +<pre>public boolean isInterruptableBy(com.idevicesinc.sweetblue.PA_Task task)</pre> +</li> +</ul> +<a name="isMoreImportantThan-com.idevicesinc.sweetblue.PA_Task-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isMoreImportantThan</h4> +<pre>public boolean isMoreImportantThan(com.idevicesinc.sweetblue.PA_Task task)</pre> +</li> +</ul> +<a name="getPriority--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getPriority</h4> +<pre>public com.idevicesinc.sweetblue.PE_TaskPriority getPriority()</pre> +</li> +</ul> +<a name="isArmable--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isArmable</h4> +<pre>protected boolean isArmable()</pre> +</li> +</ul> +<a name="isExecutable--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isExecutable</h4> +<pre>protected boolean isExecutable()</pre> +</li> +</ul> +<a name="getCancelType--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getCancelType</h4> +<pre>protected final <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a> getCancelType()</pre> +</li> +</ul> +<a name="attemptToSoftlyCancel-com.idevicesinc.sweetblue.PA_Task-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>attemptToSoftlyCancel</h4> +<pre>protected void attemptToSoftlyCancel(com.idevicesinc.sweetblue.PA_Task task)</pre> +</li> +</ul> +<a name="isCancellableBy-com.idevicesinc.sweetblue.PA_Task-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isCancellableBy</h4> +<pre>public boolean isCancellableBy(com.idevicesinc.sweetblue.PA_Task task)</pre> +</li> +</ul> +<a name="getInitialTimeout--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getInitialTimeout</h4> +<pre>protected double getInitialTimeout()</pre> +</li> +</ul> +<a name="getDescUuid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDescUuid</h4> +<pre>protected <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> getDescUuid()</pre> +</li> +</ul> +<a name="getLogger--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getLogger</h4> +<pre>protected com.idevicesinc.sweetblue.P_Logger getLogger()</pre> +</li> +</ul> +<a name="timeout--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>timeout</h4> +<pre>protected void timeout()</pre> +</li> +</ul> +<a name="redundant--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>redundant</h4> +<pre>protected void redundant()</pre> +</li> +</ul> +<a name="succeed--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>succeed</h4> +<pre>protected void succeed()</pre> +</li> +</ul> +<a name="fail--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fail</h4> +<pre>protected void fail()</pre> +</li> +</ul> +<a name="clearFromQueue--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearFromQueue</h4> +<pre>protected void clearFromQueue()</pre> +</li> +</ul> +<a name="failImmediately--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>failImmediately</h4> +<pre>protected void failImmediately()</pre> +</li> +</ul> +<a name="selfInterrupt--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>selfInterrupt</h4> +<pre>protected void selfInterrupt()</pre> +</li> +</ul> +<a name="softlyCancel--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>softlyCancel</h4> +<pre>protected void softlyCancel()</pre> +</li> +</ul> +<a name="failWithoutRetry--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>failWithoutRetry</h4> +<pre>protected void failWithoutRetry()</pre> +</li> +</ul> +<a name="tryExecuting--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>tryExecuting</h4> +<pre>public void tryExecuting()</pre> +</li> +</ul> +<a name="getTotalTimeExecuting--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getTotalTimeExecuting</h4> +<pre>public double getTotalTimeExecuting()</pre> +</li> +</ul> +<a name="getTotalTime--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getTotalTime</h4> +<pre>public double getTotalTime()</pre> +</li> +</ul> +<a name="getAggregatedTimeArmedAndExecuting--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getAggregatedTimeArmedAndExecuting</h4> +<pre>public double getAggregatedTimeArmedAndExecuting()</pre> +</li> +</ul> +<a name="isFor-java.lang.Class-com.idevicesinc.sweetblue.BleServer-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isFor</h4> +<pre>public boolean isFor(<a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><? extends com.idevicesinc.sweetblue.PA_Task_ConnectOrDisconnectServer> taskClass, + <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a> server, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</pre> +</li> +</ul> +<a name="getDevice--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevice</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> getDevice()</pre> +</li> +</ul> +<a name="getServer--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getServer</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a> getServer()</pre> +</li> +</ul> +<a name="getManager--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getManager</h4> +<pre>public <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> getManager()</pre> +</li> +</ul> +<a name="getTimeout--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getTimeout</h4> +<pre>public double getTimeout()</pre> +</li> +</ul> +<a name="getQueue--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getQueue</h4> +<pre>protected com.idevicesinc.sweetblue.P_TaskQueue getQueue()</pre> +</li> +</ul> +<a name="isMoreImportantThan_default-com.idevicesinc.sweetblue.PA_Task-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isMoreImportantThan_default</h4> +<pre>protected boolean isMoreImportantThan_default(com.idevicesinc.sweetblue.PA_Task task)</pre> +<div class="block">Default implementation to call by subsubclasses if they want to skip their immediate parent's implementation.</div> +</li> +</ul> +<a name="wasSoftlyCancelled--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>wasSoftlyCancelled</h4> +<pre>public boolean wasSoftlyCancelled()</pre> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +<a name="isExplicit--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isExplicit</h4> +<pre>public boolean isExplicit()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../com/idevicesinc/sweetblue/PI_BleScanner.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/P_Task_BatteryLevel.html" target="_top">Frames</a></li> +<li><a href="P_Task_BatteryLevel.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/SweetLogger.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/SweetLogger.html new file mode 100644 index 0000000000000000000000000000000000000000..e12f5447aa03aa88a966dd7be41c24cdbd600cd9 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/SweetLogger.html @@ -0,0 +1,227 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>SweetLogger (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="SweetLogger (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li>Next Class</li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/SweetLogger.html" target="_top">Frames</a></li> +<li><a href="SweetLogger.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue</div> +<h2 title="Interface SweetLogger" class="title">Interface SweetLogger</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils">DebugLogger</a>, <a href="../../../com/idevicesinc/sweetblue/DefaultLogger.html" title="class in com.idevicesinc.sweetblue">DefaultLogger</a></dd> +</dl> +<hr> +<br> +<pre>public interface <span class="typeNameLabel">SweetLogger</span></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../com/idevicesinc/sweetblue/SweetLogger.html#onLogEntry-int-java.lang.String-java.lang.String-">onLogEntry</a></span>(int level, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> tag, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code> </td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onLogEntry-int-java.lang.String-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onLogEntry</h4> +<pre>void onLogEntry(int level, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> tag, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">Prev Class</span></a></li> +<li>Next Class</li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/SweetLogger.html" target="_top">Frames</a></li> +<li><a href="SweetLogger.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/Advanced.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/Advanced.html new file mode 100644 index 0000000000000000000000000000000000000000..184d0d98e157d3f1ab48da472bf7b87f0d476eb3 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/Advanced.html @@ -0,0 +1,165 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Advanced (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Advanced (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev Class</li> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Alpha.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/annotations/Advanced.html" target="_top">Frames</a></li> +<li><a href="Advanced.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Field | </li> +<li>Required | </li> +<li>Optional</li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Element</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.annotations</div> +<h2 title="Annotation Type Advanced" class="title">Annotation Type Advanced</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre><a href="http://d.android.com/reference/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="http://d.android.com/reference/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="http://d.android.com/reference/java/lang/annotation/RetentionPolicy.html?is-external=true#CLASS" title="class or interface in java.lang.annotation">CLASS</a>) +public @interface <span class="memberNameLabel">Advanced</span></pre> +<div class="block">This annotation is used to tag certain classes or methods that + someone new to the library can most-likely safely ignore. Thus it doesn't necessarily + signify that a concept is hard to grasp, just that you probably don't need to grasp it now or maybe ever.</div> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev Class</li> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Alpha.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/annotations/Advanced.html" target="_top">Frames</a></li> +<li><a href="Advanced.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Field | </li> +<li>Required | </li> +<li>Optional</li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Element</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/Alpha.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/Alpha.html new file mode 100644 index 0000000000000000000000000000000000000000..d54ef8a687cd866519917eabd234ca46370d6f39 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/Alpha.html @@ -0,0 +1,166 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Alpha (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Alpha (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Advanced.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Immutable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/annotations/Alpha.html" target="_top">Frames</a></li> +<li><a href="Alpha.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Field | </li> +<li>Required | </li> +<li>Optional</li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Element</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.annotations</div> +<h2 title="Annotation Type Alpha" class="title">Annotation Type Alpha</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre><a href="http://d.android.com/reference/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="http://d.android.com/reference/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="http://d.android.com/reference/java/lang/annotation/RetentionPolicy.html?is-external=true#CLASS" title="class or interface in java.lang.annotation">CLASS</a>) +public @interface <span class="memberNameLabel">Alpha</span></pre> +<div class="block">This annotation is used to tag certain classes or methods that are considered "alpha" level quality. + This means that the feature will be release quality at some point in the future, but it + may require bug fixes, further documentation, code additions, backwards incompatible changes, moving to different + packages, etc., etc., to get to that point, so just be aware.</div> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Advanced.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Immutable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/annotations/Alpha.html" target="_top">Frames</a></li> +<li><a href="Alpha.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Field | </li> +<li>Required | </li> +<li>Optional</li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Element</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/Immutable.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/Immutable.html new file mode 100644 index 0000000000000000000000000000000000000000..a0aa73610a1ede3ac1d232d38356727c118d8ab5 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/Immutable.html @@ -0,0 +1,165 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Immutable (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Immutable (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Alpha.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Lambda.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/annotations/Immutable.html" target="_top">Frames</a></li> +<li><a href="Immutable.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Field | </li> +<li>Required | </li> +<li>Optional</li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Element</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.annotations</div> +<h2 title="Annotation Type Immutable" class="title">Annotation Type Immutable</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre><a href="http://d.android.com/reference/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="http://d.android.com/reference/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>={<a href="http://d.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation">TYPE</a>,<a href="http://d.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation">FIELD</a>}) + <a href="http://d.android.com/reference/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="http://d.android.com/reference/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="http://d.android.com/reference/java/lang/annotation/RetentionPolicy.html?is-external=true#CLASS" title="class or interface in java.lang.annotation">CLASS</a>) +public @interface <span class="memberNameLabel">Immutable</span></pre> +<div class="block">Classes marked with this <a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation"><code>Annotation</code></a> have immutable internal state, or the apparent behavior of so. + Most of the time this means all private final members.</div> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Alpha.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Lambda.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/annotations/Immutable.html" target="_top">Frames</a></li> +<li><a href="Immutable.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Field | </li> +<li>Required | </li> +<li>Optional</li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Element</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/Lambda.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/Lambda.html new file mode 100644 index 0000000000000000000000000000000000000000..bf6860783a10f24b6b04786329b91d3fda40c6fd --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/Lambda.html @@ -0,0 +1,166 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Lambda (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Lambda (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Immutable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/annotations/Lambda.html" target="_top">Frames</a></li> +<li><a href="Lambda.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Field | </li> +<li>Required | </li> +<li>Optional</li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Element</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.annotations</div> +<h2 title="Annotation Type Lambda" class="title">Annotation Type Lambda</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre><a href="http://d.android.com/reference/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="http://d.android.com/reference/java/lang/annotation/Target.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="http://d.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation">TYPE</a>) + <a href="http://d.android.com/reference/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="http://d.android.com/reference/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="http://d.android.com/reference/java/lang/annotation/RetentionPolicy.html?is-external=true#CLASS" title="class or interface in java.lang.annotation">CLASS</a>) +public @interface <span class="memberNameLabel">Lambda</span></pre> +<div class="block">Used to denote <code>interface</code> declarations whose implementations can essentially act like lambdas (i.e. anonymous functions). + Implementations are technically classes and not language-level lambda constructs because + Java at this time does not support them. Conceptually however they can be treated as lambdas.</div> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Immutable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/annotations/Lambda.html" target="_top">Frames</a></li> +<li><a href="Lambda.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Field | </li> +<li>Required | </li> +<li>Optional</li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Element</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html new file mode 100644 index 0000000000000000000000000000000000000000..72e90c20b9fbc00a6d33ce304214f20e919dbd6f --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html @@ -0,0 +1,372 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Nullable.Prevalence (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Nullable.Prevalence (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/UnitTest.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" target="_top">Frames</a></li> +<li><a href="Nullable.Prevalence.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.annotations</div> +<h2 title="Enum Nullable.Prevalence" class="title">Enum Nullable.Prevalence</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations">Nullable.Prevalence</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.annotations.Nullable.Prevalence</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations">Nullable.Prevalence</a>></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.html" title="annotation in com.idevicesinc.sweetblue.annotations">Nullable</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">Nullable.Prevalence</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations">Nullable.Prevalence</a>></pre> +<div class="block">Generally used for <a href="http://d.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation"><code>ElementType.METHOD</code></a> to hint at how often it should return <code>null</code>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html#NEVER">NEVER</a></span></code> +<div class="block">For method return values, returning <code>null</code> will never happen.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html#NORMAL">NORMAL</a></span></code> +<div class="block">For method return values, returning <code>null</code> is a part of normal program execution.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html#RARE">RARE</a></span></code> +<div class="block">For method return values, returning <code>null</code> is a rare occurrence that may signify some deeper issue.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations">Nullable.Prevalence</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations">Nullable.Prevalence</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="NORMAL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NORMAL</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations">Nullable.Prevalence</a> NORMAL</pre> +<div class="block">For method return values, returning <code>null</code> is a part of normal program execution. + <br><br> + For method input parameters, passing <code>null</code> is normal and expected.</div> +</li> +</ul> +<a name="RARE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>RARE</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations">Nullable.Prevalence</a> RARE</pre> +<div class="block">For method return values, returning <code>null</code> is a rare occurrence that may signify some deeper issue. + <br><br> + For method input parameters, passing <code>null</code> is handled as a defensive measure but is rarely expected, and may signify some deeper issue upstream. + An assertion may be thrown and unit tests may fail, but an <a href="http://d.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><code>Exception</code></a> won't be thrown for program integrity's sake.</div> +</li> +</ul> +<a name="NEVER"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>NEVER</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations">Nullable.Prevalence</a> NEVER</pre> +<div class="block">For method return values, returning <code>null</code> will never happen. + <br><br> + For method input parameters, passing <code>null</code> is not allowed and may result in an <a href="http://d.android.com/reference/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><code>Exception</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations">Nullable.Prevalence</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (Nullable.Prevalence c : Nullable.Prevalence.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations">Nullable.Prevalence</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/UnitTest.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" target="_top">Frames</a></li> +<li><a href="Nullable.Prevalence.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/Nullable.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/Nullable.html new file mode 100644 index 0000000000000000000000000000000000000000..35fbc4179becfed4e2253b552b5fb4f5db250879 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/Nullable.html @@ -0,0 +1,218 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Nullable (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Nullable (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Lambda.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/annotations/Nullable.html" target="_top">Frames</a></li> +<li><a href="Nullable.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Field | </li> +<li><a href="#annotation.type.required.element.summary">Required</a> | </li> +<li>Optional</li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#annotation.type.element.detail">Element</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.annotations</div> +<h2 title="Annotation Type Nullable" class="title">Annotation Type Nullable</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre><a href="http://d.android.com/reference/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="http://d.android.com/reference/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="http://d.android.com/reference/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>) +public @interface <span class="memberNameLabel">Nullable</span></pre> +<div class="block">This annotation is used to tag methods and parameters to give extra information + on how they handle <code>null</code>. SweetBlue strives to never return <code>null</code> + if it doesn't have to, preferring things like <a href="../../../../com/idevicesinc/sweetblue/BleDeviceState.html#NULL"><code>BleDeviceState.NULL</code></a> for example, + but in some situations it's unavoidable. + <br><br> + NOTE: This annotation is only used in places where the library authors have judged that + the API by itself may be unclear about its <code>null</code> handling for newcomers. + In general, if this annotation isn't used, you may assume <a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html#NEVER"><code>Nullable.Prevalence.NEVER</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="annotation.type.required.element.summary"> +<!-- --> +</a> +<h3>Required Element Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Required Element Summary table, listing required elements, and an explanation"> +<caption><span>Required Elements</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Required Element and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations">Nullable.Prevalence</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.html#value--">value</a></span></code> </td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="annotation.type.element.detail"> +<!-- --> +</a> +<h3>Element Detail</h3> +<a name="value--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>value</h4> +<pre>public abstract <a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations">Nullable.Prevalence</a> value</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Lambda.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/annotations/Nullable.html" target="_top">Frames</a></li> +<li><a href="Nullable.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Field | </li> +<li><a href="#annotation.type.required.element.summary">Required</a> | </li> +<li>Optional</li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#annotation.type.element.detail">Element</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/UnitTest.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/UnitTest.html new file mode 100644 index 0000000000000000000000000000000000000000..ce9eaaf90526c40fe8768c06494cee5083577570 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/UnitTest.html @@ -0,0 +1,164 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>UnitTest (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="UnitTest (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Prev Class</span></a></li> +<li>Next Class</li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/annotations/UnitTest.html" target="_top">Frames</a></li> +<li><a href="UnitTest.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Field | </li> +<li>Required | </li> +<li>Optional</li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Element</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.annotations</div> +<h2 title="Annotation Type UnitTest" class="title">Annotation Type UnitTest</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre><a href="http://d.android.com/reference/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="http://d.android.com/reference/java/lang/annotation/Retention.html?is-external=true#value--" title="class or interface in java.lang.annotation">value</a>=<a href="http://d.android.com/reference/java/lang/annotation/RetentionPolicy.html?is-external=true#SOURCE" title="class or interface in java.lang.annotation">SOURCE</a>) +public @interface <span class="memberNameLabel">UnitTest</span></pre> +<div class="block">This annotation is used to dictate certain classes and/or fields which are + only used for Unit testing, and should be ignored.</div> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Prev Class</span></a></li> +<li>Next Class</li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/annotations/UnitTest.html" target="_top">Frames</a></li> +<li><a href="UnitTest.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Field | </li> +<li>Required | </li> +<li>Optional</li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Element</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/package-frame.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/package-frame.html new file mode 100644 index 0000000000000000000000000000000000000000..96009c4d37bda811e4c68b189792bdde8112e5a5 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/package-frame.html @@ -0,0 +1,29 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>com.idevicesinc.sweetblue.annotations (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<h1 class="bar"><a href="../../../../com/idevicesinc/sweetblue/annotations/package-summary.html" target="classFrame">com.idevicesinc.sweetblue.annotations</a></h1> +<div class="indexContainer"> +<h2 title="Enums">Enums</h2> +<ul title="Enums"> +<li><a href="Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations" target="classFrame">Nullable.Prevalence</a></li> +</ul> +<h2 title="Annotation Types">Annotation Types</h2> +<ul title="Annotation Types"> +<li><a href="Advanced.html" title="annotation in com.idevicesinc.sweetblue.annotations" target="classFrame">Advanced</a></li> +<li><a href="Alpha.html" title="annotation in com.idevicesinc.sweetblue.annotations" target="classFrame">Alpha</a></li> +<li><a href="Immutable.html" title="annotation in com.idevicesinc.sweetblue.annotations" target="classFrame">Immutable</a></li> +<li><a href="Lambda.html" title="annotation in com.idevicesinc.sweetblue.annotations" target="classFrame">Lambda</a></li> +<li><a href="Nullable.html" title="annotation in com.idevicesinc.sweetblue.annotations" target="classFrame">Nullable</a></li> +<li><a href="UnitTest.html" title="annotation in com.idevicesinc.sweetblue.annotations" target="classFrame">UnitTest</a></li> +</ul> +</div> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/package-summary.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/package-summary.html new file mode 100644 index 0000000000000000000000000000000000000000..dbd66af4d0587a842e823ab02d624ae5949564e8 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/package-summary.html @@ -0,0 +1,201 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>com.idevicesinc.sweetblue.annotations (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="com.idevicesinc.sweetblue.annotations (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li class="navBarCell1Rev">Package</li> +<li>Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/package-summary.html">Prev Package</a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/backend/package-summary.html">Next Package</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/annotations/package-summary.html" target="_top">Frames</a></li> +<li><a href="package-summary.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 title="Package" class="title">Package com.idevicesinc.sweetblue.annotations</h1> +<div class="docSummary"> +<div class="block">Contains <a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation"><code>Annotation</code></a> declarations used throughout the library.</div> +</div> +<p>See: <a href="#package.description">Description</a></p> +</div> +<div class="contentContainer"> +<ul class="blockList"> +<li class="blockList"> +<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation"> +<caption><span>Enum Summary</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Enum</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations">Nullable.Prevalence</a></td> +<td class="colLast"> +<div class="block">Generally used for <a href="http://d.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation"><code>ElementType.METHOD</code></a> to hint at how often it should return <code>null</code>.</div> +</td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Annotation Types Summary table, listing annotation types, and an explanation"> +<caption><span>Annotation Types Summary</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Annotation Type</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/annotations/Advanced.html" title="annotation in com.idevicesinc.sweetblue.annotations">Advanced</a></td> +<td class="colLast"> +<div class="block">This annotation is used to tag certain classes or methods that + someone new to the library can most-likely safely ignore.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/annotations/Alpha.html" title="annotation in com.idevicesinc.sweetblue.annotations">Alpha</a></td> +<td class="colLast"> +<div class="block">This annotation is used to tag certain classes or methods that are considered "alpha" level quality.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/annotations/Immutable.html" title="annotation in com.idevicesinc.sweetblue.annotations">Immutable</a></td> +<td class="colLast"> +<div class="block">Classes marked with this <a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation"><code>Annotation</code></a> have immutable internal state, or the apparent behavior of so.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/annotations/Lambda.html" title="annotation in com.idevicesinc.sweetblue.annotations">Lambda</a></td> +<td class="colLast"> +<div class="block">Used to denote <code>interface</code> declarations whose implementations can essentially act like lambdas (i.e.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.html" title="annotation in com.idevicesinc.sweetblue.annotations">Nullable</a></td> +<td class="colLast"> +<div class="block">This annotation is used to tag methods and parameters to give extra information + on how they handle <code>null</code>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/annotations/UnitTest.html" title="annotation in com.idevicesinc.sweetblue.annotations">UnitTest</a></td> +<td class="colLast"> +<div class="block">This annotation is used to dictate certain classes and/or fields which are + only used for Unit testing, and should be ignored.</div> +</td> +</tr> +</tbody> +</table> +</li> +</ul> +<a name="package.description"> +<!-- --> +</a> +<h2 title="Package com.idevicesinc.sweetblue.annotations Description">Package com.idevicesinc.sweetblue.annotations Description</h2> +<div class="block">Contains <a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation"><code>Annotation</code></a> declarations used throughout the library.</div> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li class="navBarCell1Rev">Package</li> +<li>Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/package-summary.html">Prev Package</a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/backend/package-summary.html">Next Package</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/annotations/package-summary.html" target="_top">Frames</a></li> +<li><a href="package-summary.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/package-tree.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/package-tree.html new file mode 100644 index 0000000000000000000000000000000000000000..f5cf6a8ed8a1211454f1411eb596c05e8b3f79fe --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/annotations/package-tree.html @@ -0,0 +1,148 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>com.idevicesinc.sweetblue.annotations Class Hierarchy (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="com.idevicesinc.sweetblue.annotations Class Hierarchy (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li>Class</li> +<li class="navBarCell1Rev">Tree</li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/package-tree.html">Prev</a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/backend/package-tree.html">Next</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/annotations/package-tree.html" target="_top">Frames</a></li> +<li><a href="package-tree.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 class="title">Hierarchy For Package com.idevicesinc.sweetblue.annotations</h1> +<span class="packageHierarchyLabel">Package Hierarchies:</span> +<ul class="horizontal"> +<li><a href="../../../../overview-tree.html">All Packages</a></li> +</ul> +</div> +<div class="contentContainer"> +<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2> +<ul> +<li type="circle">com.idevicesinc.sweetblue.annotations.<a href="../../../../com/idevicesinc/sweetblue/annotations/Immutable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Immutable</span></a> (implements java.lang.annotation.<a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.annotations.<a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Nullable</span></a> (implements java.lang.annotation.<a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.annotations.<a href="../../../../com/idevicesinc/sweetblue/annotations/Alpha.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Alpha</span></a> (implements java.lang.annotation.<a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.annotations.<a href="../../../../com/idevicesinc/sweetblue/annotations/UnitTest.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">UnitTest</span></a> (implements java.lang.annotation.<a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.annotations.<a href="../../../../com/idevicesinc/sweetblue/annotations/Advanced.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Advanced</span></a> (implements java.lang.annotation.<a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.annotations.<a href="../../../../com/idevicesinc/sweetblue/annotations/Lambda.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Lambda</span></a> (implements java.lang.annotation.<a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li> +</ul> +<h2 title="Enum Hierarchy">Enum Hierarchy</h2> +<ul> +<li type="circle">java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a> +<ul> +<li type="circle">java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>) +<ul> +<li type="circle">com.idevicesinc.sweetblue.annotations.<a href="../../../../com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Nullable.Prevalence</span></a></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li>Class</li> +<li class="navBarCell1Rev">Tree</li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/package-tree.html">Prev</a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/backend/package-tree.html">Next</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/annotations/package-tree.html" target="_top">Frames</a></li> +<li><a href="package-tree.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/Backend_Modules.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/Backend_Modules.html new file mode 100644 index 0000000000000000000000000000000000000000..a72295abe1da45a39ab2214f3a37e1e103618ebd --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/Backend_Modules.html @@ -0,0 +1,285 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:04 EST 2017 --> +<title>Backend_Modules (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Backend_Modules (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev Class</li> +<li>Next Class</li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/backend/Backend_Modules.html" target="_top">Frames</a></li> +<li><a href="Backend_Modules.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.backend</div> +<h2 title="Class Backend_Modules" class="title">Class Backend_Modules</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.backend.Backend_Modules</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">Backend_Modules</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">A collection of <a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang"><code>Class</code></a> instances used through <a href="http://d.android.com/reference/java/lang/Class.html?is-external=true#newInstance--" title="class or interface in java.lang"><code>Class.newInstance()</code></a> to create instances of backend modules.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><? extends <a href="../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/backend/Backend_Modules.html#HISTORICAL_DATA_LIST">HISTORICAL_DATA_LIST</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><? extends <a href="../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/backend/Backend_Modules.html#HISTORICAL_DATABASE">HISTORICAL_DATABASE</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/backend/Backend_Modules.html#Backend_Modules--">Backend_Modules</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="HISTORICAL_DATA_LIST"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>HISTORICAL_DATA_LIST</h4> +<pre>public static <a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><? extends <a href="../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a>> HISTORICAL_DATA_LIST</pre> +</li> +</ul> +<a name="HISTORICAL_DATABASE"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>HISTORICAL_DATABASE</h4> +<pre>public static <a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><? extends <a href="../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a>> HISTORICAL_DATABASE</pre> +</li> +</ul> +</li> +</ul> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="Backend_Modules--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>Backend_Modules</h4> +<pre>public Backend_Modules()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev Class</li> +<li>Next Class</li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/backend/Backend_Modules.html" target="_top">Frames</a></li> +<li><a href="Backend_Modules.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html new file mode 100644 index 0000000000000000000000000000000000000000..4eb714ad5d5e28f34d707bc94d9a758874cf8bfd --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html @@ -0,0 +1,223 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Backend_HistoricalDataList.AsyncLoadCallback (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Backend_HistoricalDataList.AsyncLoadCallback (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Prev Class</span></a></li> +<li>Next Class</li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html" target="_top">Frames</a></li> +<li><a href="Backend_HistoricalDataList.AsyncLoadCallback.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.backend.historical</div> +<h2 title="Interface Backend_HistoricalDataList.AsyncLoadCallback" class="title">Interface Backend_HistoricalDataList.AsyncLoadCallback</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">Backend_HistoricalDataList.AsyncLoadCallback</span></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html#onDone--">onDone</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onDone--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onDone</h4> +<pre>void onDone()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Prev Class</span></a></li> +<li>Next Class</li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html" target="_top">Frames</a></li> +<li><a href="Backend_HistoricalDataList.AsyncLoadCallback.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html new file mode 100644 index 0000000000000000000000000000000000000000..e3fb3ffc4cf31420af6de78f0a7ec82d06e3c4f7 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html @@ -0,0 +1,545 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Backend_HistoricalDataList (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Backend_HistoricalDataList (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" target="_top">Frames</a></li> +<li><a href="Backend_HistoricalDataList.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.backend.historical</div> +<h2 title="Interface Backend_HistoricalDataList" class="title">Interface Backend_HistoricalDataList</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></dd> +</dl> +<hr> +<br> +<pre>public interface <span class="typeNameLabel">Backend_HistoricalDataList</span></pre> +<div class="block">Defines a specification for an interface over an in-memory list of historical data that optionally syncs to/from + disk using an implementation of <a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><code>Backend_HistoricalDatabase</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList.AsyncLoadCallback</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#LOAD_STATE__LOADED">LOAD_STATE__LOADED</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#LOAD_STATE__LOADING">LOAD_STATE__LOADING</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#LOAD_STATE__NOT_LOADED">LOAD_STATE__NOT_LOADED</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#add_multiple-com.idevicesinc.sweetblue.utils.ForEach_Returning-int-long-">add_multiple</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Returning</a><<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> historicalData, + int persistenceLevel, + long limit)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#add_multiple-java.util.Iterator-int-long-">add_multiple</a></span>(<a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> historicalData, + int persistenceLevel, + long limit)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#add_single-com.idevicesinc.sweetblue.utils.HistoricalData-int-long-">add_single</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> historicalData, + int persistenceLevel, + long limit)</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#delete_fromMemoryAndDatabase-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_fromMemoryAndDatabase</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#delete_fromMemoryOnly-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_fromMemoryOnly</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</code> </td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#delete_fromMemoryOnlyForNowButDatabaseSoon-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_fromMemoryOnlyForNowButDatabaseSoon</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</code> </td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#doForEach-com.idevicesinc.sweetblue.utils.EpochTimeRange-java.lang.Object-">doForEach</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> forEach)</code> </td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code><a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#get-com.idevicesinc.sweetblue.utils.EpochTimeRange-int-">get</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + int offset)</code> </td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#getCount-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCount</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> </td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code><a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#getCursor-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCursor</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> </td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#getIterator-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getIterator</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> </td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#getLoadState--">getLoadState</a></span>()</code> </td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#getMacAddress--">getMacAddress</a></span>()</code> </td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code><a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#getRange--">getRange</a></span>()</code> </td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#init-com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase-com.idevicesinc.sweetblue.utils.UpdateLoop-java.lang.String-java.util.UUID-java.lang.String-boolean-">init</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a> database, + <a href="../../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a> updateLoop, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuidName, + boolean hasExistingTable)</code> </td> +</tr> +<tr id="i15" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#load-com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList.AsyncLoadCallback-">load</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList.AsyncLoadCallback</a> callback_nullable)</code> </td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="LOAD_STATE__NOT_LOADED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>LOAD_STATE__NOT_LOADED</h4> +<pre>static final int LOAD_STATE__NOT_LOADED</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../../constant-values.html#com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList.LOAD_STATE__NOT_LOADED">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="LOAD_STATE__LOADING"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>LOAD_STATE__LOADING</h4> +<pre>static final int LOAD_STATE__LOADING</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../../constant-values.html#com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList.LOAD_STATE__LOADING">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="LOAD_STATE__LOADED"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>LOAD_STATE__LOADED</h4> +<pre>static final int LOAD_STATE__LOADED</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../../constant-values.html#com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList.LOAD_STATE__LOADED">Constant Field Values</a></dd> +</dl> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="init-com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase-com.idevicesinc.sweetblue.utils.UpdateLoop-java.lang.String-java.util.UUID-java.lang.String-boolean-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>init</h4> +<pre>void init(<a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a> database, + <a href="../../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a> updateLoop, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuidName, + boolean hasExistingTable)</pre> +</li> +</ul> +<a name="add_single-com.idevicesinc.sweetblue.utils.HistoricalData-int-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add_single</h4> +<pre>void add_single(<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> historicalData, + int persistenceLevel, + long limit)</pre> +</li> +</ul> +<a name="add_multiple-java.util.Iterator-int-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add_multiple</h4> +<pre>void add_multiple(<a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> historicalData, + int persistenceLevel, + long limit)</pre> +</li> +</ul> +<a name="add_multiple-com.idevicesinc.sweetblue.utils.ForEach_Returning-int-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add_multiple</h4> +<pre>void add_multiple(<a href="../../../../../com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Returning</a><<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> historicalData, + int persistenceLevel, + long limit)</pre> +</li> +</ul> +<a name="getCount-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getCount</h4> +<pre>int getCount(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +</li> +</ul> +<a name="get-com.idevicesinc.sweetblue.utils.EpochTimeRange-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>get</h4> +<pre><a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> get(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + int offset)</pre> +</li> +</ul> +<a name="getIterator-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getIterator</h4> +<pre><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> getIterator(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +</li> +</ul> +<a name="doForEach-com.idevicesinc.sweetblue.utils.EpochTimeRange-java.lang.Object-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>doForEach</h4> +<pre>boolean doForEach(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> forEach)</pre> +</li> +</ul> +<a name="delete_fromMemoryOnly-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>delete_fromMemoryOnly</h4> +<pre>void delete_fromMemoryOnly(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</pre> +</li> +</ul> +<a name="delete_fromMemoryOnlyForNowButDatabaseSoon-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>delete_fromMemoryOnlyForNowButDatabaseSoon</h4> +<pre>void delete_fromMemoryOnlyForNowButDatabaseSoon(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</pre> +</li> +</ul> +<a name="delete_fromMemoryAndDatabase-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>delete_fromMemoryAndDatabase</h4> +<pre>void delete_fromMemoryAndDatabase(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</pre> +</li> +</ul> +<a name="getMacAddress--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getMacAddress</h4> +<pre><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getMacAddress()</pre> +</li> +</ul> +<a name="load-com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList.AsyncLoadCallback-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>load</h4> +<pre>void load(<a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList.AsyncLoadCallback</a> callback_nullable)</pre> +</li> +</ul> +<a name="getLoadState--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getLoadState</h4> +<pre>int getLoadState()</pre> +</li> +</ul> +<a name="getCursor-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getCursor</h4> +<pre><a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a> getCursor(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +</li> +</ul> +<a name="getRange--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getRange</h4> +<pre><a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> getRange()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" target="_top">Frames</a></li> +<li><a href="Backend_HistoricalDataList.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html new file mode 100644 index 0000000000000000000000000000000000000000..18115e0b1b5004ce73475f8c38a404d70207064e --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html @@ -0,0 +1,595 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Backend_HistoricalDataList_Default (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Backend_HistoricalDataList_Default (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" target="_top">Frames</a></li> +<li><a href="Backend_HistoricalDataList_Default.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.backend.historical</div> +<h2 title="Class Backend_HistoricalDataList_Default" class="title">Class Backend_HistoricalDataList_Default</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList_Default</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">Backend_HistoricalDataList_Default</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.backend.historical.<a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></h3> +<code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList.AsyncLoadCallback</a></code></li> +</ul> +</li> +</ul> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList"> +<!-- --> +</a> +<h3>Fields inherited from interface com.idevicesinc.sweetblue.backend.historical.<a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></h3> +<code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#LOAD_STATE__LOADED">LOAD_STATE__LOADED</a>, <a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#LOAD_STATE__LOADING">LOAD_STATE__LOADING</a>, <a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#LOAD_STATE__NOT_LOADED">LOAD_STATE__NOT_LOADED</a></code></li> +</ul> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#Backend_HistoricalDataList_Default--">Backend_HistoricalDataList_Default</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#add_multiple-com.idevicesinc.sweetblue.utils.ForEach_Returning-int-long-">add_multiple</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Returning</a><<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> historicalData, + int persistenceLevel, + long limit)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#add_multiple-java.util.Iterator-int-long-">add_multiple</a></span>(<a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> historicalData, + int persistenceLevel, + long limit)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#add_single-com.idevicesinc.sweetblue.utils.HistoricalData-int-long-">add_single</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> historicalData, + int persistenceLevel, + long limit)</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#delete_fromMemoryAndDatabase-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_fromMemoryAndDatabase</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#delete_fromMemoryOnly-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_fromMemoryOnly</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</code> </td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#delete_fromMemoryOnlyForNowButDatabaseSoon-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_fromMemoryOnlyForNowButDatabaseSoon</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</code> </td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#doForEach-com.idevicesinc.sweetblue.utils.EpochTimeRange-java.lang.Object-">doForEach</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> forEach)</code> </td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code><a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#get-com.idevicesinc.sweetblue.utils.EpochTimeRange-int-">get</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + int offset)</code> </td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#getCount-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCount</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> </td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code><a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#getCursor-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCursor</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> </td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#getIterator-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getIterator</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> </td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#getLoadState--">getLoadState</a></span>()</code> </td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#getMacAddress--">getMacAddress</a></span>()</code> </td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code><a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#getRange--">getRange</a></span>()</code> </td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#init-com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase-com.idevicesinc.sweetblue.utils.UpdateLoop-java.lang.String-java.util.UUID-java.lang.String-boolean-">init</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a> database, + <a href="../../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a> updateLoop, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuidName, + boolean hasExistingTable)</code> </td> +</tr> +<tr id="i15" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#load-com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList.AsyncLoadCallback-">load</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList.AsyncLoadCallback</a> callback_nullable)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="Backend_HistoricalDataList_Default--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>Backend_HistoricalDataList_Default</h4> +<pre>public Backend_HistoricalDataList_Default()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="init-com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase-com.idevicesinc.sweetblue.utils.UpdateLoop-java.lang.String-java.util.UUID-java.lang.String-boolean-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>init</h4> +<pre>public void init(<a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a> database, + <a href="../../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a> updateLoop, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuidName, + boolean hasExistingTable)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#init-com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase-com.idevicesinc.sweetblue.utils.UpdateLoop-java.lang.String-java.util.UUID-java.lang.String-boolean-">init</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></code></dd> +</dl> +</li> +</ul> +<a name="add_single-com.idevicesinc.sweetblue.utils.HistoricalData-int-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add_single</h4> +<pre>public void add_single(<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> historicalData, + int persistenceLevel, + long limit)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#add_single-com.idevicesinc.sweetblue.utils.HistoricalData-int-long-">add_single</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></code></dd> +</dl> +</li> +</ul> +<a name="add_multiple-java.util.Iterator-int-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add_multiple</h4> +<pre>public void add_multiple(<a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> historicalData, + int persistenceLevel, + long limit)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#add_multiple-java.util.Iterator-int-long-">add_multiple</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></code></dd> +</dl> +</li> +</ul> +<a name="add_multiple-com.idevicesinc.sweetblue.utils.ForEach_Returning-int-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add_multiple</h4> +<pre>public void add_multiple(<a href="../../../../../com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Returning</a><<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> historicalData, + int persistenceLevel, + long limit)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#add_multiple-com.idevicesinc.sweetblue.utils.ForEach_Returning-int-long-">add_multiple</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></code></dd> +</dl> +</li> +</ul> +<a name="getCount-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getCount</h4> +<pre>public int getCount(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#getCount-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCount</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></code></dd> +</dl> +</li> +</ul> +<a name="get-com.idevicesinc.sweetblue.utils.EpochTimeRange-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>get</h4> +<pre>public <a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> get(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + int offset)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#get-com.idevicesinc.sweetblue.utils.EpochTimeRange-int-">get</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></code></dd> +</dl> +</li> +</ul> +<a name="getIterator-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getIterator</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> getIterator(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#getIterator-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getIterator</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></code></dd> +</dl> +</li> +</ul> +<a name="doForEach-com.idevicesinc.sweetblue.utils.EpochTimeRange-java.lang.Object-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>doForEach</h4> +<pre>public boolean doForEach(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> forEach)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#doForEach-com.idevicesinc.sweetblue.utils.EpochTimeRange-java.lang.Object-">doForEach</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></code></dd> +</dl> +</li> +</ul> +<a name="delete_fromMemoryOnly-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>delete_fromMemoryOnly</h4> +<pre>public void delete_fromMemoryOnly(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#delete_fromMemoryOnly-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_fromMemoryOnly</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></code></dd> +</dl> +</li> +</ul> +<a name="delete_fromMemoryOnlyForNowButDatabaseSoon-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>delete_fromMemoryOnlyForNowButDatabaseSoon</h4> +<pre>public void delete_fromMemoryOnlyForNowButDatabaseSoon(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#delete_fromMemoryOnlyForNowButDatabaseSoon-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_fromMemoryOnlyForNowButDatabaseSoon</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></code></dd> +</dl> +</li> +</ul> +<a name="delete_fromMemoryAndDatabase-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>delete_fromMemoryAndDatabase</h4> +<pre>public void delete_fromMemoryAndDatabase(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#delete_fromMemoryAndDatabase-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_fromMemoryAndDatabase</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></code></dd> +</dl> +</li> +</ul> +<a name="getMacAddress--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getMacAddress</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getMacAddress()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#getMacAddress--">getMacAddress</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></code></dd> +</dl> +</li> +</ul> +<a name="load-com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList.AsyncLoadCallback-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>load</h4> +<pre>public void load(<a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList.AsyncLoadCallback</a> callback_nullable)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#load-com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList.AsyncLoadCallback-">load</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></code></dd> +</dl> +</li> +</ul> +<a name="getLoadState--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getLoadState</h4> +<pre>public int getLoadState()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#getLoadState--">getLoadState</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></code></dd> +</dl> +</li> +</ul> +<a name="getCursor-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getCursor</h4> +<pre>public <a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a> getCursor(<a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#getCursor-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCursor</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></code></dd> +</dl> +</li> +</ul> +<a name="getRange--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getRange</h4> +<pre>public <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> getRange()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#getRange--">getRange</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" target="_top">Frames</a></li> +<li><a href="Backend_HistoricalDataList_Default.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html new file mode 100644 index 0000000000000000000000000000000000000000..d81cbc39df8a78452edc865c7dec07e702f68775 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html @@ -0,0 +1,453 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:04 EST 2017 --> +<title>Backend_HistoricalDatabase (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Backend_HistoricalDatabase (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev Class</li> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" target="_top">Frames</a></li> +<li><a href="Backend_HistoricalDatabase.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.backend.historical</div> +<h2 title="Interface Backend_HistoricalDatabase" class="title">Interface Backend_HistoricalDatabase</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></dd> +</dl> +<hr> +<br> +<pre>public interface <span class="typeNameLabel">Backend_HistoricalDatabase</span></pre> +<div class="block">Defines a specification for an interface over a disk-persisted database (probably SQL-based but not necessarily) + storing arbitrary historical data for each MAC-address/UUID combination provided.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#add_multiple_end--">add_multiple_end</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#add_multiple_next-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.HistoricalData-">add_multiple_next</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> data)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#add_multiple_start--">add_multiple_start</a></span>()</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#add_single-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.HistoricalData-long-">add_single</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> data, + long maxCountToDelete)</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#delete_multipleUuids-java.lang.String:A-java.util.UUID:A-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_multipleUuids</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] macAddresses, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</code> </td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#delete_singleUuid_all-java.lang.String-java.util.UUID-">delete_singleUuid_all</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> </td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#delete_singleUuid_inRange-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_singleUuid_inRange</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long maxCountToDelete)</code> </td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#delete_singleUuid_singleDate-java.lang.String-java.util.UUID-long-">delete_singleUuid_singleDate</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + long date)</code> </td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#doesDataExist-java.lang.String-java.util.UUID-">doesDataExist</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> </td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#getCount-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCount</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> </td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code><a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#getCursor-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCursor</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> </td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#getTableName-java.lang.String-java.util.UUID-">getTableName</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> </td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#init-com.idevicesinc.sweetblue.BleManager-">init</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> manager)</code> </td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#load-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-com.idevicesinc.sweetblue.utils.ForEach_Void-">load</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + <a href="../../../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> forEach)</code> </td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#query-java.lang.String-">query</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> query)</code> </td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="init-com.idevicesinc.sweetblue.BleManager-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>init</h4> +<pre>void init(<a href="../../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> manager)</pre> +</li> +</ul> +<a name="add_single-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.HistoricalData-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add_single</h4> +<pre>void add_single(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> data, + long maxCountToDelete)</pre> +</li> +</ul> +<a name="add_multiple_start--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add_multiple_start</h4> +<pre>void add_multiple_start()</pre> +</li> +</ul> +<a name="add_multiple_next-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.HistoricalData-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add_multiple_next</h4> +<pre>void add_multiple_next(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> data)</pre> +</li> +</ul> +<a name="add_multiple_end--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add_multiple_end</h4> +<pre>void add_multiple_end()</pre> +</li> +</ul> +<a name="delete_singleUuid_all-java.lang.String-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>delete_singleUuid_all</h4> +<pre>void delete_singleUuid_all(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +</li> +</ul> +<a name="delete_singleUuid_inRange-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>delete_singleUuid_inRange</h4> +<pre>void delete_singleUuid_inRange(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long maxCountToDelete)</pre> +</li> +</ul> +<a name="delete_singleUuid_singleDate-java.lang.String-java.util.UUID-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>delete_singleUuid_singleDate</h4> +<pre>void delete_singleUuid_singleDate(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + long date)</pre> +</li> +</ul> +<a name="delete_multipleUuids-java.lang.String:A-java.util.UUID:A-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>delete_multipleUuids</h4> +<pre>void delete_multipleUuids(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] macAddresses, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</pre> +</li> +</ul> +<a name="doesDataExist-java.lang.String-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>doesDataExist</h4> +<pre>boolean doesDataExist(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +</li> +</ul> +<a name="load-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-com.idevicesinc.sweetblue.utils.ForEach_Void-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>load</h4> +<pre>void load(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + <a href="../../../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> forEach)</pre> +</li> +</ul> +<a name="getCount-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getCount</h4> +<pre>int getCount(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +</li> +</ul> +<a name="getCursor-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getCursor</h4> +<pre><a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a> getCursor(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +</li> +</ul> +<a name="query-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>query</h4> +<pre><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a> query(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> query)</pre> +</li> +</ul> +<a name="getTableName-java.lang.String-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getTableName</h4> +<pre><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getTableName(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev Class</li> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" target="_top">Frames</a></li> +<li><a href="Backend_HistoricalDatabase.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html new file mode 100644 index 0000000000000000000000000000000000000000..77fa6a79b9a0e8c8c5b750840b1a4ce3a0e0056a --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html @@ -0,0 +1,576 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Backend_HistoricalDatabase_Default (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Backend_HistoricalDatabase_Default (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" target="_top">Frames</a></li> +<li><a href="Backend_HistoricalDatabase_Default.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.backend.historical</div> +<h2 title="Class Backend_HistoricalDatabase_Default" class="title">Class Backend_HistoricalDatabase_Default</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase_Default</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">Backend_HistoricalDatabase_Default</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></pre> +<div class="block">Defines a specification for an interface over a disk-persisted database (probably SQL-based but not necessarily) + storing arbitrary historical data for each MAC-address/UUID combination provided.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#Backend_HistoricalDatabase_Default--">Backend_HistoricalDatabase_Default</a></span>()</code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#Backend_HistoricalDatabase_Default-android.content.Context-">Backend_HistoricalDatabase_Default</a></span>(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#add_multiple_end--">add_multiple_end</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#add_multiple_next-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.HistoricalData-">add_multiple_next</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> data)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#add_multiple_start--">add_multiple_start</a></span>()</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#add_single-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.HistoricalData-long-">add_single</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> data, + long maxCountToDelete)</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#delete_multipleUuids-java.lang.String:A-java.util.UUID:A-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_multipleUuids</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] macAddresses, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</code> </td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#delete_singleUuid_all-java.lang.String-java.util.UUID-">delete_singleUuid_all</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> </td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#delete_singleUuid_inRange-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_singleUuid_inRange</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long maxCountToDelete)</code> </td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#delete_singleUuid_singleDate-java.lang.String-java.util.UUID-long-">delete_singleUuid_singleDate</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + long date)</code> </td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#doesDataExist-java.lang.String-java.util.UUID-">doesDataExist</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> </td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#getCount-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCount</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> </td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code><a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#getCursor-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCursor</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> </td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#getTableName-java.lang.String-java.util.UUID-">getTableName</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> </td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#init-com.idevicesinc.sweetblue.BleManager-">init</a></span>(<a href="../../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> manager)</code> </td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#load-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-com.idevicesinc.sweetblue.utils.ForEach_Void-">load</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + <a href="../../../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> forEach)</code> </td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#query-java.lang.String-">query</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> query)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="Backend_HistoricalDatabase_Default-android.content.Context-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>Backend_HistoricalDatabase_Default</h4> +<pre>public Backend_HistoricalDatabase_Default(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context)</pre> +</li> +</ul> +<a name="Backend_HistoricalDatabase_Default--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>Backend_HistoricalDatabase_Default</h4> +<pre>public Backend_HistoricalDatabase_Default()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="init-com.idevicesinc.sweetblue.BleManager-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>init</h4> +<pre>public void init(<a href="../../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> manager)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#init-com.idevicesinc.sweetblue.BleManager-">init</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></code></dd> +</dl> +</li> +</ul> +<a name="add_single-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.HistoricalData-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add_single</h4> +<pre>public void add_single(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> data, + long maxCountToDelete)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#add_single-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.HistoricalData-long-">add_single</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></code></dd> +</dl> +</li> +</ul> +<a name="add_multiple_start--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add_multiple_start</h4> +<pre>public void add_multiple_start()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#add_multiple_start--">add_multiple_start</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></code></dd> +</dl> +</li> +</ul> +<a name="add_multiple_next-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.HistoricalData-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add_multiple_next</h4> +<pre>public void add_multiple_next(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> data)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#add_multiple_next-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.HistoricalData-">add_multiple_next</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></code></dd> +</dl> +</li> +</ul> +<a name="add_multiple_end--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add_multiple_end</h4> +<pre>public void add_multiple_end()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#add_multiple_end--">add_multiple_end</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></code></dd> +</dl> +</li> +</ul> +<a name="delete_singleUuid_all-java.lang.String-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>delete_singleUuid_all</h4> +<pre>public void delete_singleUuid_all(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#delete_singleUuid_all-java.lang.String-java.util.UUID-">delete_singleUuid_all</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></code></dd> +</dl> +</li> +</ul> +<a name="delete_singleUuid_inRange-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>delete_singleUuid_inRange</h4> +<pre>public void delete_singleUuid_inRange(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long maxCountToDelete)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#delete_singleUuid_inRange-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_singleUuid_inRange</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></code></dd> +</dl> +</li> +</ul> +<a name="delete_singleUuid_singleDate-java.lang.String-java.util.UUID-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>delete_singleUuid_singleDate</h4> +<pre>public void delete_singleUuid_singleDate(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + long date)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#delete_singleUuid_singleDate-java.lang.String-java.util.UUID-long-">delete_singleUuid_singleDate</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></code></dd> +</dl> +</li> +</ul> +<a name="delete_multipleUuids-java.lang.String:A-java.util.UUID:A-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>delete_multipleUuids</h4> +<pre>public void delete_multipleUuids(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] macAddresses, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] uuids, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + long count)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#delete_multipleUuids-java.lang.String:A-java.util.UUID:A-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_multipleUuids</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></code></dd> +</dl> +</li> +</ul> +<a name="doesDataExist-java.lang.String-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>doesDataExist</h4> +<pre>public boolean doesDataExist(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#doesDataExist-java.lang.String-java.util.UUID-">doesDataExist</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></code></dd> +</dl> +</li> +</ul> +<a name="load-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-com.idevicesinc.sweetblue.utils.ForEach_Void-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>load</h4> +<pre>public void load(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range, + <a href="../../../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><<a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a>> forEach)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#load-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-com.idevicesinc.sweetblue.utils.ForEach_Void-">load</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></code></dd> +</dl> +</li> +</ul> +<a name="getCount-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getCount</h4> +<pre>public int getCount(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#getCount-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCount</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></code></dd> +</dl> +</li> +</ul> +<a name="getCursor-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getCursor</h4> +<pre>public <a href="../../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a> getCursor(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid, + <a href="../../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#getCursor-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCursor</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></code></dd> +</dl> +</li> +</ul> +<a name="query-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>query</h4> +<pre>public <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a> query(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> query)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#query-java.lang.String-">query</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></code></dd> +</dl> +</li> +</ul> +<a name="getTableName-java.lang.String-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getTableName</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getTableName(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#getTableName-java.lang.String-java.util.UUID-">getTableName</a></code> in interface <code><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" target="_top">Frames</a></li> +<li><a href="Backend_HistoricalDatabase_Default.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/package-frame.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/package-frame.html new file mode 100644 index 0000000000000000000000000000000000000000..6846773ffa061d6c733c89ec45a9553eb346f07d --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/package-frame.html @@ -0,0 +1,27 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>com.idevicesinc.sweetblue.backend.historical (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../../script.js"></script> +</head> +<body> +<h1 class="bar"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/package-summary.html" target="classFrame">com.idevicesinc.sweetblue.backend.historical</a></h1> +<div class="indexContainer"> +<h2 title="Interfaces">Interfaces</h2> +<ul title="Interfaces"> +<li><a href="Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical" target="classFrame"><span class="interfaceName">Backend_HistoricalDatabase</span></a></li> +<li><a href="Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical" target="classFrame"><span class="interfaceName">Backend_HistoricalDataList</span></a></li> +<li><a href="Backend_HistoricalDataList.AsyncLoadCallback.html" title="interface in com.idevicesinc.sweetblue.backend.historical" target="classFrame"><span class="interfaceName">Backend_HistoricalDataList.AsyncLoadCallback</span></a></li> +</ul> +<h2 title="Classes">Classes</h2> +<ul title="Classes"> +<li><a href="Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical" target="classFrame">Backend_HistoricalDatabase_Default</a></li> +<li><a href="Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical" target="classFrame">Backend_HistoricalDataList_Default</a></li> +</ul> +</div> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/package-summary.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/package-summary.html new file mode 100644 index 0000000000000000000000000000000000000000..1ce4d4eda9f719251bcc2056bc9cb355ec62b41d --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/package-summary.html @@ -0,0 +1,190 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>com.idevicesinc.sweetblue.backend.historical (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="com.idevicesinc.sweetblue.backend.historical (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li class="navBarCell1Rev">Package</li> +<li>Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/package-summary.html">Prev Package</a></li> +<li><a href="../../../../../com/idevicesinc/sweetblue/compat/package-summary.html">Next Package</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?com/idevicesinc/sweetblue/backend/historical/package-summary.html" target="_top">Frames</a></li> +<li><a href="package-summary.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 title="Package" class="title">Package com.idevicesinc.sweetblue.backend.historical</h1> +<div class="docSummary"> +<div class="block">Contains specification and default implementation of a "backend" for instances of <a href="../../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> + that stores and manages historical data.</div> +</div> +<p>See: <a href="#package.description">Description</a></p> +</div> +<div class="contentContainer"> +<ul class="blockList"> +<li class="blockList"> +<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation"> +<caption><span>Interface Summary</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Interface</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></td> +<td class="colLast"> +<div class="block">Defines a specification for an interface over a disk-persisted database (probably SQL-based but not necessarily) + storing arbitrary historical data for each MAC-address/UUID combination provided.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></td> +<td class="colLast"> +<div class="block">Defines a specification for an interface over an in-memory list of historical data that optionally syncs to/from + disk using an implementation of <a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><code>Backend_HistoricalDatabase</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList.AsyncLoadCallback</a></td> +<td class="colLast"> </td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation"> +<caption><span>Class Summary</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Class</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></td> +<td class="colLast"> +<div class="block">Defines a specification for an interface over a disk-persisted database (probably SQL-based but not necessarily) + storing arbitrary historical data for each MAC-address/UUID combination provided.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></td> +<td class="colLast"> </td> +</tr> +</tbody> +</table> +</li> +</ul> +<a name="package.description"> +<!-- --> +</a> +<h2 title="Package com.idevicesinc.sweetblue.backend.historical Description">Package com.idevicesinc.sweetblue.backend.historical Description</h2> +<div class="block">Contains specification and default implementation of a "backend" for instances of <a href="../../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> + that stores and manages historical data. The default implementation released with the open source GPLv3 code can only + track one piece of historical data per UUID at a time, and only to memory. + <br><br> + Please contact sweetblue@idevicesinc.com to discuss upgrade options.</div> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li class="navBarCell1Rev">Package</li> +<li>Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/package-summary.html">Prev Package</a></li> +<li><a href="../../../../../com/idevicesinc/sweetblue/compat/package-summary.html">Next Package</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?com/idevicesinc/sweetblue/backend/historical/package-summary.html" target="_top">Frames</a></li> +<li><a href="package-summary.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/package-tree.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/package-tree.html new file mode 100644 index 0000000000000000000000000000000000000000..d98503071e596d5c4f588d58917164001bbb93c3 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/historical/package-tree.html @@ -0,0 +1,142 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>com.idevicesinc.sweetblue.backend.historical Class Hierarchy (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="com.idevicesinc.sweetblue.backend.historical Class Hierarchy (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li>Class</li> +<li class="navBarCell1Rev">Tree</li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/package-tree.html">Prev</a></li> +<li><a href="../../../../../com/idevicesinc/sweetblue/compat/package-tree.html">Next</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?com/idevicesinc/sweetblue/backend/historical/package-tree.html" target="_top">Frames</a></li> +<li><a href="package-tree.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 class="title">Hierarchy For Package com.idevicesinc.sweetblue.backend.historical</h1> +<span class="packageHierarchyLabel">Package Hierarchies:</span> +<ul class="horizontal"> +<li><a href="../../../../../overview-tree.html">All Packages</a></li> +</ul> +</div> +<div class="contentContainer"> +<h2 title="Class Hierarchy">Class Hierarchy</h2> +<ul> +<li type="circle">java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.backend.historical.<a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Backend_HistoricalDatabase_Default</span></a> (implements com.idevicesinc.sweetblue.backend.historical.<a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.backend.historical.<a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Backend_HistoricalDataList_Default</span></a> (implements com.idevicesinc.sweetblue.backend.historical.<a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a>)</li> +</ul> +</li> +</ul> +<h2 title="Interface Hierarchy">Interface Hierarchy</h2> +<ul> +<li type="circle">com.idevicesinc.sweetblue.backend.historical.<a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Backend_HistoricalDatabase</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.backend.historical.<a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Backend_HistoricalDataList</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.backend.historical.<a href="../../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Backend_HistoricalDataList.AsyncLoadCallback</span></a></li> +</ul> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li>Class</li> +<li class="navBarCell1Rev">Tree</li> +<li><a href="../../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../../index-all.html">Index</a></li> +<li><a href="../../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../../com/idevicesinc/sweetblue/backend/package-tree.html">Prev</a></li> +<li><a href="../../../../../com/idevicesinc/sweetblue/compat/package-tree.html">Next</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../../index.html?com/idevicesinc/sweetblue/backend/historical/package-tree.html" target="_top">Frames</a></li> +<li><a href="package-tree.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/package-frame.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/package-frame.html new file mode 100644 index 0000000000000000000000000000000000000000..e67a14c4201aca0bb4fe84a57778763eab7b0656 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/package-frame.html @@ -0,0 +1,20 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>com.idevicesinc.sweetblue.backend (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<h1 class="bar"><a href="../../../../com/idevicesinc/sweetblue/backend/package-summary.html" target="classFrame">com.idevicesinc.sweetblue.backend</a></h1> +<div class="indexContainer"> +<h2 title="Classes">Classes</h2> +<ul title="Classes"> +<li><a href="Backend_Modules.html" title="class in com.idevicesinc.sweetblue.backend" target="classFrame">Backend_Modules</a></li> +</ul> +</div> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/package-summary.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/package-summary.html new file mode 100644 index 0000000000000000000000000000000000000000..f10eb358cd971affe286f72c8653aeffa9c07863 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/package-summary.html @@ -0,0 +1,170 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>com.idevicesinc.sweetblue.backend (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="com.idevicesinc.sweetblue.backend (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li class="navBarCell1Rev">Package</li> +<li>Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/package-summary.html">Prev Package</a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/backend/historical/package-summary.html">Next Package</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/backend/package-summary.html" target="_top">Frames</a></li> +<li><a href="package-summary.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 title="Package" class="title">Package com.idevicesinc.sweetblue.backend</h1> +<div class="docSummary"> +<div class="block">Contains specification and default implementation of "backend" modules for SweetBlue.</div> +</div> +<p>See: <a href="#package.description">Description</a></p> +</div> +<div class="contentContainer"> +<ul class="blockList"> +<li class="blockList"> +<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation"> +<caption><span>Class Summary</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Class</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/backend/Backend_Modules.html" title="class in com.idevicesinc.sweetblue.backend">Backend_Modules</a></td> +<td class="colLast"> +<div class="block">A collection of <a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang"><code>Class</code></a> instances used through <a href="http://d.android.com/reference/java/lang/Class.html?is-external=true#newInstance--" title="class or interface in java.lang"><code>Class.newInstance()</code></a> to create instances of backend modules.</div> +</td> +</tr> +</tbody> +</table> +</li> +</ul> +<a name="package.description"> +<!-- --> +</a> +<h2 title="Package com.idevicesinc.sweetblue.backend Description">Package com.idevicesinc.sweetblue.backend Description</h2> +<div class="block">Contains specification and default implementation of "backend" modules for SweetBlue. You never use anything in these subpackages + directly - rather they are the implementations for various official public methods of classes like <a href="../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> + and <a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>. Implementations released with the open source + GPLv3 code are restricted to give you a sample of the functionality but are most-likely not useful for production purposes. + Please contact sweetblue@idevicesinc.com to discuss upgrade options. + <br><br> + The current back-end modules are as follows: + <p><ul> + <li>Historical Data for tracking past results of reads and notifications.</li> + </ul></p> + <br><br> + In varying stages of development are: + <p><ul> + <li>iBeacon/AltBeacon support.</li> + <li>BLE Server support (phone acts as the server).</li> + </ul></p> + <br><br> + NOTE: In general nothing in these subpackages is subject to backwards-compatible guarantees like the rest of the core of the library is. + Method and interface signatures may change without warning, which should be fine because the average person using SweetBlue doesn't + need to worry about how the back-end is implemented.</div> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li class="navBarCell1Rev">Package</li> +<li>Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/package-summary.html">Prev Package</a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/backend/historical/package-summary.html">Next Package</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/backend/package-summary.html" target="_top">Frames</a></li> +<li><a href="package-summary.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/package-tree.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/package-tree.html new file mode 100644 index 0000000000000000000000000000000000000000..ff525c850f08208ba61fd7f3a97bd14c8d03fc76 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/backend/package-tree.html @@ -0,0 +1,135 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>com.idevicesinc.sweetblue.backend Class Hierarchy (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="com.idevicesinc.sweetblue.backend Class Hierarchy (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li>Class</li> +<li class="navBarCell1Rev">Tree</li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/package-tree.html">Prev</a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/backend/historical/package-tree.html">Next</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/backend/package-tree.html" target="_top">Frames</a></li> +<li><a href="package-tree.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 class="title">Hierarchy For Package com.idevicesinc.sweetblue.backend</h1> +<span class="packageHierarchyLabel">Package Hierarchies:</span> +<ul class="horizontal"> +<li><a href="../../../../overview-tree.html">All Packages</a></li> +</ul> +</div> +<div class="contentContainer"> +<h2 title="Class Hierarchy">Class Hierarchy</h2> +<ul> +<li type="circle">java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.backend.<a href="../../../../com/idevicesinc/sweetblue/backend/Backend_Modules.html" title="class in com.idevicesinc.sweetblue.backend"><span class="typeNameLink">Backend_Modules</span></a></li> +</ul> +</li> +</ul> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li>Class</li> +<li class="navBarCell1Rev">Tree</li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/annotations/package-tree.html">Prev</a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/backend/historical/package-tree.html">Next</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/backend/package-tree.html" target="_top">Frames</a></li> +<li><a href="package-tree.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/K_Util.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/K_Util.html new file mode 100644 index 0000000000000000000000000000000000000000..c41a2409e594fa989955cdf3244460aa0c46800f --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/K_Util.html @@ -0,0 +1,248 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>K_Util (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="K_Util (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev Class</li> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/compat/K_Util.html" target="_top">Frames</a></li> +<li><a href="K_Util.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.compat</div> +<h2 title="Class K_Util" class="title">Class K_Util</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.compat.K_Util</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">K_Util</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/K_Util.html#abortReliableWrite-com.idevicesinc.sweetblue.BleDevice-">abortReliableWrite</a></span>(<a href="../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/K_Util.html#createBond-com.idevicesinc.sweetblue.BleDevice-">createBond</a></span>(<a href="../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="abortReliableWrite-com.idevicesinc.sweetblue.BleDevice-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>abortReliableWrite</h4> +<pre>public static void abortReliableWrite(<a href="../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</pre> +</li> +</ul> +<a name="createBond-com.idevicesinc.sweetblue.BleDevice-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>createBond</h4> +<pre>public static boolean createBond(<a href="../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev Class</li> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/compat/K_Util.html" target="_top">Frames</a></li> +<li><a href="K_Util.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html new file mode 100644 index 0000000000000000000000000000000000000000..aa9a4a99ec035baee2d4dda6afbf2313c1ee6333 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html @@ -0,0 +1,251 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>L_Util.ScanCallback (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="L_Util.ScanCallback (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6,"i1":6,"i2":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" target="_top">Frames</a></li> +<li><a href="L_Util.ScanCallback.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.compat</div> +<h2 title="Interface L_Util.ScanCallback" class="title">Interface L_Util.ScanCallback</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.html" title="class in com.idevicesinc.sweetblue.compat">L_Util</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">L_Util.ScanCallback</span></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html#onBatchScanResults-java.util.List-">onBatchScanResults</a></span>(<a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat">L_Util.ScanResult</a>> results)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html#onScanFailed-int-">onScanFailed</a></span>(int errorCode)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html#onScanResult-int-com.idevicesinc.sweetblue.compat.L_Util.ScanResult-">onScanResult</a></span>(int callbackType, + <a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat">L_Util.ScanResult</a> result)</code> </td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onScanResult-int-com.idevicesinc.sweetblue.compat.L_Util.ScanResult-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>onScanResult</h4> +<pre>void onScanResult(int callbackType, + <a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat">L_Util.ScanResult</a> result)</pre> +</li> +</ul> +<a name="onBatchScanResults-java.util.List-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>onBatchScanResults</h4> +<pre>void onBatchScanResults(<a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat">L_Util.ScanResult</a>> results)</pre> +</li> +</ul> +<a name="onScanFailed-int-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onScanFailed</h4> +<pre>void onScanFailed(int errorCode)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" target="_top">Frames</a></li> +<li><a href="L_Util.ScanCallback.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html new file mode 100644 index 0000000000000000000000000000000000000000..16c803b767d460054f8bcb737fd6a883a10e256c --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html @@ -0,0 +1,299 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>L_Util.ScanResult (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="L_Util.ScanResult (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/M_Util.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" target="_top">Frames</a></li> +<li><a href="L_Util.ScanResult.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.compat</div> +<h2 title="Class L_Util.ScanResult" class="title">Class L_Util.ScanResult</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.compat.L_Util.ScanResult</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.html" title="class in com.idevicesinc.sweetblue.compat">L_Util</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">L_Util.ScanResult</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html#ScanResult--">ScanResult</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth">BluetoothDevice</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html#getDevice--">getDevice</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html#getRecord--">getRecord</a></span>()</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html#getRssi--">getRssi</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="ScanResult--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>ScanResult</h4> +<pre>public ScanResult()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="getDevice--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDevice</h4> +<pre>public <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth">BluetoothDevice</a> getDevice()</pre> +</li> +</ul> +<a name="getRssi--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getRssi</h4> +<pre>public int getRssi()</pre> +</li> +</ul> +<a name="getRecord--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getRecord</h4> +<pre>public byte[] getRecord()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/M_Util.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" target="_top">Frames</a></li> +<li><a href="L_Util.ScanResult.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/L_Util.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/L_Util.html new file mode 100644 index 0000000000000000000000000000000000000000..1d089c36ddcecc99e625542bd6c345c87be0a85b --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/L_Util.html @@ -0,0 +1,320 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>L_Util (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="L_Util (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/K_Util.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/compat/L_Util.html" target="_top">Frames</a></li> +<li><a href="L_Util.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.compat</div> +<h2 title="Class L_Util" class="title">Class L_Util</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.compat.L_Util</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">L_Util</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Class and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat">L_Util.ScanCallback</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat">L_Util.ScanResult</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.html#isAdvertisingSupportedByChipset-com.idevicesinc.sweetblue.BleManager-">isAdvertisingSupportedByChipset</a></span>(<a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> mgr)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.html#requestConnectionPriority-com.idevicesinc.sweetblue.BleDevice-int-">requestConnectionPriority</a></span>(<a href="../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device, + int mode)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.html#requestMtu-com.idevicesinc.sweetblue.BleDevice-int-">requestMtu</a></span>(<a href="../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device, + int mtu)</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.html#startNativeScan-com.idevicesinc.sweetblue.BleManager-int-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.compat.L_Util.ScanCallback-">startNativeScan</a></span>(<a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> mgr, + int scanMode, + <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanReportDelay, + <a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat">L_Util.ScanCallback</a> listener)</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.html#stopNativeScan-com.idevicesinc.sweetblue.BleManager-">stopNativeScan</a></span>(<a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> mgr)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="requestMtu-com.idevicesinc.sweetblue.BleDevice-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>requestMtu</h4> +<pre>public static boolean requestMtu(<a href="../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device, + int mtu)</pre> +</li> +</ul> +<a name="isAdvertisingSupportedByChipset-com.idevicesinc.sweetblue.BleManager-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAdvertisingSupportedByChipset</h4> +<pre>public static boolean isAdvertisingSupportedByChipset(<a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> mgr)</pre> +</li> +</ul> +<a name="stopNativeScan-com.idevicesinc.sweetblue.BleManager-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stopNativeScan</h4> +<pre>public static void stopNativeScan(<a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> mgr)</pre> +</li> +</ul> +<a name="requestConnectionPriority-com.idevicesinc.sweetblue.BleDevice-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>requestConnectionPriority</h4> +<pre>public static boolean requestConnectionPriority(<a href="../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a> device, + int mode)</pre> +</li> +</ul> +<a name="startNativeScan-com.idevicesinc.sweetblue.BleManager-int-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.compat.L_Util.ScanCallback-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>startNativeScan</h4> +<pre>public static void startNativeScan(<a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> mgr, + int scanMode, + <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanReportDelay, + <a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat">L_Util.ScanCallback</a> listener)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/K_Util.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/compat/L_Util.html" target="_top">Frames</a></li> +<li><a href="L_Util.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/M_Util.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/M_Util.html new file mode 100644 index 0000000000000000000000000000000000000000..0834508f9fc03b7b281dac5816d605322427d2b2 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/M_Util.html @@ -0,0 +1,286 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>M_Util (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="M_Util (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":9,"i3":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">Prev Class</span></a></li> +<li>Next Class</li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/compat/M_Util.html" target="_top">Frames</a></li> +<li><a href="M_Util.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.compat</div> +<h2 title="Class M_Util" class="title">Class M_Util</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.compat.M_Util</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">M_Util</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGatt</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/M_Util.html#connect-android.bluetooth.BluetoothDevice-android.content.Context-android.bluetooth.BluetoothGattCallback-">connect</a></span>(<a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth">BluetoothDevice</a> device, + <a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context, + <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCallback.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCallback</a> callback)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/M_Util.html#requestPermissions-android.app.Activity-int-">requestPermissions</a></span>(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> context, + int requestCode)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/M_Util.html#shouldShowRequestPermissionRationale-android.app.Activity-">shouldShowRequestPermissionRationale</a></span>(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> context)</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/compat/M_Util.html#startNativeScan-com.idevicesinc.sweetblue.BleManager-int-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.compat.L_Util.ScanCallback-">startNativeScan</a></span>(<a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> mgr, + int scanMode, + <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanReportDelay, + <a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat">L_Util.ScanCallback</a> listener)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="shouldShowRequestPermissionRationale-android.app.Activity-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>shouldShowRequestPermissionRationale</h4> +<pre>public static boolean shouldShowRequestPermissionRationale(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> context)</pre> +</li> +</ul> +<a name="requestPermissions-android.app.Activity-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>requestPermissions</h4> +<pre>public static void requestPermissions(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> context, + int requestCode)</pre> +</li> +</ul> +<a name="startNativeScan-com.idevicesinc.sweetblue.BleManager-int-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.compat.L_Util.ScanCallback-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>startNativeScan</h4> +<pre>public static void startNativeScan(<a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> mgr, + int scanMode, + <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> scanReportDelay, + <a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat">L_Util.ScanCallback</a> listener)</pre> +</li> +</ul> +<a name="connect-android.bluetooth.BluetoothDevice-android.content.Context-android.bluetooth.BluetoothGattCallback-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>connect</h4> +<pre>public static <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGatt</a> connect(<a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth">BluetoothDevice</a> device, + <a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context, + <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCallback.html?is-external=true" title="class or interface in android.bluetooth">BluetoothGattCallback</a> callback)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">Prev Class</span></a></li> +<li>Next Class</li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/compat/M_Util.html" target="_top">Frames</a></li> +<li><a href="M_Util.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/package-frame.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/package-frame.html new file mode 100644 index 0000000000000000000000000000000000000000..290701ae6bb769dfafdce7e35f37e088feae1ee7 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/package-frame.html @@ -0,0 +1,27 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>com.idevicesinc.sweetblue.compat (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<h1 class="bar"><a href="../../../../com/idevicesinc/sweetblue/compat/package-summary.html" target="classFrame">com.idevicesinc.sweetblue.compat</a></h1> +<div class="indexContainer"> +<h2 title="Interfaces">Interfaces</h2> +<ul title="Interfaces"> +<li><a href="L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat" target="classFrame"><span class="interfaceName">L_Util.ScanCallback</span></a></li> +</ul> +<h2 title="Classes">Classes</h2> +<ul title="Classes"> +<li><a href="K_Util.html" title="class in com.idevicesinc.sweetblue.compat" target="classFrame">K_Util</a></li> +<li><a href="L_Util.html" title="class in com.idevicesinc.sweetblue.compat" target="classFrame">L_Util</a></li> +<li><a href="L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat" target="classFrame">L_Util.ScanResult</a></li> +<li><a href="M_Util.html" title="class in com.idevicesinc.sweetblue.compat" target="classFrame">M_Util</a></li> +</ul> +</div> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/package-summary.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/package-summary.html new file mode 100644 index 0000000000000000000000000000000000000000..6cc5fbd35384d820926d950b93cef9b09eb907e0 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/package-summary.html @@ -0,0 +1,177 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>com.idevicesinc.sweetblue.compat (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="com.idevicesinc.sweetblue.compat (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li class="navBarCell1Rev">Package</li> +<li>Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/backend/historical/package-summary.html">Prev Package</a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/package-summary.html">Next Package</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/compat/package-summary.html" target="_top">Frames</a></li> +<li><a href="package-summary.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 title="Package" class="title">Package com.idevicesinc.sweetblue.compat</h1> +<div class="docSummary"> +<div class="block">Contains utility classes for hiding away newer API calls.</div> +</div> +<p>See: <a href="#package.description">Description</a></p> +</div> +<div class="contentContainer"> +<ul class="blockList"> +<li class="blockList"> +<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation"> +<caption><span>Interface Summary</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Interface</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat">L_Util.ScanCallback</a></td> +<td class="colLast"> </td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation"> +<caption><span>Class Summary</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Class</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/compat/K_Util.html" title="class in com.idevicesinc.sweetblue.compat">K_Util</a></td> +<td class="colLast"> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.html" title="class in com.idevicesinc.sweetblue.compat">L_Util</a></td> +<td class="colLast"> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat">L_Util.ScanResult</a></td> +<td class="colLast"> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/compat/M_Util.html" title="class in com.idevicesinc.sweetblue.compat">M_Util</a></td> +<td class="colLast"> </td> +</tr> +</tbody> +</table> +</li> +</ul> +<a name="package.description"> +<!-- --> +</a> +<h2 title="Package com.idevicesinc.sweetblue.compat Description">Package com.idevicesinc.sweetblue.compat Description</h2> +<div class="block">Contains utility classes for hiding away newer API calls. This exists simply to avoid + getting logcat error statements when running on older devices.</div> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li class="navBarCell1Rev">Package</li> +<li>Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/backend/historical/package-summary.html">Prev Package</a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/package-summary.html">Next Package</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/compat/package-summary.html" target="_top">Frames</a></li> +<li><a href="package-summary.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/package-tree.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/package-tree.html new file mode 100644 index 0000000000000000000000000000000000000000..527527867a5f36044fcc152247b764e8c222e126 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/compat/package-tree.html @@ -0,0 +1,142 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>com.idevicesinc.sweetblue.compat Class Hierarchy (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="com.idevicesinc.sweetblue.compat Class Hierarchy (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li>Class</li> +<li class="navBarCell1Rev">Tree</li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/backend/historical/package-tree.html">Prev</a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/package-tree.html">Next</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/compat/package-tree.html" target="_top">Frames</a></li> +<li><a href="package-tree.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 class="title">Hierarchy For Package com.idevicesinc.sweetblue.compat</h1> +<span class="packageHierarchyLabel">Package Hierarchies:</span> +<ul class="horizontal"> +<li><a href="../../../../overview-tree.html">All Packages</a></li> +</ul> +</div> +<div class="contentContainer"> +<h2 title="Class Hierarchy">Class Hierarchy</h2> +<ul> +<li type="circle">java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.compat.<a href="../../../../com/idevicesinc/sweetblue/compat/K_Util.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">K_Util</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.compat.<a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">L_Util</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.compat.<a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">L_Util.ScanResult</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.compat.<a href="../../../../com/idevicesinc/sweetblue/compat/M_Util.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">M_Util</span></a></li> +</ul> +</li> +</ul> +<h2 title="Interface Hierarchy">Interface Hierarchy</h2> +<ul> +<li type="circle">com.idevicesinc.sweetblue.compat.<a href="../../../../com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">L_Util.ScanCallback</span></a></li> +</ul> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li>Class</li> +<li class="navBarCell1Rev">Tree</li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/backend/historical/package-tree.html">Prev</a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/package-tree.html">Next</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/compat/package-tree.html" target="_top">Frames</a></li> +<li><a href="package-tree.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/package-frame.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/package-frame.html new file mode 100644 index 0000000000000000000000000000000000000000..7cc02b8e22b4b1e3a59f9e7f63eb9f6c5a7a9da6 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/package-frame.html @@ -0,0 +1,164 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>com.idevicesinc.sweetblue (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<h1 class="bar"><a href="../../../com/idevicesinc/sweetblue/package-summary.html" target="classFrame">com.idevicesinc.sweetblue</a></h1> +<div class="indexContainer"> +<h2 title="Interfaces">Interfaces</h2> +<ul title="Interfaces"> +<li><a href="BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleDevice.BondListener</span></a></li> +<li><a href="BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleDevice.ConnectionFailListener</span></a></li> +<li><a href="BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleDevice.ReadWriteListener</span></a></li> +<li><a href="BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleDevice.StateListener</span></a></li> +<li><a href="BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleDeviceConfig.BondFilter</span></a></li> +<li><a href="BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleManager.AssertListener</span></a></li> +<li><a href="BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleManager.DiscoveryListener</span></a></li> +<li><a href="BleManager.NativeStateListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleManager.NativeStateListener</span></a></li> +<li><a href="BleManager.ResetListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleManager.ResetListener</span></a></li> +<li><a href="BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleManager.StateListener</span></a></li> +<li><a href="BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleManager.UhOhListener</span></a></li> +<li><a href="BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleManagerConfig.ScanFilter</span></a></li> +<li><a href="BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleNode.ConnectionFailListener</span></a></li> +<li><a href="BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleNode.HistoricalDataLoadListener</span></a></li> +<li><a href="BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleNode.HistoricalDataQueryListener</span></a></li> +<li><a href="BleNodeConfig.HistoricalDataFactory.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleNodeConfig.HistoricalDataFactory</span></a></li> +<li><a href="BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleNodeConfig.HistoricalDataLogFilter</span></a></li> +<li><a href="BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleNodeConfig.ReconnectFilter</span></a></li> +<li><a href="BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleNodeConfig.TaskTimeoutRequestFilter</span></a></li> +<li><a href="BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleServer.AdvertisingListener</span></a></li> +<li><a href="BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleServer.ConnectionFailListener</span></a></li> +<li><a href="BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleServer.ExchangeListener</span></a></li> +<li><a href="BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleServer.IncomingListener</span></a></li> +<li><a href="BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleServer.OutgoingListener</span></a></li> +<li><a href="BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleServer.ServiceAddListener</span></a></li> +<li><a href="BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleServer.StateListener</span></a></li> +<li><a href="BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleWriteTransaction.FailListener</span></a></li> +<li><a href="BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">BleWriteTransaction.WriteQueueListener</span></a></li> +<li><a href="PI_BleScanner.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">PI_BleScanner</span></a></li> +<li><a href="PI_BleStatusHelper.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">PI_BleStatusHelper</span></a></li> +<li><a href="PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">PI_UpdateLoop</span></a></li> +<li><a href="PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">PI_UpdateLoop.Callback</span></a></li> +<li><a href="PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">PI_UpdateLoop.IUpdateLoopFactory</span></a></li> +<li><a href="SweetLogger.html" title="interface in com.idevicesinc.sweetblue" target="classFrame"><span class="interfaceName">SweetLogger</span></a></li> +</ul> +<h2 title="Classes">Classes</h2> +<ul title="Classes"> +<li><a href="BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleAdvertisingPacket</a></li> +<li><a href="BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleAdvertisingSettings</a></li> +<li><a href="BleCharacteristic.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleCharacteristic</a></li> +<li><a href="BleDescriptor.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDescriptor</a></li> +<li><a href="BleDevice.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDevice</a></li> +<li><a href="BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDevice.BondListener.BondEvent</a></li> +<li><a href="BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></li> +<li><a href="BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDevice.DefaultConnectionFailListener</a></li> +<li><a href="BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDevice.ReadWriteListener.ReadWriteEvent</a></li> +<li><a href="BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDevice.StateListener.StateEvent</a></li> +<li><a href="BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDevice.WriteBuilder</a></li> +<li><a href="BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDeviceConfig</a></li> +<li><a href="BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDeviceConfig.BondFilter.CharacteristicEvent</a></li> +<li><a href="BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDeviceConfig.BondFilter.Please</a></li> +<li><a href="BleDeviceConfig.BondFilter.StateChangeEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDeviceConfig.BondFilter.StateChangeEvent</a></li> +<li><a href="BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDeviceConfig.DefaultBondFilter</a></li> +<li><a href="BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleDeviceIterator</a></li> +<li><a href="BleManager.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManager</a></li> +<li><a href="BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManager.AssertListener.AssertEvent</a></li> +<li><a href="BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManager.DiscoveryListener.DiscoveryEvent</a></li> +<li><a href="BleManager.NativeStateListener.NativeStateEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManager.NativeStateListener.NativeStateEvent</a></li> +<li><a href="BleManager.ResetListener.ResetEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManager.ResetListener.ResetEvent</a></li> +<li><a href="BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManager.StateListener.StateEvent</a></li> +<li><a href="BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManager.UhOhListener.UhOhEvent</a></li> +<li><a href="BleManagerConfig.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManagerConfig</a></li> +<li><a href="BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManagerConfig.DefaultScanFilter</a></li> +<li><a href="BleManagerConfig.DeviceNameComparator.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManagerConfig.DeviceNameComparator</a></li> +<li><a href="BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManagerConfig.ScanFilter.Please</a></li> +<li><a href="BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleManagerConfig.ScanFilter.ScanEvent</a></li> +<li><a href="BleNode.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNode</a></li> +<li><a href="BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNode.ConnectionFailListener.ConnectionFailEvent</a></li> +<li><a href="BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNode.ConnectionFailListener.Please</a></li> +<li><a href="BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</a></li> +<li><a href="BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a></li> +<li><a href="BleNodeConfig.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig</a></li> +<li><a href="BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.DefaultHistoricalDataLogFilter</a></li> +<li><a href="BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.DefaultReconnectFilter</a></li> +<li><a href="BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.DefaultTaskTimeoutRequestFilter</a></li> +<li><a href="BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a></li> +<li><a href="BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.HistoricalDataLogFilter.Please</a></li> +<li><a href="BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.ReconnectFilter.Please</a></li> +<li><a href="BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.ReconnectFilter.ReconnectEvent</a></li> +<li><a href="BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.TaskTimeoutRequestFilter.Please</a></li> +<li><a href="BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a></li> +<li><a href="BleServer.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer</a></li> +<li><a href="BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer.AdvertisingListener.AdvertisingEvent</a></li> +<li><a href="BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer.ConnectionFailListener.ConnectionFailEvent</a></li> +<li><a href="BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer.DefaultConnectionFailListener</a></li> +<li><a href="BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer.ExchangeListener.ExchangeEvent</a></li> +<li><a href="BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer.IncomingListener.IncomingEvent</a></li> +<li><a href="BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer.IncomingListener.Please</a></li> +<li><a href="BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer.OutgoingListener.OutgoingEvent</a></li> +<li><a href="BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer.ServiceAddListener.ServiceAddEvent</a></li> +<li><a href="BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServer.StateListener.StateEvent</a></li> +<li><a href="BleService.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleService</a></li> +<li><a href="BleServices.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleServices</a></li> +<li><a href="BleStatuses.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleStatuses</a></li> +<li><a href="BleTransaction.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleTransaction</a></li> +<li><a href="BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleTransaction.Auth</a></li> +<li><a href="BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleTransaction.Init</a></li> +<li><a href="BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleTransaction.Ota</a></li> +<li><a href="BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleWriteTransaction</a></li> +<li><a href="BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleWriteTransaction.FailListener.Please</a></li> +<li><a href="BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue" target="classFrame">BleWriteTransaction.WriteQueueListener.Please</a></li> +<li><a href="DefaultLogger.html" title="class in com.idevicesinc.sweetblue" target="classFrame">DefaultLogger</a></li> +<li><a href="P_StringHandler.html" title="class in com.idevicesinc.sweetblue" target="classFrame">P_StringHandler</a></li> +<li><a href="P_Task_BatteryLevel.html" title="class in com.idevicesinc.sweetblue" target="classFrame">P_Task_BatteryLevel</a></li> +<li><a href="PI_UpdateLoop.DefaultUpdateLoopFactory.html" title="class in com.idevicesinc.sweetblue" target="classFrame">PI_UpdateLoop.DefaultUpdateLoopFactory</a></li> +</ul> +<h2 title="Enums">Enums</h2> +<ul title="Enums"> +<li><a href="BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleAdvertisingPacket.Option</a></li> +<li><a href="BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleAdvertisingSettings.BleAdvertisingMode</a></li> +<li><a href="BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleAdvertisingSettings.BleTransmissionPower</a></li> +<li><a href="BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleCharacteristicPermission</a></li> +<li><a href="BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleCharacteristicProperty</a></li> +<li><a href="BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleConnectionPriority</a></li> +<li><a href="BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDescriptorPermission</a></li> +<li><a href="BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDevice.BondListener.Status</a></li> +<li><a href="BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDevice.ConnectionFailListener.Status</a></li> +<li><a href="BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDevice.ConnectionFailListener.Timing</a></li> +<li><a href="BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDevice.ReadWriteListener.Status</a></li> +<li><a href="BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDevice.ReadWriteListener.Target</a></li> +<li><a href="BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDevice.ReadWriteListener.Type</a></li> +<li><a href="BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDeviceConfig.BondFilter.CharacteristicEventType</a></li> +<li><a href="BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDeviceOrigin</a></li> +<li><a href="BleDeviceState.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleDeviceState</a></li> +<li><a href="BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleManager.DiscoveryListener.LifeCycle</a></li> +<li><a href="BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleManager.ResetListener.Progress</a></li> +<li><a href="BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleManager.UhOhListener.Remedy</a></li> +<li><a href="BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleManager.UhOhListener.UhOh</a></li> +<li><a href="BleManagerState.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleManagerState</a></li> +<li><a href="BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleNode.ConnectionFailListener.AutoConnectUsage</a></li> +<li><a href="BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleNode.HistoricalDataLoadListener.Status</a></li> +<li><a href="BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleNode.HistoricalDataQueryListener.Status</a></li> +<li><a href="BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.HistoricalDataLogFilter.Source</a></li> +<li><a href="BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleNodeConfig.ReconnectFilter.Type</a></li> +<li><a href="BleScanMode.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleScanMode</a></li> +<li><a href="BleScanPower.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleScanPower</a></li> +<li><a href="BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleServer.AdvertisingListener.Status</a></li> +<li><a href="BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleServer.ConnectionFailListener.Status</a></li> +<li><a href="BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleServer.ExchangeListener.Target</a></li> +<li><a href="BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleServer.ExchangeListener.Type</a></li> +<li><a href="BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleServer.OutgoingListener.Status</a></li> +<li><a href="BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleServer.ServiceAddListener.Status</a></li> +<li><a href="BleServerState.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleServerState</a></li> +<li><a href="BleTask.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleTask</a></li> +<li><a href="BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue" target="classFrame">BleTransaction.EndReason</a></li> +</ul> +</div> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/package-summary.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/package-summary.html new file mode 100644 index 0000000000000000000000000000000000000000..618e7d7a1c7151ee387633a21ddb50118067cefa --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/package-summary.html @@ -0,0 +1,1038 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>com.idevicesinc.sweetblue (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="com.idevicesinc.sweetblue (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li class="navBarCell1Rev">Package</li> +<li>Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev Package</li> +<li><a href="../../../com/idevicesinc/sweetblue/annotations/package-summary.html">Next Package</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/package-summary.html" target="_top">Frames</a></li> +<li><a href="package-summary.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 title="Package" class="title">Package com.idevicesinc.sweetblue</h1> +<div class="docSummary"> +<div class="block">Contains the core public-facing classes <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> + and most of the internal guts for SweetBlue, the easiest way to do BLE on Android.</div> +</div> +<p>See: <a href="#package.description">Description</a></p> +</div> +<div class="contentContainer"> +<ul class="blockList"> +<li class="blockList"> +<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation"> +<caption><span>Interface Summary</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Interface</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.BondListener</a></td> +<td class="colLast"> +<div class="block">Pass an instance of this listener to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_Bond-com.idevicesinc.sweetblue.BleDevice.BondListener-"><code>BleDevice.setListener_Bond(BondListener)</code></a> or <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond-com.idevicesinc.sweetblue.BleDevice.BondListener-"><code>BleDevice.bond(BondListener)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a></td> +<td class="colLast"> +<div class="block">Provide an implementation of this callback to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>BleDevice.setListener_ConnectionFail(ConnectionFailListener)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a></td> +<td class="colLast"> +<div class="block">Provide an implementation of this callback to various methods like <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(UUID, ReadWriteListener)</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.write(UUID, byte[], ReadWriteListener)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(UUID, Interval, ReadWriteListener)</code></a>, + <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.readRssi(ReadWriteListener)</code></a>, etc.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a></td> +<td class="colLast"> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleDevice.setListener_State(StateListener)</code></a> and/or + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_DeviceState-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleManager.setListener_DeviceState(BleDevice.StateListener)</code></a> to receive state change events.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter</a></td> +<td class="colLast"> +<div class="block">As of now there are two main default uses for this class...</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.AssertListener</a></td> +<td class="colLast"> +<div class="block">Mostly only for SweetBlue library developers.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a></td> +<td class="colLast"> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>BleManager.setListener_Discovery(BleManager.DiscoveryListener)</code></a> to receive + callbacks when a device is newly discovered, rediscovered, or undiscovered after calling various <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a> + or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>BleManager.startPeriodicScan(Interval, Interval)</code></a> methods.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.NativeStateListener</a></td> +<td class="colLast"> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_NativeState-com.idevicesinc.sweetblue.BleManager.NativeStateListener-"><code>BleManager.setListener_NativeState(BleManager.NativeStateListener)</code></a> to receive callbacks + when the <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> undergoes a *native* <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> change.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.ResetListener</a></td> +<td class="colLast"> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#reset-com.idevicesinc.sweetblue.BleManager.ResetListener-"><code>BleManager.reset(BleManager.ResetListener)</code></a> + to be notified when a reset operation is complete.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.StateListener</a></td> +<td class="colLast"> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_State-com.idevicesinc.sweetblue.BleManager.StateListener-"><code>BleManager.setListener_State(BleManager.StateListener)</code></a> to receive callbacks + when the <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> undergoes a <a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> change.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.UhOhListener</a></td> +<td class="colLast"> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_UhOh-com.idevicesinc.sweetblue.BleManager.UhOhListener-"><code>BleManager.setListener_UhOh(BleManager.UhOhListener)</code></a> + to receive a callback when an <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a> occurs.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a></td> +<td class="colLast"> +<div class="block">An optional whitelisting mechanism for scanning.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener</a></td> +<td class="colLast"> +<div class="block">Base interface for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener</a></td> +<td class="colLast"> +<div class="block">A callback that is used by various overloads of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> that accept instances hereof.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener</a></td> +<td class="colLast"> +<div class="block">A callback that is used by <a href="../../../com/idevicesinc/sweetblue/BleNode.html#select--"><code>BleNode.select()</code></a> to listen for when a database query is done processing.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataFactory</a></td> +<td class="colLast"> +<div class="block">Provide an instance to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataFactory"><code>BleNodeConfig.historicalDataFactory</code></a> to return custom subclasses + of <a href="../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> if you would like.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></td> +<td class="colLast"> +<div class="block">Provide an instance of this class to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataLogFilter"><code>BleNodeConfig.historicalDataLogFilter</code></a> to control + how/if historical data from BLE operations is logged.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter</a></td> +<td class="colLast"> +<div class="block">An optional interface you can implement on <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#reconnectFilter"><code>BleNodeConfig.reconnectFilter</code></a> to control reconnection behavior.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter</a></td> +<td class="colLast"> +<div class="block">Provides a way to control timeout behavior for various <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> instances.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a></td> +<td class="colLast"> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Advertising-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>BleServer.setListener_Advertising(BleServer.AdvertisingListener)</code></a>, and + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Advertising-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>BleManager.setListener_Advertising(BleServer.AdvertisingListener)</code></a> to receive a callback + when using <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a></td> +<td class="colLast"> +<div class="block">Provide an implementation of this callback to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>BleServer.setListener_ConnectionFail(ConnectionFailListener)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ExchangeListener</a></td> +<td class="colLast"> +<div class="block">Tagging interface, not to be implemented directly as this is just the base interface to statically tie together + <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.OutgoingListener</code></a> with common enums/structures.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.IncomingListener</a></td> +<td class="colLast"> +<div class="block">Provide an instance through <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Incoming-com.idevicesinc.sweetblue.BleServer.IncomingListener-"><code>BleServer.setListener_Incoming(IncomingListener)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a></td> +<td class="colLast"> +<div class="block">Provide an instance to various static methods of <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener.Please</code></a> such as + <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.IncomingListener.Please.respondWithSuccess(BleServer.OutgoingListener)</code></a>, or <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.setListener_Outgoing(OutgoingListener)</code></a>, + or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleManager.setListener_Outgoing(BleServer.OutgoingListener)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ServiceAddListener</a></td> +<td class="colLast"> +<div class="block">Provide an implementation of this callback to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_ServiceAdd-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>BleServer.setListener_ServiceAdd(ServiceAddListener)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.StateListener</a></td> +<td class="colLast"> +<div class="block">Provide an implementation to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setListener_State-com.idevicesinc.sweetblue.BleServer.StateListener-"><code>BleServer.setListener_State(StateListener)</code></a> and/or + <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setListener_ServerState-com.idevicesinc.sweetblue.BleServer.StateListener-"><code>BleManager.setListener_ServerState(BleServer.StateListener)</code></a> to receive state change events.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener</a></td> +<td class="colLast"> +<div class="block">Interface for handling failures when writing.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue">BleWriteTransaction.WriteQueueListener</a></td> +<td class="colLast"> +<div class="block">Interface for listening between each write made in the queue.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/PI_BleScanner.html" title="interface in com.idevicesinc.sweetblue">PI_BleScanner</a></td> +<td class="colLast"> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/PI_BleStatusHelper.html" title="interface in com.idevicesinc.sweetblue">PI_BleStatusHelper</a></td> +<td class="colLast"> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></td> +<td class="colLast"> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.Callback</a></td> +<td class="colLast"> +<div class="block">A callback where you handle the update time step.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.IUpdateLoopFactory</a></td> +<td class="colLast"> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue">SweetLogger</a></td> +<td class="colLast"> </td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation"> +<caption><span>Class Summary</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Class</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></td> +<td class="colLast"> +<div class="block">Class to used for advertising Bluetooth services, used with <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a></div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingSettings</a></td> +<td class="colLast"> +<div class="block">Class used specify Ble Advertising settings.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristic.html" title="class in com.idevicesinc.sweetblue">BleCharacteristic</a></td> +<td class="colLast"> +<div class="block">Proxy of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic</code></a> to force stricter compile-time checks and order of operations + when creating characteristics for <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue">BleDescriptor</a></td> +<td class="colLast"> +<div class="block">Proxy of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor</code></a> to force stricter compile-time checks and order of operations + when creating descriptors for <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></td> +<td class="colLast"> +<div class="block">This is the one other class you will use the most besides <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a></td> +<td class="colLast"> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.BondListener.BondEvent-"><code>BleDevice.BondListener.onEvent(BondEvent)</code></a> to provide more information about a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>BleDevice.bond()</code></a> attempt.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></td> +<td class="colLast"> +<div class="block">Structure passed to <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(ConnectionFailEvent)</code></a> to provide more info about how/why the connection failed.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleDevice.DefaultConnectionFailListener</a></td> +<td class="colLast"> +<div class="block">Default implementation of <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener</code></a> that attempts a certain number of retries.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></td> +<td class="colLast"> +<div class="block">Provides a bunch of information about a completed read, write, or notification.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.StateListener.StateEvent</a></td> +<td class="colLast"> +<div class="block">Subclass that adds the device field.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></td> +<td class="colLast"> +<div class="block">Builder class for sending a write over BLE.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></td> +<td class="colLast"> +<div class="block">Provides a number of options to (optionally) pass to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConfig-com.idevicesinc.sweetblue.BleDeviceConfig-"><code>BleDevice.setConfig(BleDeviceConfig)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEvent</a></td> +<td class="colLast"> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html#onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.CharacteristicEvent-"><code>BleDeviceConfig.BondFilter.onEvent(CharacteristicEvent)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></td> +<td class="colLast"> +<div class="block">Return value for the various interface methods of <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleDeviceConfig.BondFilter</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.StateChangeEvent</a></td> +<td class="colLast"> +<div class="block">Just a dummy subclass of <a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.StateListener.StateEvent</code></a> so that this gets auto-imported for implementations of <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleDeviceConfig.BondFilter</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.DefaultBondFilter</a></td> +<td class="colLast"> +<div class="block">Default implementation of <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleDeviceConfig.BondFilter</code></a> that unbonds for certain phone models upon discovery and disconnects.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue">BleDeviceIterator</a></td> +<td class="colLast"> +<div class="block">Implementation of <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util"><code>Iterator</code></a> for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> instances, returned from <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getDevices--"><code>BleManager.getDevices()</code></a> and its overloads.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></td> +<td class="colLast"> +<div class="block">The entry point to the library.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.AssertListener.AssertEvent</a></td> +<td class="colLast"> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.AssertListener.AssertEvent-"><code>BleManager.AssertListener.onEvent(BleManager.AssertListener.AssertEvent)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.DiscoveryEvent</a></td> +<td class="colLast"> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"><code>BleManager.DiscoveryListener.onEvent(BleManager.DiscoveryListener.DiscoveryEvent)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.NativeStateListener.NativeStateEvent</a></td> +<td class="colLast"> +<div class="block">Class declared here to be make it implicitly imported for overrides.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.ResetListener.ResetEvent</a></td> +<td class="colLast"> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.ResetListener.ResetEvent-"><code>BleManager.ResetListener.onEvent(BleManager.ResetListener.ResetEvent)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.StateListener.StateEvent</a></td> +<td class="colLast"> +<div class="block">Subclass that adds the manager field.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOhEvent</a></td> +<td class="colLast"> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOhEvent-"><code>BleManager.UhOhListener.onEvent(BleManager.UhOhListener.UhOhEvent)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></td> +<td class="colLast"> +<div class="block">Provides a number of options to pass to the <a href="../../../com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(Context, BleManagerConfig)</code></a> + singleton getter or <a href="../../../com/idevicesinc/sweetblue/BleManager.html#setConfig-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.setConfig(BleManagerConfig)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.DefaultScanFilter</a></td> +<td class="colLast"> +<div class="block">Convenience implementation of <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleManagerConfig.ScanFilter</code></a> which filters using + a whitelist of known primary advertising <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>s passed in to the constructor.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.DeviceNameComparator</a></td> +<td class="colLast"> +<div class="block">Default sorter class for sorting the list of devices in <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></td> +<td class="colLast"> +<div class="block">Small struct passed back from <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"><code>BleManagerConfig.ScanFilter.onEvent(ScanEvent)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></td> +<td class="colLast"> +<div class="block">Instances of this class are passed to <a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"><code>BleManagerConfig.ScanFilter.onEvent(ScanEvent)</code></a> to aid in making a decision.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></td> +<td class="colLast"> +<div class="block">Abstract base class for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>, mostly just to statically tie their APIs together + wherever possible.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.ConnectionFailEvent</a></td> +<td class="colLast"> +<div class="block">Abstract base class for structures passed to <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"><code>BleServer.ConnectionFailListener.onEvent(BleServer.ConnectionFailListener.ConnectionFailEvent)</code></a> + and <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)</code></a> to provide more info about how/why a connection failed.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></td> +<td class="colLast"> +<div class="block">Return value for <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)</code></a> + and <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"><code>BleServer.ConnectionFailListener.onEvent(BleServer.ConnectionFailListener.ConnectionFailEvent)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</a></td> +<td class="colLast"> +<div class="block">Event struct passed to <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html#onEvent-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent-"><code>BleNode.HistoricalDataLoadListener.onEvent(HistoricalDataLoadEvent)</code></a> that provides + further information about the status of a historical data load to memory using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> + (or overloads).</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a></td> +<td class="colLast"> +<div class="block">Event struct passed to <a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html#onEvent-com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent-"><code>BleNode.HistoricalDataQueryListener.onEvent(HistoricalDataQueryEvent)</code></a> that provides + further information about the status of a historical data load to memory using <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> + (or overloads).</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></td> +<td class="colLast"> +<div class="block">Provides a number of options to (optionally) pass to <a href="../../../com/idevicesinc/sweetblue/BleServer.html#setConfig-com.idevicesinc.sweetblue.BleNodeConfig-"><code>BleServer.setConfig(BleNodeConfig)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultHistoricalDataLogFilter</a></td> +<td class="colLast"> +<div class="block">Default implementation of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a> set on <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataLogFilter"><code>BleNodeConfig.historicalDataLogFilter</code></a> + that logs the most recent data reading to memory only, flushing the previous one.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultReconnectFilter</a></td> +<td class="colLast"> +<div class="block">Default implementation of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.ReconnectFilter</code></a> that uses <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#retryInstantly--"><code>BleNodeConfig.ReconnectFilter.Please.retryInstantly()</code></a> for the + first reconnect attempt, and from then on uses the <a href="../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> rate passed to the constructor</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultTaskTimeoutRequestFilter</a></td> +<td class="colLast"> +<div class="block">Default implementation of <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.TaskTimeoutRequestFilter</code></a> that simply sets the timeout + for all <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> instances to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html#DEFAULT_TASK_TIMEOUT"><code>BleNodeConfig.DefaultTaskTimeoutRequestFilter.DEFAULT_TASK_TIMEOUT</code></a> seconds.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a></td> +<td class="colLast"> +<div class="block">Event passed to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent-"><code>BleNodeConfig.HistoricalDataLogFilter.onEvent(HistoricalDataLogEvent)</code></a> that provides + information you can use to determine whether or not <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.data()</code></a> should be logged.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></td> +<td class="colLast"> +<div class="block">Special value returned from <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent-"><code>BleNodeConfig.HistoricalDataLogFilter.onEvent(HistoricalDataLogEvent)</code></a> + that determines if/how <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.data()</code></a> will get logged.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a></td> +<td class="colLast"> +<div class="block">Return value for <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(ReconnectEvent)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a></td> +<td class="colLast"> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)</code></a> to aid in making a decision.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.Please</a></td> +<td class="colLast"> +<div class="block">Use static constructor methods to create instances to return from <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent-"><code>BleNodeConfig.TaskTimeoutRequestFilter.onEvent(TaskTimeoutRequestEvent)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a></td> +<td class="colLast"> +<div class="block">Event passed to <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent-"><code>BleNodeConfig.TaskTimeoutRequestFilter.onEvent(TaskTimeoutRequestEvent)</code></a> that provides + information about the <a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> that will soon be executed.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></td> +<td class="colLast"> +<div class="block">Get an instance from <a href="../../../com/idevicesinc/sweetblue/BleManager.html#getServer--"><code>BleManager.getServer()</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></td> +<td class="colLast"> +<div class="block">Sub class representing the Advertising Event</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a></td> +<td class="colLast"> +<div class="block">Structure passed to <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"><code>BleServer.ConnectionFailListener.onEvent(ConnectionFailEvent)</code></a> to provide more info about how/why the connection failed.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleServer.DefaultConnectionFailListener</a></td> +<td class="colLast"> +<div class="block">Default implementation of <a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener</code></a> that attempts a certain number of retries.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></td> +<td class="colLast"> +<div class="block">Like <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener</code></a>, this class should not be used directly as this is just a base class to statically tie together + <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener.IncomingEvent</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.OutgoingListener.OutgoingEvent</code></a> with a common API.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.IncomingEvent</a></td> +<td class="colLast"> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>BleServer.IncomingListener.onEvent(BleServer.IncomingListener.IncomingEvent)</code></a>} that provides details about the client and what it wants from us, the server.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></td> +<td class="colLast"> +<div class="block">Struct returned from <a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>BleServer.IncomingListener.onEvent(IncomingEvent)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></td> +<td class="colLast"> +<div class="block">Struct passed to <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.OutgoingListener.OutgoingEvent-"><code>BleServer.OutgoingListener.onEvent(BleServer.OutgoingListener.OutgoingEvent)</code></a> + that provides details of what was sent to the client and if it succeeded.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.ServiceAddEvent</a></td> +<td class="colLast"> +<div class="block">Event struct passed to <a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ServiceAddListener.ServiceAddEvent-"><code>BleServer.ServiceAddListener.onEvent(ServiceAddEvent)</code></a> to give you information about the success + of a service addition or the reason(s) for its failure.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.StateListener.StateEvent</a></td> +<td class="colLast"> +<div class="block">Subclass that adds the <a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#server--"><code>BleServer.StateListener.StateEvent.server()</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#macAddress--"><code>BleServer.StateListener.StateEvent.macAddress()</code></a>, and <a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#gattStatus--"><code>BleServer.StateListener.StateEvent.gattStatus()</code></a> fields.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleService.html" title="class in com.idevicesinc.sweetblue">BleService</a></td> +<td class="colLast"> +<div class="block">Proxy of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattService</code></a> to force stricter compile-time checks and order of operations + when creating services for <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServices.html" title="class in com.idevicesinc.sweetblue">BleServices</a></td> +<td class="colLast"> +<div class="block">Static-only class with some common BLE services for <a href="../../../com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-"><code>BleServer.addService(BleService)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></td> +<td class="colLast"> +<div class="block">A collection of various BLE status codes that for whatever reason are not exposed through Android's + public BLE layer - this can be because they are <code>public</code> but use the @hide annotation, + or they are not <code>public</code> in the first place, or they can only be found by Googling + for native C/C++ library code.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></td> +<td class="colLast"> +<div class="block">Abstract base class for transactions passed to various methods of <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a></td> +<td class="colLast"> +<div class="block">Tagging subclass to force type-discrepancy for various <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> overloads.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a></td> +<td class="colLast"> +<div class="block">Tagging subclass to force type-discrepancy for various <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> overloads.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Ota</a></td> +<td class="colLast"> +<div class="block">Tagging subclass to force type-correctness for <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#performOta-com.idevicesinc.sweetblue.BleTransaction.Ota-"><code>BleDevice.performOta(BleTransaction.Ota)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a></td> +<td class="colLast"> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener.Please</a></td> +<td class="colLast"> +<div class="block">Class used to dictate what should happen if a write fail happens.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.WriteQueueListener.Please</a></td> +<td class="colLast"> +<div class="block">Class used to tell this <a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleWriteTransaction</code></a> to either proceed to the next write, + or cancel this transaction.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/DefaultLogger.html" title="class in com.idevicesinc.sweetblue">DefaultLogger</a></td> +<td class="colLast"> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue">P_StringHandler</a></td> +<td class="colLast"> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html" title="class in com.idevicesinc.sweetblue">P_Task_BatteryLevel</a></td> +<td class="colLast"> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" title="class in com.idevicesinc.sweetblue">PI_UpdateLoop.DefaultUpdateLoopFactory</a></td> +<td class="colLast"> </td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation"> +<caption><span>Enum Summary</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Enum</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a></td> +<td class="colLast"> +<div class="block">Enumeration for advertising options</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a></td> +<td class="colLast"> +<div class="block">Type-safe parallel of static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a></td> +<td class="colLast"> +<div class="block">Type-safe parallel of static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a></td> +<td class="colLast"> +<div class="block">This enum enforces compile-time constraints over various public static int PERMISSION_ members + of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a></td> +<td class="colLast"> +<div class="block">This enum enforces compile-time constraints over various public static int PROPERTY_ members + of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a></td> +<td class="colLast"> +<div class="block">This enum enforces compile-time constraints over various public static int CONNECTION_PRIORITY_* members + of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGatt</code></a> and is passed to <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setConnectionPriority(BleConnectionPriority, BleDevice.ReadWriteListener)</code></a> + and returned from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#getConnectionPriority--"><code>BleDevice.getConnectionPriority()</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a></td> +<td class="colLast"> +<div class="block">This enum enforces compile-time constraints over various public static int PERMISSION_ members + of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a></td> +<td class="colLast"> +<div class="block">Used on <a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#status--"><code>BleDevice.BondListener.BondEvent.status()</code></a> to roughly enumerate success or failure.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a></td> +<td class="colLast"> +<div class="block">The reason for the connection failure.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a></td> +<td class="colLast"> +<div class="block">For <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#NATIVE_CONNECTION_FAILED"><code>BleDevice.ConnectionFailListener.Status.NATIVE_CONNECTION_FAILED</code></a>, <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#DISCOVERING_SERVICES_FAILED"><code>BleDevice.ConnectionFailListener.Status.DISCOVERING_SERVICES_FAILED</code></a>, and + <a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#BONDING_FAILED"><code>BleDevice.ConnectionFailListener.Status.BONDING_FAILED</code></a>, gives further timing information on when the failure took place.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a></td> +<td class="colLast"> +<div class="block">A value returned to <a href="../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html#onEvent-T_Event-"><code>GenericListener_Void.onEvent(Event)</code></a> + by way of <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#status--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.status()</code></a> that indicates success of the + operation or the reason for its failure.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a></td> +<td class="colLast"> +<div class="block">The type of GATT "object", provided by <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.target()</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a></td> +<td class="colLast"> +<div class="block">The type of operation for a <a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> - read, write, poll, etc.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEventType</a></td> +<td class="colLast"> +<div class="block">An enumeration of the type of characteristic operation for a <a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig.BondFilter.CharacteristicEvent</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue">BleDeviceOrigin</a></td> +<td class="colLast"> +<div class="block">Enumeration signifying how a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> instance was created.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a></td> +<td class="colLast"> +<div class="block">An enumeration of the various states that a <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> can be in.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a></td> +<td class="colLast"> +<div class="block">Enumerates changes in the "discovered" state of a device.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue">BleManager.ResetListener.Progress</a></td> +<td class="colLast"> +<div class="block">Enumeration of the progress of the reset.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a></td> +<td class="colLast"> +<div class="block">The suggested remedy for each <a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a></td> +<td class="colLast"> +<div class="block">An UhOh is a warning about an exceptional (in the bad sense) and unfixable problem with the underlying stack that + the app can warn its user about.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a></td> +<td class="colLast"> +<div class="block">An enumeration of the various states that a <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> can be in.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a></td> +<td class="colLast"> +<div class="block">Describes usage of the <code>autoConnect</code> parameter for either <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#connectGatt-android.content.Context-boolean-android.bluetooth.BluetoothGattCallback-" title="class or interface in android.bluetooth"><code>BluetoothDevice.connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)</code></a> + or <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#connect-android.bluetooth.BluetoothDevice-boolean-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.connect(BluetoothDevice, boolean)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a></td> +<td class="colLast"> +<div class="block">Enumerates the status codes for operations kicked off from <a href="../../../com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> (or overloads).</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a></td> +<td class="colLast"> +<div class="block">Enumerates the status codes for operations kicked off from <a href="../../../com/idevicesinc/sweetblue/BleNode.html#select--"><code>BleNode.select()</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a></td> +<td class="colLast"> +<div class="block">Signifies where the data came from, usually from a BLE read or notification.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a></td> +<td class="colLast"> +<div class="block">An enum provided through <a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#type--"><code>BleNodeConfig.ReconnectFilter.ReconnectEvent.type()</code></a> that describes what reconnect stage we're at.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a></td> +<td class="colLast"> +<div class="block">Type-safe parallel of various static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>ScanSettings</code></a> and a way to + force pre-Lollipop scanning mode.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a></td> +<td class="colLast"> +<div class="block">Type-safe parallel of various static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>ScanSettings</code></a> for setting the scanning power + when using the Lollipop scanning API.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a></td> +<td class="colLast"> +<div class="block">Enumeration describing the m_status of calling <a href="../../../com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a></td> +<td class="colLast"> +<div class="block">The reason for the connection failure.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Target</a></td> +<td class="colLast"> +<div class="block">The type of GATT object, provided by <a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#target--"><code>BleServer.ExchangeListener.ExchangeEvent.target()</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a></td> +<td class="colLast"> +<div class="block">The type of exchange being executed, read, write, or notify.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a></td> +<td class="colLast"> +<div class="block">Enumeration of the various success and error statuses possible for an outgoing message.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a></td> +<td class="colLast"> +<div class="block">Enumeration of the different ways that service addition can fail (and one way for it to succeed), + provided through <a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#status--"><code>BleServer.OutgoingListener.OutgoingEvent.status()</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a></td> +<td class="colLast"> +<div class="block">An enumeration of the various states that a <a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> can be in on a per-client (mac address) basis.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a></td> +<td class="colLast"> +<div class="block">Under the hood, SweetBlue uses a priority task queue to serialize all interaction with the native BLE stack.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a></td> +<td class="colLast"> +<div class="block">Values are passed to <a href="../../../com/idevicesinc/sweetblue/BleTransaction.html#onEnd-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleTransaction.EndReason-"><code>BleTransaction.onEnd(BleDevice, EndReason)</code></a>.</div> +</td> +</tr> +</tbody> +</table> +</li> +</ul> +<a name="package.description"> +<!-- --> +</a> +<h2 title="Package com.idevicesinc.sweetblue Description">Package com.idevicesinc.sweetblue Description</h2> +<div class="block">Contains the core public-facing classes <a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> and <a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> + and most of the internal guts for SweetBlue, the easiest way to do BLE on Android.</div> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li class="navBarCell1Rev">Package</li> +<li>Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev Package</li> +<li><a href="../../../com/idevicesinc/sweetblue/annotations/package-summary.html">Next Package</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/package-summary.html" target="_top">Frames</a></li> +<li><a href="package-summary.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/package-tree.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/package-tree.html new file mode 100644 index 0000000000000000000000000000000000000000..d31377e00d8911531820f56c56f25ce00deefb96 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/package-tree.html @@ -0,0 +1,332 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>com.idevicesinc.sweetblue Class Hierarchy (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="com.idevicesinc.sweetblue Class Hierarchy (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li>Class</li> +<li class="navBarCell1Rev">Tree</li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev</li> +<li><a href="../../../com/idevicesinc/sweetblue/annotations/package-tree.html">Next</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/package-tree.html" target="_top">Frames</a></li> +<li><a href="package-tree.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 class="title">Hierarchy For Package com.idevicesinc.sweetblue</h1> +<span class="packageHierarchyLabel">Package Hierarchies:</span> +<ul class="horizontal"> +<li><a href="../../../overview-tree.html">All Packages</a></li> +</ul> +</div> +<div class="contentContainer"> +<h2 title="Class Hierarchy">Class Hierarchy</h2> +<ul> +<li type="circle">java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleAdvertisingPacket</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleAdvertisingSettings</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleCharacteristic.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleCharacteristic</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDescriptor</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.DefaultConnectionFailListener</span></a> (implements com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.WriteBuilder</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig.BondFilter.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig.DefaultBondFilter</span></a> (implements com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceIterator</span></a> (implements java.util.<a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><E>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerConfig.DefaultScanFilter</span></a> (implements com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerConfig.DeviceNameComparator</span></a> (implements java.util.<a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a><T>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerConfig.ScanFilter.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>) +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer</span></a></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.ConnectionFailListener.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig</span></a> (implements java.lang.<a href="http://d.android.com/reference/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>) +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerConfig</span></a></li> +</ul> +</li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.DefaultHistoricalDataLogFilter</span></a> (implements com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.DefaultReconnectFilter</span></a> (implements com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.DefaultTaskTimeoutRequestFilter</span></a> (implements com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.HistoricalDataLogFilter.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.ReconnectFilter.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.TaskTimeoutRequestFilter.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.DefaultConnectionFailListener</span></a> (implements com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.IncomingListener.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleService.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleService</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServices.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServices</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleStatuses</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleTransaction</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleTransaction.Auth</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleTransaction.Init</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleTransaction.Ota</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleWriteTransaction</span></a></li> +</ul> +</li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleWriteTransaction.FailListener.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleWriteTransaction.WriteQueueListener.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/DefaultLogger.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">DefaultLogger</span></a> (implements com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue">SweetLogger</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Event</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.BondListener.BondEvent</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ReadWriteListener.ReadWriteEvent</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig.BondFilter.CharacteristicEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.AssertListener.AssertEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.DiscoveryListener.DiscoveryEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.ResetListener.ResetEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.UhOhListener.UhOhEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerConfig.ScanFilter.ScanEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.ConnectionFailListener.ConnectionFailEvent</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>) +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ConnectionFailListener.ConnectionFailEvent</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ConnectionFailListener.ConnectionFailEvent</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.ReconnectFilter.ReconnectEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.AdvertisingListener.AdvertisingEvent</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ExchangeListener.ExchangeEvent</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.IncomingListener.IncomingEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.OutgoingListener.OutgoingEvent</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ServiceAddListener.ServiceAddEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">State.ChangeEvent</span></a><T_State> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.StateListener.StateEvent</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig.BondFilter.StateChangeEvent</span></a></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.StateListener.StateEvent</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.NativeStateListener.NativeStateEvent</span></a></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.StateListener.StateEvent</span></a></li> +</ul> +</li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">P_StringHandler</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/P_Task_BatteryLevel.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">P_Task_BatteryLevel</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">PI_UpdateLoop.DefaultUpdateLoopFactory</span></a> (implements com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.IUpdateLoopFactory</a>)</li> +</ul> +</li> +</ul> +<h2 title="Interface Hierarchy">Interface Hierarchy</h2> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.BondListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.StateListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig.BondFilter</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.AssertListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.DiscoveryListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManager.NativeStateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.NativeStateListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.ResetListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.StateListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.UhOhListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerConfig.ScanFilter</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.ConnectionFailListener</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ConnectionFailListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ConnectionFailListener</span></a></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.HistoricalDataLoadListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.HistoricalDataQueryListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.HistoricalDataFactory</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.HistoricalDataLogFilter</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.ReconnectFilter</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.TaskTimeoutRequestFilter</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.AdvertisingListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ExchangeListener</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.IncomingListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.OutgoingListener</span></a></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ServiceAddListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.StateListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleWriteTransaction.FailListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleWriteTransaction.WriteQueueListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">GenericListener_Void</span></a><T_Event> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ReadWriteListener</span></a></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/PI_BleScanner.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">PI_BleScanner</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/PI_BleStatusHelper.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">PI_BleStatusHelper</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">PI_UpdateLoop</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">PI_UpdateLoop.Callback</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">PI_UpdateLoop.IUpdateLoopFactory</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">SweetLogger</span></a></li> +</ul> +<h2 title="Enum Hierarchy">Enum Hierarchy</h2> +<ul> +<li type="circle">java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a> +<ul> +<li type="circle">java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>) +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServerState</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceState</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.OutgoingListener.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.BondListener.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ConnectionFailListener.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ExchangeListener.Type</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleAdvertisingPacket.Option</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleAdvertisingSettings.BleTransmissionPower</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleAdvertisingSettings.BleAdvertisingMode</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.HistoricalDataLogFilter.Source</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleCharacteristicProperty</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerState</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleTransaction.EndReason</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.ResetListener.Progress</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ServiceAddListener.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleScanMode</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleConnectionPriority</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.DiscoveryListener.LifeCycle</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleScanPower</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.UhOhListener.Remedy</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleCharacteristicPermission</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceOrigin</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.HistoricalDataQueryListener.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.UhOhListener.UhOh</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ExchangeListener.Target</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ConnectionFailListener.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ReadWriteListener.Type</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ConnectionFailListener.Timing</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.AdvertisingListener.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDescriptorPermission</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.HistoricalDataLoadListener.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig.BondFilter.CharacteristicEventType</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ReadWriteListener.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.ReconnectFilter.Type</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.ConnectionFailListener.AutoConnectUsage</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ReadWriteListener.Target</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="../../../com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleTask</span></a></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li>Class</li> +<li class="navBarCell1Rev">Tree</li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-all.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev</li> +<li><a href="../../../com/idevicesinc/sweetblue/annotations/package-tree.html">Next</a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/idevicesinc/sweetblue/package-tree.html" target="_top">Frames</a></li> +<li><a href="package-tree.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html new file mode 100644 index 0000000000000000000000000000000000000000..e1b05ff226bf41f78ff909226b970c552489c5bf --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html @@ -0,0 +1,308 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BasicUuidNameMap (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BasicUuidNameMap (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev Class</li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html" target="_top">Frames</a></li> +<li><a href="BasicUuidNameMap.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class BasicUuidNameMap" class="title">Class BasicUuidNameMap</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.BasicUuidNameMap</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">BasicUuidNameMap</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a></pre> +<div class="block">Manual convenience implementation of <a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UuidNameMap</code></a> that's basically just a <a href="http://d.android.com/reference/java/util/HashMap.html?is-external=true" title="class or interface in java.util"><code>HashMap</code></a>. + + Provide an instance to <a href="../../../../com/idevicesinc/sweetblue/BleManagerConfig.html#uuidNameMaps"><code>BleManagerConfig.uuidNameMaps</code></a> if desired.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><code>ReflectionUuidNameMap</code></a>, +<a href="../../../../com/idevicesinc/sweetblue/BleManagerConfig.html#uuidNameMaps"><code>BleManagerConfig.uuidNameMaps</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html#BasicUuidNameMap--">BasicUuidNameMap</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html#add-java.lang.String-java.lang.String-">add</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuid, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Add a <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>-to-debug name entry.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html#getUuidName-java.lang.String-">getUuidName</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuid)</code> +<div class="block">Returns the name of the <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> to be used for logging/debugging purposes, for example "BATTERY_LEVEL".</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="BasicUuidNameMap--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BasicUuidNameMap</h4> +<pre>public BasicUuidNameMap()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="add-java.lang.String-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add</h4> +<pre>public void add(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuid, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Add a <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>-to-debug name entry.</div> +</li> +</ul> +<a name="getUuidName-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getUuidName</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getUuidName(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuid)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html#getUuidName-java.lang.String-">UuidNameMap</a></code></span></div> +<div class="block">Returns the name of the <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> to be used for logging/debugging purposes, for example "BATTERY_LEVEL".</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html#getUuidName-java.lang.String-">getUuidName</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev Class</li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html" target="_top">Frames</a></li> +<li><a href="BasicUuidNameMap.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BitwiseEnum.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BitwiseEnum.html new file mode 100644 index 0000000000000000000000000000000000000000..8afd1666de14b167209eaab192069602ef9bc5e7 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BitwiseEnum.html @@ -0,0 +1,311 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BitwiseEnum (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BitwiseEnum (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BitwiseEnum.html" target="_top">Frames</a></li> +<li><a href="BitwiseEnum.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Interface BitwiseEnum" class="title">Interface BitwiseEnum</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Subinterfaces:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></dd> +</dl> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a>, <a href="../../../../com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a>, <a href="../../../../com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a>, <a href="../../../../com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a>, <a href="../../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a>, <a href="../../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a>, <a href="../../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a></dd> +</dl> +<hr> +<br> +<pre>public interface <span class="typeNameLabel">BitwiseEnum</span></pre> +<div class="block">Contract to force <code>enum</code> implementors to comply to common bitwise operations.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--">bit</a></span>()</code> +<div class="block">Returns the bit (0x1, 0x2, 0x4, etc.) this enum represents based on the <a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--"><code>ordinal()</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#name--">name</a></span>()</code> +<div class="block">Same as <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang"><code>Enum.name()</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a> state)</code> +<div class="block">Does a bitwise OR for this state and the given state.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-int-">or</a></span>(int bits)</code> +<div class="block">Does a bitwise OR for this state and the given bits.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--">ordinal</a></span>()</code> +<div class="block">Same as <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang"><code>Enum.ordinal()</code></a>.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#overlaps-int-">overlaps</a></span>(int mask)</code> +<div class="block">Convenience method for checking if <code>(<a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--"><code>bit()</code></a> & mask) != 0x0</code>.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="or-com.idevicesinc.sweetblue.utils.BitwiseEnum-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>or</h4> +<pre>int or(<a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a> state)</pre> +<div class="block">Does a bitwise OR for this state and the given state.</div> +</li> +</ul> +<a name="or-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>or</h4> +<pre>int or(int bits)</pre> +<div class="block">Does a bitwise OR for this state and the given bits.</div> +</li> +</ul> +<a name="bit--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bit</h4> +<pre>int bit()</pre> +<div class="block">Returns the bit (0x1, 0x2, 0x4, etc.) this enum represents based on the <a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--"><code>ordinal()</code></a>.</div> +</li> +</ul> +<a name="overlaps-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>overlaps</h4> +<pre>boolean overlaps(int mask)</pre> +<div class="block">Convenience method for checking if <code>(<a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--"><code>bit()</code></a> & mask) != 0x0</code>.</div> +</li> +</ul> +<a name="ordinal--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ordinal</h4> +<pre>int ordinal()</pre> +<div class="block">Same as <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang"><code>Enum.ordinal()</code></a>.</div> +</li> +</ul> +<a name="name--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>name</h4> +<pre><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name()</pre> +<div class="block">Same as <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang"><code>Enum.name()</code></a>.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BitwiseEnum.html" target="_top">Frames</a></li> +<li><a href="BitwiseEnum.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BleScanInfo.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BleScanInfo.html new file mode 100644 index 0000000000000000000000000000000000000000..3ff155e6840eb9883db96279f647d63eff01be44 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BleScanInfo.html @@ -0,0 +1,449 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BleScanInfo (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BleScanInfo (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BleScanInfo.html" target="_top">Frames</a></li> +<li><a href="BleScanInfo.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class BleScanInfo" class="title">Class BleScanInfo</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.BleScanInfo</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">BleScanInfo</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html#BleScanInfo--">BleScanInfo</a></span>()</code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html#BleScanInfo-com.idevicesinc.sweetblue.utils.Pointer-com.idevicesinc.sweetblue.utils.Pointer-java.util.List-int-byte:A-java.util.Map-java.lang.String-">BleScanInfo</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils">Pointer</a><<a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> advFlags, + <a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils">Pointer</a><<a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> txPower, + <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> serviceUuids, + int mfgId, + byte[] mfgData, + <a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> serviceData, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> localName)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html#clearServiceData--">clearServiceData</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html#clearServiceUUIDs--">clearServiceUUIDs</a></span>()</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils">Pointer</a><<a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html#getAdvFlags--">getAdvFlags</a></span>()</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html#getManufacturerData--">getManufacturerData</a></span>()</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html#getManufacturerId--">getManufacturerId</a></span>()</code> </td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html#getName--">getName</a></span>()</code> </td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html#getServiceData--">getServiceData</a></span>()</code> </td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html#getServiceUUIDS--">getServiceUUIDS</a></span>()</code> </td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils">Pointer</a><<a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html#getTxPower--">getTxPower</a></span>()</code> </td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html#populateServiceData-java.util.Map-">populateServiceData</a></span>(<a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> data)</code> </td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html#populateServiceUUIDs-java.util.List-">populateServiceUUIDs</a></span>(<a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> uuids)</code> </td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html#setManufacturerData-byte:A-">setManufacturerData</a></span>(byte[] data)</code> </td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html#setManufacturerId-int-">setManufacturerId</a></span>(int id)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="BleScanInfo--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BleScanInfo</h4> +<pre>public BleScanInfo()</pre> +</li> +</ul> +<a name="BleScanInfo-com.idevicesinc.sweetblue.utils.Pointer-com.idevicesinc.sweetblue.utils.Pointer-java.util.List-int-byte:A-java.util.Map-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BleScanInfo</h4> +<pre>public BleScanInfo(<a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils">Pointer</a><<a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> advFlags, + <a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils">Pointer</a><<a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> txPower, + <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> serviceUuids, + int mfgId, + byte[] mfgData, + <a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> serviceData, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> localName)</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="clearServiceData--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearServiceData</h4> +<pre>public void clearServiceData()</pre> +</li> +</ul> +<a name="populateServiceData-java.util.Map-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>populateServiceData</h4> +<pre>public void populateServiceData(<a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> data)</pre> +</li> +</ul> +<a name="clearServiceUUIDs--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clearServiceUUIDs</h4> +<pre>public void clearServiceUUIDs()</pre> +</li> +</ul> +<a name="populateServiceUUIDs-java.util.List-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>populateServiceUUIDs</h4> +<pre>public void populateServiceUUIDs(<a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> uuids)</pre> +</li> +</ul> +<a name="setManufacturerId-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setManufacturerId</h4> +<pre>public void setManufacturerId(int id)</pre> +</li> +</ul> +<a name="setManufacturerData-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setManufacturerData</h4> +<pre>public void setManufacturerData(byte[] data)</pre> +</li> +</ul> +<a name="getManufacturerId--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getManufacturerId</h4> +<pre>public int getManufacturerId()</pre> +</li> +</ul> +<a name="getManufacturerData--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getManufacturerData</h4> +<pre>public byte[] getManufacturerData()</pre> +</li> +</ul> +<a name="getAdvFlags--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getAdvFlags</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils">Pointer</a><<a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> getAdvFlags()</pre> +</li> +</ul> +<a name="getTxPower--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getTxPower</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils">Pointer</a><<a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> getTxPower()</pre> +</li> +</ul> +<a name="getServiceUUIDS--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getServiceUUIDS</h4> +<pre>public <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> getServiceUUIDS()</pre> +</li> +</ul> +<a name="getServiceData--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getServiceData</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> getServiceData()</pre> +</li> +</ul> +<a name="getName--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getName</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getName()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BleScanInfo.html" target="_top">Frames</a></li> +<li><a href="BleScanInfo.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..05d3596f7b922cbcd5eb471e2b45903565684f0e --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html @@ -0,0 +1,418 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" target="_top">Frames</a></li> +<li><a href="BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent" class="title">Class BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></pre> +<div class="block">Events passed to <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html#onEvent-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent-"><code>BluetoothEnabler.BluetoothEnablerFilter.onEvent(BluetoothEnablerEvent)</code></a> so that the programmer can assign logic to the user's decision to + enable or disable certain required permissions and settings. Each event contains a <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> which holds the current + enabling stage and a <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Status</code></a> of that stage. Stages which haven't been performed yet start off as + <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#NULL"><code>BluetoothEnabler.BluetoothEnablerFilter.Status.NULL</code></a>, stages skipped are <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#SKIPPED"><code>BluetoothEnabler.BluetoothEnablerFilter.Status.SKIPPED</code></a> and + stages that don't need anything done are <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#ALREADY_ENABLED"><code>BluetoothEnabler.BluetoothEnablerFilter.Status.ALREADY_ENABLED</code></a>. Otherwise, the status of the stage is whatever the user selected.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#activity--">activity</a></span>()</code> +<div class="block">Returns the <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app"><code>Activity</code></a> associated with the Event</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#appData--">appData</a></span>()</code> +<div class="block">Returns the arbitrary app-specific data passed to BluetoothEnabler.BluetoothEnablerFilter.Please#withAppData(Object), or <code>null</code>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#bleManager--">bleManager</a></span>()</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#enabler--">enabler</a></span>()</code> +<div class="block">Returns the <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a> associated with the Event.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#isDone--">isDone</a></span>()</code> </td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#isEnabled-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Stage-">isEnabled</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a> stage)</code> +<div class="block">Returns whether the passed <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> is enabled.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#nextStage--">nextStage</a></span>()</code> +<div class="block">Returns the <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> following the Stage for this event.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#previousStage--">previousStage</a></span>()</code> +<div class="block">Returns the <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> following the Stage for this event.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#stage--">stage</a></span>()</code> +<div class="block">Returns the <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> associated with this event.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#status--">status</a></span>()</code> +<div class="block">Returns the <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Status</code></a> of the current Stage.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#toString--">toString</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="stage--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stage</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a> stage()</pre> +<div class="block">Returns the <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> associated with this event.</div> +</li> +</ul> +<a name="nextStage--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>nextStage</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a> nextStage()</pre> +<div class="block">Returns the <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> following the Stage for this event.</div> +</li> +</ul> +<a name="previousStage--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>previousStage</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a> previousStage()</pre> +<div class="block">Returns the <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> following the Stage for this event.</div> +</li> +</ul> +<a name="status--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>status</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a> status()</pre> +<div class="block">Returns the <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Status</code></a> of the current Stage.</div> +</li> +</ul> +<a name="activity--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>activity</h4> +<pre>public <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> activity()</pre> +<div class="block">Returns the <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app"><code>Activity</code></a> associated with the Event</div> +</li> +</ul> +<a name="enabler--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enabler</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a> enabler()</pre> +<div class="block">Returns the <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a> associated with the Event.</div> +</li> +</ul> +<a name="appData--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>appData</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> appData()</pre> +<div class="block">Returns the arbitrary app-specific data passed to BluetoothEnabler.BluetoothEnablerFilter.Please#withAppData(Object), or <code>null</code>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#withAppData-java.lang.Object-"><code>BluetoothEnabler.BluetoothEnablerFilter.Please.withAppData(Object)</code></a></dd> +</dl> +</li> +</ul> +<a name="bleManager--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bleManager</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a> bleManager()</pre> +</li> +</ul> +<a name="isDone--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isDone</h4> +<pre>public boolean isDone()</pre> +</li> +</ul> +<a name="isEnabled-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Stage-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isEnabled</h4> +<pre>public boolean isEnabled(<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a> stage)</pre> +<div class="block">Returns whether the passed <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> is enabled.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" target="_top">Frames</a></li> +<li><a href="BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html new file mode 100644 index 0000000000000000000000000000000000000000..d6a0a50648c76a7dcf59f241e7bc62bc55f8f9f3 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html @@ -0,0 +1,384 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BluetoothEnabler.BluetoothEnablerFilter.Please (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BluetoothEnabler.BluetoothEnablerFilter.Please (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" target="_top">Frames</a></li> +<li><a href="BluetoothEnabler.BluetoothEnablerFilter.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class BluetoothEnabler.BluetoothEnablerFilter.Please" class="title">Class BluetoothEnabler.BluetoothEnablerFilter.Please</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Please</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BluetoothEnabler.BluetoothEnablerFilter.Please</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Return value for the interface method <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html#onEvent-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent-"><code>BluetoothEnabler.BluetoothEnablerFilter.onEvent(BluetoothEnablerEvent)</code></a>. + Use static constructor methods to create instances.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#doNext--">doNext</a></span>()</code> +<div class="block">Perform the next <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#pause--">pause</a></span>()</code> +<div class="block">Pause the enabler.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#skipNext--">skipNext</a></span>()</code> +<div class="block">Skip the next <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> and move the following one.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#stop--">stop</a></span>()</code> +<div class="block">Bypass all remaining stages and move to the end of the last stage; enabler will finish at this point</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#withActivity-android.app.Activity-">withActivity</a></span>(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> activity)</code> </td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#withAppData-java.lang.Object-">withAppData</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> appData)</code> +<div class="block">Add arbitrary app-specific data which will be passed to the next <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</code></a> + through</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#withDialog-java.lang.String-">withDialog</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> message)</code> +<div class="block">If the next stage isn't skipped or <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#ALREADY_ENABLED"><code>BluetoothEnabler.BluetoothEnablerFilter.Status.ALREADY_ENABLED</code></a> then pop a dialog before</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#withImplicitActivityResultHandling--">withImplicitActivityResultHandling</a></span>()</code> </td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#withRequestCode-int-">withRequestCode</a></span>(int requestCode)</code> +<div class="block">Perform the next stage with the given requestCode</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#withToast-java.lang.String-">withToast</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> message)</code> +<div class="block">Perform the next stage with a Toast</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="doNext--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>doNext</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a> doNext()</pre> +<div class="block">Perform the next <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a>.</div> +</li> +</ul> +<a name="skipNext--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>skipNext</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a> skipNext()</pre> +<div class="block">Skip the next <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> and move the following one.</div> +</li> +</ul> +<a name="stop--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stop</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a> stop()</pre> +<div class="block">Bypass all remaining stages and move to the end of the last stage; enabler will finish at this point</div> +</li> +</ul> +<a name="pause--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>pause</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a> pause()</pre> +<div class="block">Pause the enabler. Call <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#resume-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Please-"><code>BluetoothEnabler.resume(BluetoothEnablerFilter.Please)</code></a> to continue the process.</div> +</li> +</ul> +<a name="withDialog-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>withDialog</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a> withDialog(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> message)</pre> +<div class="block">If the next stage isn't skipped or <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#ALREADY_ENABLED"><code>BluetoothEnabler.BluetoothEnablerFilter.Status.ALREADY_ENABLED</code></a> then pop a dialog before</div> +</li> +</ul> +<a name="withAppData-java.lang.Object-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>withAppData</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a> withAppData(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> appData)</pre> +<div class="block">Add arbitrary app-specific data which will be passed to the next <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</code></a> + through</div> +</li> +</ul> +<a name="withActivity-android.app.Activity-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>withActivity</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a> withActivity(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> activity)</pre> +</li> +</ul> +<a name="withRequestCode-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>withRequestCode</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a> withRequestCode(int requestCode)</pre> +<div class="block">Perform the next stage with the given requestCode</div> +</li> +</ul> +<a name="withToast-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>withToast</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a> withToast(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> message)</pre> +<div class="block">Perform the next stage with a Toast</div> +</li> +</ul> +<a name="withImplicitActivityResultHandling--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>withImplicitActivityResultHandling</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a> withImplicitActivityResultHandling()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" target="_top">Frames</a></li> +<li><a href="BluetoothEnabler.BluetoothEnablerFilter.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html new file mode 100644 index 0000000000000000000000000000000000000000..c6d65f13b50933c236bf944bcf1fb8748c4d5683 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html @@ -0,0 +1,446 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BluetoothEnabler.BluetoothEnablerFilter.Stage (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BluetoothEnabler.BluetoothEnablerFilter.Stage (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" target="_top">Frames</a></li> +<li><a href="BluetoothEnabler.BluetoothEnablerFilter.Stage.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Enum BluetoothEnabler.BluetoothEnablerFilter.Stage" class="title">Enum BluetoothEnabler.BluetoothEnablerFilter.Stage</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Stage</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BluetoothEnabler.BluetoothEnablerFilter.Stage</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a>> +implements <a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">Enumerates changes in the "enabling" stage before a + Bluetooth LE scan is started. Used at <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</code></a> to denote + what the current stage as well as in <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#nextStage--"><code>BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.nextStage()</code></a> to give the following stage to the current one.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#BLUETOOTH">BLUETOOTH</a></span></code> +<div class="block">Used when checking if the device needs Bluetooth turned on and enabling Bluetooth if it is disabled.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#LOCATION_PERMISSION">LOCATION_PERMISSION</a></span></code> +<div class="block">Used when checking and requesting location permissions from the user.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#LOCATION_SERVICES">LOCATION_SERVICES</a></span></code> +<div class="block">Used when checking if the device needs Location services turned on and enabling Location services if they are disabled.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#NULL">NULL</a></span></code> +<div class="block">Fulfills the soft contract of <a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#START">START</a></span></code> +<div class="block">The initial enabling stage.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#isLast--">isLast</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#isLocationRelated--">isLocationRelated</a></span>()</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a> NULL</pre> +<div class="block">Fulfills the soft contract of <a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a>.</div> +</li> +</ul> +<a name="START"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>START</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a> START</pre> +<div class="block">The initial enabling stage. This stage begins the process and kicks off the following stage <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#BLUETOOTH"><code>BLUETOOTH</code></a>.</div> +</li> +</ul> +<a name="BLUETOOTH"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BLUETOOTH</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a> BLUETOOTH</pre> +<div class="block">Used when checking if the device needs Bluetooth turned on and enabling Bluetooth if it is disabled.</div> +</li> +</ul> +<a name="LOCATION_PERMISSION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>LOCATION_PERMISSION</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a> LOCATION_PERMISSION</pre> +<div class="block">Used when checking and requesting location permissions from the user. This stage will be skipped if the device isn't running <a href="http://d.android.com/reference/android/os/Build.VERSION_CODES.html?is-external=true#M" title="class or interface in android.os"><code>Build.VERSION_CODES.M</code></a>.</div> +</li> +</ul> +<a name="LOCATION_SERVICES"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>LOCATION_SERVICES</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a> LOCATION_SERVICES</pre> +<div class="block">Used when checking if the device needs Location services turned on and enabling Location services if they are disabled. This step isn't necessarily needed for overall + Bluetooth scanning. It is only needed for Bluetooth Low Energy scanning in <a href="http://d.android.com/reference/android/os/Build.VERSION_CODES.html?is-external=true#M" title="class or interface in android.os"><code>Build.VERSION_CODES.M</code></a>; otherwise, SweetBlue will default to classic scanning.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BluetoothEnabler.BluetoothEnablerFilter.Stage c : BluetoothEnabler.BluetoothEnablerFilter.Stage.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">UsesCustomNull</a></code></span></div> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +<a name="isLast--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isLast</h4> +<pre>public boolean isLast()</pre> +</li> +</ul> +<a name="isLocationRelated--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isLocationRelated</h4> +<pre>public boolean isLocationRelated()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" target="_top">Frames</a></li> +<li><a href="BluetoothEnabler.BluetoothEnablerFilter.Stage.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html new file mode 100644 index 0000000000000000000000000000000000000000..69ca0393105d8984a2a8def93cd7e55c7feb864a --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html @@ -0,0 +1,506 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BluetoothEnabler.BluetoothEnablerFilter.Status (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BluetoothEnabler.BluetoothEnablerFilter.Status (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" target="_top">Frames</a></li> +<li><a href="BluetoothEnabler.BluetoothEnablerFilter.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Enum BluetoothEnabler.BluetoothEnablerFilter.Status" class="title">Enum BluetoothEnabler.BluetoothEnablerFilter.Status</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Status</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">BluetoothEnabler.BluetoothEnablerFilter.Status</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a>> +implements <a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">The Status of the current <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a></div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#ALREADY_ENABLED">ALREADY_ENABLED</a></span></code> +<div class="block">If the current stage has already been enabled on the device</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#CANCELLED_BY_DIALOG">CANCELLED_BY_DIALOG</a></span></code> +<div class="block">If there was a dialog for the current state and the user declined (denied) the dialog.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#CANCELLED_BY_INTENT">CANCELLED_BY_INTENT</a></span></code> +<div class="block">If the user accepted the dialog but didn't actually enable/grant the requested setting</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#ENABLED">ENABLED</a></span></code> +<div class="block">If the user was prompted to enable a setting and they responded by enabling it</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#MANIFEST_PERMISSION_NEEDED">MANIFEST_PERMISSION_NEEDED</a></span></code> +<div class="block">A permission is needed in your AndroidManifest.xml - for now this only applies to <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#LOCATION_PERMISSION"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage.LOCATION_PERMISSION</code></a>, + which requires either <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#ACCESS_COARSE_LOCATION" title="class or interface in android"><code>Manifest.permission.ACCESS_COARSE_LOCATION</code></a> or <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#ACCESS_FINE_LOCATION" title="class or interface in android"><code>Manifest.permission.ACCESS_FINE_LOCATION</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#NOT_NEEDED">NOT_NEEDED</a></span></code> +<div class="block">If the app wasn't compiled against <a href="http://d.android.com/reference/android/os/Build.VERSION_CODES.html?is-external=true#M" title="class or interface in android.os"><code>Build.VERSION_CODES.M</code></a> then the <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#LOCATION_PERMISSION"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage.LOCATION_PERMISSION</code></a> isn't needed + because the underlying function call<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true#requestPermissions-java.lang.String:A-int-" title="class or interface in android.app"><code>Activity.requestPermissions(String[], int)</code></a> doesn't exist for this SDK version.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#NULL">NULL</a></span></code> +<div class="block">Fulfills the soft contract of <a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#SKIPPED">SKIPPED</a></span></code> +<div class="block">If the programmer of the application chose to skip a stage</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#STOPPED">STOPPED</a></span></code> +<div class="block">If the programmer of the application chose to call <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#stop--"><code>BluetoothEnabler.BluetoothEnablerFilter.Please.stop()</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#isCancelled--">isCancelled</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if <code>this</code> == <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#NULL"><code>NULL</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#wasPreviouslyNotEnabled--">wasPreviouslyNotEnabled</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a> NULL</pre> +<div class="block">Fulfills the soft contract of <a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a>.</div> +</li> +</ul> +<a name="ALREADY_ENABLED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ALREADY_ENABLED</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a> ALREADY_ENABLED</pre> +<div class="block">If the current stage has already been enabled on the device</div> +</li> +</ul> +<a name="ENABLED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ENABLED</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a> ENABLED</pre> +<div class="block">If the user was prompted to enable a setting and they responded by enabling it</div> +</li> +</ul> +<a name="NOT_NEEDED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NOT_NEEDED</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a> NOT_NEEDED</pre> +<div class="block">If the app wasn't compiled against <a href="http://d.android.com/reference/android/os/Build.VERSION_CODES.html?is-external=true#M" title="class or interface in android.os"><code>Build.VERSION_CODES.M</code></a> then the <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#LOCATION_PERMISSION"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage.LOCATION_PERMISSION</code></a> isn't needed + because the underlying function call<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true#requestPermissions-java.lang.String:A-int-" title="class or interface in android.app"><code>Activity.requestPermissions(String[], int)</code></a> doesn't exist for this SDK version.</div> +</li> +</ul> +<a name="CANCELLED_BY_DIALOG"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CANCELLED_BY_DIALOG</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a> CANCELLED_BY_DIALOG</pre> +<div class="block">If there was a dialog for the current state and the user declined (denied) the dialog.</div> +</li> +</ul> +<a name="CANCELLED_BY_INTENT"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CANCELLED_BY_INTENT</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a> CANCELLED_BY_INTENT</pre> +<div class="block">If the user accepted the dialog but didn't actually enable/grant the requested setting</div> +</li> +</ul> +<a name="SKIPPED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SKIPPED</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a> SKIPPED</pre> +<div class="block">If the programmer of the application chose to skip a stage</div> +</li> +</ul> +<a name="MANIFEST_PERMISSION_NEEDED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>MANIFEST_PERMISSION_NEEDED</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a> MANIFEST_PERMISSION_NEEDED</pre> +<div class="block">A permission is needed in your AndroidManifest.xml - for now this only applies to <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#LOCATION_PERMISSION"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage.LOCATION_PERMISSION</code></a>, + which requires either <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#ACCESS_COARSE_LOCATION" title="class or interface in android"><code>Manifest.permission.ACCESS_COARSE_LOCATION</code></a> or <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#ACCESS_FINE_LOCATION" title="class or interface in android"><code>Manifest.permission.ACCESS_FINE_LOCATION</code></a>.</div> +</li> +</ul> +<a name="STOPPED"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>STOPPED</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a> STOPPED</pre> +<div class="block">If the programmer of the application chose to call <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#stop--"><code>BluetoothEnabler.BluetoothEnablerFilter.Please.stop()</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (BluetoothEnabler.BluetoothEnablerFilter.Status c : BluetoothEnabler.BluetoothEnablerFilter.Status.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block">Returns <code>true</code> if <code>this</code> == <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#NULL"><code>NULL</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +<a name="isCancelled--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isCancelled</h4> +<pre>public boolean isCancelled()</pre> +</li> +</ul> +<a name="wasPreviouslyNotEnabled--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>wasPreviouslyNotEnabled</h4> +<pre>public boolean wasPreviouslyNotEnabled()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" target="_top">Frames</a></li> +<li><a href="BluetoothEnabler.BluetoothEnablerFilter.Status.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html new file mode 100644 index 0000000000000000000000000000000000000000..322346682cc49bcd4cfd1e4b374b1d4b30180278 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html @@ -0,0 +1,273 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BluetoothEnabler.BluetoothEnablerFilter (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BluetoothEnabler.BluetoothEnablerFilter (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" target="_top">Frames</a></li> +<li><a href="BluetoothEnabler.BluetoothEnablerFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Interface BluetoothEnabler.BluetoothEnablerFilter" class="title">Interface BluetoothEnabler.BluetoothEnablerFilter</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.DefaultBluetoothEnablerFilter</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></dd> +</dl> +<hr> +<br> +<pre>public static interface <span class="typeNameLabel">BluetoothEnabler.BluetoothEnablerFilter</span></pre> +<div class="block">Provide an implementation to <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#BluetoothEnabler-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-"><code>BluetoothEnabler.BluetoothEnabler(Activity, BluetoothEnablerFilter)</code></a> to receive callbacks or simply use the provided class + <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.DefaultBluetoothEnablerFilter</code></a> by calling <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-"><code>BluetoothEnabler.start(Activity)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a></span></code> +<div class="block">Events passed to <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html#onEvent-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent-"><code>onEvent(BluetoothEnablerEvent)</code></a> so that the programmer can assign logic to the user's decision to + enable or disable certain required permissions and settings.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></span></code> +<div class="block">Return value for the interface method <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html#onEvent-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent-"><code>onEvent(BluetoothEnablerEvent)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a></span></code> +<div class="block">Enumerates changes in the "enabling" stage before a + Bluetooth LE scan is started.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a></span></code> +<div class="block">The Status of the current <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a></div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html#onEvent-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent-">onEvent</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a> e)</code> +<div class="block">Called after moving to the next <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a></div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a> onEvent(<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a> e)</pre> +<div class="block">Called after moving to the next <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a></div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" target="_top">Frames</a></li> +<li><a href="BluetoothEnabler.BluetoothEnablerFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html new file mode 100644 index 0000000000000000000000000000000000000000..30c60edb008010b0070dc9a2382d710df6403b5a --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html @@ -0,0 +1,303 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BluetoothEnabler.DefaultBluetoothEnablerFilter (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BluetoothEnabler.DefaultBluetoothEnablerFilter (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" target="_top">Frames</a></li> +<li><a href="BluetoothEnabler.DefaultBluetoothEnablerFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class BluetoothEnabler.DefaultBluetoothEnablerFilter" class="title">Class BluetoothEnabler.DefaultBluetoothEnablerFilter</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.BluetoothEnabler.DefaultBluetoothEnablerFilter</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">BluetoothEnabler.DefaultBluetoothEnablerFilter</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter</a></pre> +<div class="block">A default implementation of BluetoothEnablerListener used in <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-"><code>BluetoothEnabler.start(Activity)</code></a>. It provides a + basic implementation for use/example and can be overridden.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a></code></li> +</ul> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html#DefaultBluetoothEnablerFilter--">DefaultBluetoothEnablerFilter</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html#onEvent-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent-">onEvent</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a> e)</code> +<div class="block">Called after moving to the next <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a></div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="DefaultBluetoothEnablerFilter--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>DefaultBluetoothEnablerFilter</h4> +<pre>public DefaultBluetoothEnablerFilter()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a> onEvent(<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a> e)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html#onEvent-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent-">BluetoothEnabler.BluetoothEnablerFilter</a></code></span></div> +<div class="block">Called after moving to the next <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a></div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html#onEvent-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent-">onEvent</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" target="_top">Frames</a></li> +<li><a href="BluetoothEnabler.DefaultBluetoothEnablerFilter.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.html new file mode 100644 index 0000000000000000000000000000000000000000..1f0ea05b9d9da7ada61f10033abd84b9202d8ff7 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/BluetoothEnabler.html @@ -0,0 +1,466 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>BluetoothEnabler (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="BluetoothEnabler (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":10,"i6":9,"i7":10,"i8":9,"i9":9,"i10":9,"i11":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" target="_top">Frames</a></li> +<li><a href="BluetoothEnabler.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class BluetoothEnabler" class="title">Class BluetoothEnabler</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.BluetoothEnabler</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">BluetoothEnabler</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">This class is used to handle the new hairy logic for getting bluetooth low-energy scan results that is introduced with <a href="http://d.android.com/reference/android/os/Build.VERSION_CODES.html?is-external=true#M" title="class or interface in android.os"><code>Build.VERSION_CODES.M</code></a>. + With <a href="http://d.android.com/reference/android/os/Build.VERSION_CODES.html?is-external=true#M" title="class or interface in android.os"><code>Build.VERSION_CODES.M</code></a> you need to have <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#ACCESS_COARSE_LOCATION" title="class or interface in android"><code>Manifest.permission.ACCESS_COARSE_LOCATION</code></a> or <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#ACCESS_FINE_LOCATION" title="class or interface in android"><code>Manifest.permission.ACCESS_FINE_LOCATION</code></a> + in your AndroidManifest.xml, and also enable them at runtime, AND also make sure location services are on. + <br><br> + See more information at <a target="_blank" href="https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues#android-m-issues">https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues#android-m-issues</a> + <br><br> + This class is simply a convenience that wraps various helper methods of <a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> (see the "See Also" section, which has enough links that it might give you + an idea of why <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a> was written). As such you don't need to use it, but in combination with <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.DefaultBluetoothEnablerFilter</code></a> + it comes in handy as a one-line addition to most simple apps.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning--"><code>BleManager.isLocationEnabledForScanning()</code></a>, +<a href="../../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byManifestPermissions--"><code>BleManager.isLocationEnabledForScanning_byManifestPermissions()</code></a>, +<a href="../../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byRuntimePermissions--"><code>BleManager.isLocationEnabledForScanning_byRuntimePermissions()</code></a>, +<a href="../../../../com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byOsServices--"><code>BleManager.isLocationEnabledForScanning_byOsServices()</code></a>, +<a href="../../../../com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forPermissions-android.app.Activity-int-"><code>BleManager.turnOnLocationWithIntent_forPermissions(Activity, int)</code></a>, +<a href="../../../../com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forOsServices-android.app.Activity-int-"><code>BleManager.turnOnLocationWithIntent_forOsServices(Activity, int)</code></a>, +<a href="../../../../com/idevicesinc/sweetblue/BleManager.html#turnOnWithIntent-android.app.Activity-int-"><code>BleManager.turnOnWithIntent(Activity, int)</code></a>, +<a href="../../../../com/idevicesinc/sweetblue/BleManager.html#willLocationPermissionSystemDialogBeShown-android.app.Activity-"><code>BleManager.willLocationPermissionSystemDialogBeShown(Activity)</code></a>, +<a target="_blank" href="https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues#android-m-issues">https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues#android-m-issues</a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Class and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static interface </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter</a></span></code> +<div class="block">Provide an implementation to <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#BluetoothEnabler-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-"><code>BluetoothEnabler(Activity, BluetoothEnablerFilter)</code></a> to receive callbacks or simply use the provided class + <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.DefaultBluetoothEnablerFilter</code></a> by calling <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-"><code>start(Activity)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.DefaultBluetoothEnablerFilter</a></span></code> +<div class="block">A default implementation of BluetoothEnablerListener used in <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-"><code>start(Activity)</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#getStage--">getStage</a></span>()</code> +<div class="block">Returns the current <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> the enabler is on</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#isDone--">isDone</a></span>()</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#isEnabled-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Stage-">isEnabled</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a> stage)</code> +<div class="block">Returns whether the passed <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> has been enabled.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#isPerformingSystemCall--">isPerformingSystemCall</a></span>()</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#onActivityOrPermissionResult_static-int-">onActivityOrPermissionResult_static</a></span>(int requestCode)</code> +<div class="block">Static equivalent of <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#onActivityOrPermissionResult-int-"><code>onActivityOrPermissionResult(int)</code></a> that you can use to call down into the + singleton created by <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-"><code>start(Activity, BluetoothEnablerFilter)</code></a> (or overloads).</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#onActivityOrPermissionResult-int-">onActivityOrPermissionResult</a></span>(int requestCode)</code> +<div class="block">A potentially-required method to be placed in your activity's <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true#onRequestPermissionsResult-int-java.lang.String:A-int:A-" title="class or interface in android.app"><code>Activity.onRequestPermissionsResult(int, String[], int[])</code></a> and <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true#onActivityResult-int-int-android.content.Intent-" title="class or interface in android.app"><code>Activity.onActivityResult(int, int, Intent)</code></a> methods.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>static void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#resume_static-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Please-">resume_static</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a> please)</code> +<div class="block">Static equivalent of <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#resume-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Please-"><code>resume(BluetoothEnablerFilter.Please)</code></a> that you can use to call down into the + singleton created by <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-"><code>start(Activity, BluetoothEnablerFilter)</code></a> (or overloads).</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#resume-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Please-">resume</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a> please)</code> +<div class="block">Resume the enabler with the given Please.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-">start</a></span>(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> activity)</code> +<div class="block">Overload of <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-"><code>start(Activity, BluetoothEnablerFilter)</code></a> that uses an instance of <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.DefaultBluetoothEnablerFilter</code></a>.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-">start</a></span>(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> activity, + <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter</a> filter)</code> +<div class="block">Kicks off the complex flow needed to fully enable Bluetooth on Build versions greater than or equal to <a href="http://d.android.com/reference/android/os/Build.VERSION_CODES.html?is-external=true#M" title="class or interface in android.os"><code>Build.VERSION_CODES.M</code></a>.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.content.Context-">start</a></span>(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context)</code> +<div class="block">Overload of <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-"><code>start(Activity)</code></a> but given <a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content"><code>Context</code></a> must be an <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app"><code>Activity</code></a>.</div> +</td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.content.Context-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-">start</a></span>(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context, + <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter</a> filter)</code> +<div class="block">Overload of <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-"><code>start(Activity, BluetoothEnablerFilter)</code></a> but given <a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content"><code>Context</code></a> must be an <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app"><code>Activity</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="start-android.content.Context-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>start</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a> start(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context)</pre> +<div class="block">Overload of <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-"><code>start(Activity)</code></a> but given <a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content"><code>Context</code></a> must be an <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app"><code>Activity</code></a>.</div> +</li> +</ul> +<a name="start-android.content.Context-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>start</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a> start(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context, + <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter</a> filter)</pre> +<div class="block">Overload of <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-"><code>start(Activity, BluetoothEnablerFilter)</code></a> but given <a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content"><code>Context</code></a> must be an <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app"><code>Activity</code></a>.</div> +</li> +</ul> +<a name="resume_static-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Please-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>resume_static</h4> +<pre>public static void resume_static(<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a> please)</pre> +<div class="block">Static equivalent of <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#resume-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Please-"><code>resume(BluetoothEnablerFilter.Please)</code></a> that you can use to call down into the + singleton created by <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-"><code>start(Activity, BluetoothEnablerFilter)</code></a> (or overloads).</div> +</li> +</ul> +<a name="onActivityOrPermissionResult_static-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>onActivityOrPermissionResult_static</h4> +<pre>public static void onActivityOrPermissionResult_static(int requestCode)</pre> +<div class="block">Static equivalent of <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#onActivityOrPermissionResult-int-"><code>onActivityOrPermissionResult(int)</code></a> that you can use to call down into the + singleton created by <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-"><code>start(Activity, BluetoothEnablerFilter)</code></a> (or overloads).</div> +</li> +</ul> +<a name="start-android.app.Activity-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>start</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a> start(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> activity)</pre> +<div class="block">Overload of <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-"><code>start(Activity, BluetoothEnablerFilter)</code></a> that uses an instance of <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.DefaultBluetoothEnablerFilter</code></a>.</div> +</li> +</ul> +<a name="start-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>start</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a> start(<a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app">Activity</a> activity, + <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter</a> filter)</pre> +<div class="block">Kicks off the complex flow needed to fully enable Bluetooth on Build versions greater than or equal to <a href="http://d.android.com/reference/android/os/Build.VERSION_CODES.html?is-external=true#M" title="class or interface in android.os"><code>Build.VERSION_CODES.M</code></a>.</div> +</li> +</ul> +<a name="onActivityOrPermissionResult-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>onActivityOrPermissionResult</h4> +<pre>public void onActivityOrPermissionResult(int requestCode)</pre> +<div class="block">A potentially-required method to be placed in your activity's <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true#onRequestPermissionsResult-int-java.lang.String:A-int:A-" title="class or interface in android.app"><code>Activity.onRequestPermissionsResult(int, String[], int[])</code></a> and <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true#onActivityResult-int-int-android.content.Intent-" title="class or interface in android.app"><code>Activity.onActivityResult(int, int, Intent)</code></a> methods. + This method will re-connect the enabler after the app is re-entered. Otherwise, the enabler won't continue unless <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#withImplicitActivityResultHandling--"><code>BluetoothEnabler.BluetoothEnablerFilter.Please.withImplicitActivityResultHandling()</code></a> is called.</div> +</li> +</ul> +<a name="isEnabled-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Stage-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isEnabled</h4> +<pre>public boolean isEnabled(<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a> stage)</pre> +<div class="block">Returns whether the passed <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> has been enabled.</div> +</li> +</ul> +<a name="resume-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Please-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>resume</h4> +<pre>public void resume(<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a> please)</pre> +<div class="block">Resume the enabler with the given Please. Enabler will continue where is left off.</div> +</li> +</ul> +<a name="getStage--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getStage</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a> getStage()</pre> +<div class="block">Returns the current <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> the enabler is on</div> +</li> +</ul> +<a name="isPerformingSystemCall--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isPerformingSystemCall</h4> +<pre>public boolean isPerformingSystemCall()</pre> +</li> +</ul> +<a name="isDone--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isDone</h4> +<pre>public boolean isDone()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" target="_top">Frames</a></li> +<li><a href="BluetoothEnabler.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/DebugLogger.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/DebugLogger.html new file mode 100644 index 0000000000000000000000000000000000000000..4d209c4b40e42ee7b693ab73d0d8bd97fb2ae857 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/DebugLogger.html @@ -0,0 +1,392 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>DebugLogger (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="DebugLogger (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/DebugLogger.html" target="_top">Frames</a></li> +<li><a href="DebugLogger.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class DebugLogger" class="title">Class DebugLogger</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.DebugLogger</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue">SweetLogger</a></dd> +</dl> +<hr> +<br> +<pre>public final class <span class="typeNameLabel">DebugLogger</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../../com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue">SweetLogger</a></pre> +<div class="block">Logger class which prints SweetBlue logs to Android's logcat. This also tracks log statements. The internal list holds a specific amount of + statements. When that limit is reached, the oldest statement gets dropped from the list. + See <a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html#DebugLogger--"><code>DebugLogger()</code></a> and <a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html#DebugLogger-int-"><code>DebugLogger(int)</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html#DEFAULT_MAX_SIZE">DEFAULT_MAX_SIZE</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html#DebugLogger--">DebugLogger</a></span>()</code> +<div class="block">Default constructor which sets the max log size of <a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html#DEFAULT_MAX_SIZE"><code>DEFAULT_MAX_SIZE</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html#DebugLogger-int-">DebugLogger</a></span>(int maxLogSize)</code> +<div class="block">Constructor which allows you to set a custom max log count size.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html#getLastLog--">getLastLog</a></span>()</code> +<div class="block">Returns the last log statement</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html#getLastLogs-int-">getLastLogs</a></span>(int count)</code> +<div class="block">Return a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> with the last @param count of log statements.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html#getLogList--">getLogList</a></span>()</code> +<div class="block">Returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> of log statements.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html#onLogEntry-int-java.lang.String-java.lang.String-">onLogEntry</a></span>(int level, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> tag, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="DEFAULT_MAX_SIZE"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>DEFAULT_MAX_SIZE</h4> +<pre>public static final int DEFAULT_MAX_SIZE</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../constant-values.html#com.idevicesinc.sweetblue.utils.DebugLogger.DEFAULT_MAX_SIZE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +</li> +</ul> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="DebugLogger--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DebugLogger</h4> +<pre>public DebugLogger()</pre> +<div class="block">Default constructor which sets the max log size of <a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html#DEFAULT_MAX_SIZE"><code>DEFAULT_MAX_SIZE</code></a>.</div> +</li> +</ul> +<a name="DebugLogger-int-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>DebugLogger</h4> +<pre>public DebugLogger(int maxLogSize)</pre> +<div class="block">Constructor which allows you to set a custom max log count size.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onLogEntry-int-java.lang.String-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>onLogEntry</h4> +<pre>public final void onLogEntry(int level, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> tag, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> msg)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/SweetLogger.html#onLogEntry-int-java.lang.String-java.lang.String-">onLogEntry</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue">SweetLogger</a></code></dd> +</dl> +</li> +</ul> +<a name="getLastLogs-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getLastLogs</h4> +<pre>public final <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> getLastLogs(int count)</pre> +<div class="block">Return a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> with the last @param count of log statements. If there haven't been any yet, and empty list is returned.</div> +</li> +</ul> +<a name="getLastLog--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getLastLog</h4> +<pre>public final <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getLastLog()</pre> +<div class="block">Returns the last log statement</div> +</li> +</ul> +<a name="getLogList--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getLogList</h4> +<pre>public final <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> getLogList()</pre> +<div class="block">Returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> of log statements. The default max size is <a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html#DEFAULT_MAX_SIZE"><code>DEFAULT_MAX_SIZE</code></a>, but can also be set + by using the <a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html#DebugLogger-int-"><code>DebugLogger(int)</code></a> constructor.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/DebugLogger.html" target="_top">Frames</a></li> +<li><a href="DebugLogger.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Distance.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Distance.html new file mode 100644 index 0000000000000000000000000000000000000000..6f1f2e78e771256524986a60ba587f6293c83076 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Distance.html @@ -0,0 +1,446 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Distance (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Distance (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":9,"i6":10,"i7":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Distance.html" target="_top">Frames</a></li> +<li><a href="Distance.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class Distance" class="title">Class Distance</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.Distance</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">Distance</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a>></pre> +<div class="block">Wrapper for a positive-only physical distance supporting various units of measurement.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html#FEET_PER_METER">FEET_PER_METER</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html#INVALID">INVALID</a></span></code> +<div class="block">Convenience value representing an invalid/impossible distance, arbitrarily chosen to be negative one meter.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html#ZERO">ZERO</a></span></code> +<div class="block">Convenience value for zero meters.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html#feet--">feet</a></span>()</code> +<div class="block">Returns the value of this distance in feet.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html#feet-double-">feet</a></span>(double feet)</code> +<div class="block">Creates a new value in feet.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>protected double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html#getRawValue--">getRawValue</a></span>()</code> +<div class="block">Subclasses must implement this to return their raw <code>double</code> value.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html#isValid--">isValid</a></span>()</code> +<div class="block">Returns <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html#meters--"><code>meters()</code></a> is >= 0.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html#meters--">meters</a></span>()</code> +<div class="block">Returns the value of this distance in meters.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html#meters-double-">meters</a></span>(double meters)</code> +<div class="block">Creates a new value in meters.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>protected <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html#newInstance-double-">newInstance</a></span>(double rawValue)</code> +<div class="block">Subclasses must override this so that arithmetic "operators" can create new instances.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html#toString--">toString</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Unit"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#dividedBy-com.idevicesinc.sweetblue.utils.Unit-">dividedBy</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#equals-java.lang.Object-">equals</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#gt-double-">gt</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#gt-com.idevicesinc.sweetblue.utils.Unit-">gt</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#gte-double-">gte</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#gte-com.idevicesinc.sweetblue.utils.Unit-">gte</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#hashCode--">hashCode</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#lt-double-">lt</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#lt-com.idevicesinc.sweetblue.utils.Unit-">lt</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#lte-double-">lte</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#lte-com.idevicesinc.sweetblue.utils.Unit-">lte</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#minus-com.idevicesinc.sweetblue.utils.Unit-">minus</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#plus-com.idevicesinc.sweetblue.utils.Unit-">plus</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#times-com.idevicesinc.sweetblue.utils.Unit-">times</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="FEET_PER_METER"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>FEET_PER_METER</h4> +<pre>public static final double FEET_PER_METER</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../constant-values.html#com.idevicesinc.sweetblue.utils.Distance.FEET_PER_METER">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="ZERO"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ZERO</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a> ZERO</pre> +<div class="block">Convenience value for zero meters.</div> +</li> +</ul> +<a name="INVALID"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>INVALID</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a> INVALID</pre> +<div class="block">Convenience value representing an invalid/impossible distance, arbitrarily chosen to be negative one meter.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="meters--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>meters</h4> +<pre>public double meters()</pre> +<div class="block">Returns the value of this distance in meters.</div> +</li> +</ul> +<a name="feet--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>feet</h4> +<pre>public double feet()</pre> +<div class="block">Returns the value of this distance in feet.</div> +</li> +</ul> +<a name="meters-double-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>meters</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a> meters(double meters)</pre> +<div class="block">Creates a new value in meters.</div> +</li> +</ul> +<a name="feet-double-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>feet</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a> feet(double feet)</pre> +<div class="block">Creates a new value in feet.</div> +</li> +</ul> +<a name="isValid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isValid</h4> +<pre>public boolean isValid()</pre> +<div class="block">Returns <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html#meters--"><code>meters()</code></a> is >= 0.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +<a name="getRawValue--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getRawValue</h4> +<pre>protected double getRawValue()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#getRawValue--">Unit</a></code></span></div> +<div class="block">Subclasses must implement this to return their raw <code>double</code> value.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#getRawValue--">getRawValue</a></code> in class <code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a>></code></dd> +</dl> +</li> +</ul> +<a name="newInstance-double-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>newInstance</h4> +<pre>protected <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a>> newInstance(double rawValue)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#newInstance-double-">Unit</a></code></span></div> +<div class="block">Subclasses must override this so that arithmetic "operators" can create new instances.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#newInstance-double-">newInstance</a></code> in class <code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a>></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Distance.html" target="_top">Frames</a></li> +<li><a href="Distance.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/EmptyCursor.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/EmptyCursor.html new file mode 100644 index 0000000000000000000000000000000000000000..07c961d086c6363d4177c229174edb78c3ff4423 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/EmptyCursor.html @@ -0,0 +1,1016 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>EmptyCursor (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="EmptyCursor (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/EmptyCursor.html" target="_top">Frames</a></li> +<li><a href="EmptyCursor.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class EmptyCursor" class="title">Class EmptyCursor</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.EmptyCursor</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a>, <a href="http://d.android.com/reference/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, <a href="http://d.android.com/reference/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">EmptyCursor</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></pre> +<div class="block">An implementation of <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database"><code>Cursor</code></a> used for error conditions and things like that where we don't want to return null.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#SINGLETON">SINGLETON</a></span></code> +<div class="block">Singleton value, safe to reuse.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.android.database.Cursor"> +<!-- --> +</a> +<h3>Fields inherited from interface android.database.<a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></h3> +<code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#FIELD_TYPE_BLOB" title="class or interface in android.database">FIELD_TYPE_BLOB</a>, <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#FIELD_TYPE_FLOAT" title="class or interface in android.database">FIELD_TYPE_FLOAT</a>, <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#FIELD_TYPE_INTEGER" title="class or interface in android.database">FIELD_TYPE_INTEGER</a>, <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#FIELD_TYPE_NULL" title="class or interface in android.database">FIELD_TYPE_NULL</a>, <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#FIELD_TYPE_STRING" title="class or interface in android.database">FIELD_TYPE_STRING</a></code></li> +</ul> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#EmptyCursor--">EmptyCursor</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#close--">close</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#copyStringToBuffer-int-android.database.CharArrayBuffer-">copyStringToBuffer</a></span>(int columnIndex, + <a href="http://d.android.com/reference/android/database/CharArrayBuffer.html?is-external=true" title="class or interface in android.database">CharArrayBuffer</a> buffer)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#deactivate--">deactivate</a></span>()</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#getBlob-int-">getBlob</a></span>(int columnIndex)</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#getColumnCount--">getColumnCount</a></span>()</code> </td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#getColumnIndex-java.lang.String-">getColumnIndex</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> columnName)</code> </td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#getColumnIndexOrThrow-java.lang.String-">getColumnIndexOrThrow</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> columnName)</code> </td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#getColumnName-int-">getColumnName</a></span>(int columnIndex)</code> </td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#getColumnNames--">getColumnNames</a></span>()</code> </td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#getCount--">getCount</a></span>()</code> </td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#getDouble-int-">getDouble</a></span>(int columnIndex)</code> </td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/os/Bundle.html?is-external=true" title="class or interface in android.os">Bundle</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#getExtras--">getExtras</a></span>()</code> </td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code>float</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#getFloat-int-">getFloat</a></span>(int columnIndex)</code> </td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#getInt-int-">getInt</a></span>(int columnIndex)</code> </td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code>long</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#getLong-int-">getLong</a></span>(int columnIndex)</code> </td> +</tr> +<tr id="i15" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/net/Uri.html?is-external=true" title="class or interface in android.net">Uri</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#getNotificationUri--">getNotificationUri</a></span>()</code> </td> +</tr> +<tr id="i16" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#getPosition--">getPosition</a></span>()</code> </td> +</tr> +<tr id="i17" class="rowColor"> +<td class="colFirst"><code>short</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#getShort-int-">getShort</a></span>(int columnIndex)</code> </td> +</tr> +<tr id="i18" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#getString-int-">getString</a></span>(int columnIndex)</code> </td> +</tr> +<tr id="i19" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#getType-int-">getType</a></span>(int columnIndex)</code> </td> +</tr> +<tr id="i20" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#getWantsAllOnMoveCalls--">getWantsAllOnMoveCalls</a></span>()</code> </td> +</tr> +<tr id="i21" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#isAfterLast--">isAfterLast</a></span>()</code> </td> +</tr> +<tr id="i22" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#isBeforeFirst--">isBeforeFirst</a></span>()</code> </td> +</tr> +<tr id="i23" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#isClosed--">isClosed</a></span>()</code> </td> +</tr> +<tr id="i24" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#isFirst--">isFirst</a></span>()</code> </td> +</tr> +<tr id="i25" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#isLast--">isLast</a></span>()</code> </td> +</tr> +<tr id="i26" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#isNull-int-">isNull</a></span>(int columnIndex)</code> </td> +</tr> +<tr id="i27" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#move-int-">move</a></span>(int offset)</code> </td> +</tr> +<tr id="i28" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#moveToFirst--">moveToFirst</a></span>()</code> </td> +</tr> +<tr id="i29" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#moveToLast--">moveToLast</a></span>()</code> </td> +</tr> +<tr id="i30" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#moveToNext--">moveToNext</a></span>()</code> </td> +</tr> +<tr id="i31" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#moveToPosition-int-">moveToPosition</a></span>(int position)</code> </td> +</tr> +<tr id="i32" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#moveToPrevious--">moveToPrevious</a></span>()</code> </td> +</tr> +<tr id="i33" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#registerContentObserver-android.database.ContentObserver-">registerContentObserver</a></span>(<a href="http://d.android.com/reference/android/database/ContentObserver.html?is-external=true" title="class or interface in android.database">ContentObserver</a> observer)</code> </td> +</tr> +<tr id="i34" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#registerDataSetObserver-android.database.DataSetObserver-">registerDataSetObserver</a></span>(<a href="http://d.android.com/reference/android/database/DataSetObserver.html?is-external=true" title="class or interface in android.database">DataSetObserver</a> observer)</code> </td> +</tr> +<tr id="i35" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#requery--">requery</a></span>()</code> </td> +</tr> +<tr id="i36" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/os/Bundle.html?is-external=true" title="class or interface in android.os">Bundle</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#respond-android.os.Bundle-">respond</a></span>(<a href="http://d.android.com/reference/android/os/Bundle.html?is-external=true" title="class or interface in android.os">Bundle</a> extras)</code> </td> +</tr> +<tr id="i37" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#setExtras-android.os.Bundle-">setExtras</a></span>(<a href="http://d.android.com/reference/android/os/Bundle.html?is-external=true" title="class or interface in android.os">Bundle</a> extras)</code> </td> +</tr> +<tr id="i38" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#setNotificationUri-android.content.ContentResolver-android.net.Uri-">setNotificationUri</a></span>(<a href="http://d.android.com/reference/android/content/ContentResolver.html?is-external=true" title="class or interface in android.content">ContentResolver</a> cr, + <a href="http://d.android.com/reference/android/net/Uri.html?is-external=true" title="class or interface in android.net">Uri</a> uri)</code> </td> +</tr> +<tr id="i39" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#unregisterContentObserver-android.database.ContentObserver-">unregisterContentObserver</a></span>(<a href="http://d.android.com/reference/android/database/ContentObserver.html?is-external=true" title="class or interface in android.database">ContentObserver</a> observer)</code> </td> +</tr> +<tr id="i40" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html#unregisterDataSetObserver-android.database.DataSetObserver-">unregisterDataSetObserver</a></span>(<a href="http://d.android.com/reference/android/database/DataSetObserver.html?is-external=true" title="class or interface in android.database">DataSetObserver</a> observer)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="SINGLETON"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>SINGLETON</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a> SINGLETON</pre> +<div class="block">Singleton value, safe to reuse.</div> +</li> +</ul> +</li> +</ul> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="EmptyCursor--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>EmptyCursor</h4> +<pre>public EmptyCursor()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="getCount--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getCount</h4> +<pre>public int getCount()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#getCount--" title="class or interface in android.database">getCount</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="getPosition--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getPosition</h4> +<pre>public int getPosition()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#getPosition--" title="class or interface in android.database">getPosition</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="move-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>move</h4> +<pre>public boolean move(int offset)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#move-int-" title="class or interface in android.database">move</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="moveToPosition-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>moveToPosition</h4> +<pre>public boolean moveToPosition(int position)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#moveToPosition-int-" title="class or interface in android.database">moveToPosition</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="moveToFirst--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>moveToFirst</h4> +<pre>public boolean moveToFirst()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#moveToFirst--" title="class or interface in android.database">moveToFirst</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="moveToLast--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>moveToLast</h4> +<pre>public boolean moveToLast()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#moveToLast--" title="class or interface in android.database">moveToLast</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="moveToNext--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>moveToNext</h4> +<pre>public boolean moveToNext()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#moveToNext--" title="class or interface in android.database">moveToNext</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="moveToPrevious--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>moveToPrevious</h4> +<pre>public boolean moveToPrevious()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#moveToPrevious--" title="class or interface in android.database">moveToPrevious</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="isFirst--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isFirst</h4> +<pre>public boolean isFirst()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#isFirst--" title="class or interface in android.database">isFirst</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="isLast--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isLast</h4> +<pre>public boolean isLast()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#isLast--" title="class or interface in android.database">isLast</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="isBeforeFirst--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isBeforeFirst</h4> +<pre>public boolean isBeforeFirst()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#isBeforeFirst--" title="class or interface in android.database">isBeforeFirst</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="isAfterLast--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAfterLast</h4> +<pre>public boolean isAfterLast()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#isAfterLast--" title="class or interface in android.database">isAfterLast</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="getColumnIndex-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getColumnIndex</h4> +<pre>public int getColumnIndex(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> columnName)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#getColumnIndex-java.lang.String-" title="class or interface in android.database">getColumnIndex</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="getColumnIndexOrThrow-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getColumnIndexOrThrow</h4> +<pre>public int getColumnIndexOrThrow(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> columnName) + throws <a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#getColumnIndexOrThrow-java.lang.String-" title="class or interface in android.database">getColumnIndexOrThrow</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code></dd> +</dl> +</li> +</ul> +<a name="getColumnName-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getColumnName</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getColumnName(int columnIndex)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#getColumnName-int-" title="class or interface in android.database">getColumnName</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="getColumnNames--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getColumnNames</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[] getColumnNames()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#getColumnNames--" title="class or interface in android.database">getColumnNames</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="getColumnCount--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getColumnCount</h4> +<pre>public int getColumnCount()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#getColumnCount--" title="class or interface in android.database">getColumnCount</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="getBlob-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getBlob</h4> +<pre>public byte[] getBlob(int columnIndex)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#getBlob-int-" title="class or interface in android.database">getBlob</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="getString-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getString(int columnIndex)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#getString-int-" title="class or interface in android.database">getString</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="copyStringToBuffer-int-android.database.CharArrayBuffer-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>copyStringToBuffer</h4> +<pre>public void copyStringToBuffer(int columnIndex, + <a href="http://d.android.com/reference/android/database/CharArrayBuffer.html?is-external=true" title="class or interface in android.database">CharArrayBuffer</a> buffer)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#copyStringToBuffer-int-android.database.CharArrayBuffer-" title="class or interface in android.database">copyStringToBuffer</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="getShort-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getShort</h4> +<pre>public short getShort(int columnIndex)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#getShort-int-" title="class or interface in android.database">getShort</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="getInt-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getInt</h4> +<pre>public int getInt(int columnIndex)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#getInt-int-" title="class or interface in android.database">getInt</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="getLong-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getLong</h4> +<pre>public long getLong(int columnIndex)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#getLong-int-" title="class or interface in android.database">getLong</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="getFloat-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getFloat</h4> +<pre>public float getFloat(int columnIndex)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#getFloat-int-" title="class or interface in android.database">getFloat</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="getDouble-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDouble</h4> +<pre>public double getDouble(int columnIndex)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#getDouble-int-" title="class or interface in android.database">getDouble</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="getType-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getType</h4> +<pre>public int getType(int columnIndex)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#getType-int-" title="class or interface in android.database">getType</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="isNull-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull(int columnIndex)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#isNull-int-" title="class or interface in android.database">isNull</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="deactivate--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>deactivate</h4> +<pre>public void deactivate()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#deactivate--" title="class or interface in android.database">deactivate</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="requery--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>requery</h4> +<pre>public boolean requery()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#requery--" title="class or interface in android.database">requery</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="close--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>close</h4> +<pre>public void close()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#close--" title="class or interface in android.database">close</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/io/Closeable.html?is-external=true#close--" title="class or interface in java.io">close</a></code> in interface <code><a href="http://d.android.com/reference/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a></code></dd> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/AutoCloseable.html?is-external=true#close--" title="class or interface in java.lang">close</a></code> in interface <code><a href="http://d.android.com/reference/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a></code></dd> +</dl> +</li> +</ul> +<a name="isClosed--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isClosed</h4> +<pre>public boolean isClosed()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#isClosed--" title="class or interface in android.database">isClosed</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="registerContentObserver-android.database.ContentObserver-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>registerContentObserver</h4> +<pre>public void registerContentObserver(<a href="http://d.android.com/reference/android/database/ContentObserver.html?is-external=true" title="class or interface in android.database">ContentObserver</a> observer)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#registerContentObserver-android.database.ContentObserver-" title="class or interface in android.database">registerContentObserver</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="unregisterContentObserver-android.database.ContentObserver-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>unregisterContentObserver</h4> +<pre>public void unregisterContentObserver(<a href="http://d.android.com/reference/android/database/ContentObserver.html?is-external=true" title="class or interface in android.database">ContentObserver</a> observer)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#unregisterContentObserver-android.database.ContentObserver-" title="class or interface in android.database">unregisterContentObserver</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="registerDataSetObserver-android.database.DataSetObserver-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>registerDataSetObserver</h4> +<pre>public void registerDataSetObserver(<a href="http://d.android.com/reference/android/database/DataSetObserver.html?is-external=true" title="class or interface in android.database">DataSetObserver</a> observer)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#registerDataSetObserver-android.database.DataSetObserver-" title="class or interface in android.database">registerDataSetObserver</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="unregisterDataSetObserver-android.database.DataSetObserver-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>unregisterDataSetObserver</h4> +<pre>public void unregisterDataSetObserver(<a href="http://d.android.com/reference/android/database/DataSetObserver.html?is-external=true" title="class or interface in android.database">DataSetObserver</a> observer)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#unregisterDataSetObserver-android.database.DataSetObserver-" title="class or interface in android.database">unregisterDataSetObserver</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="setNotificationUri-android.content.ContentResolver-android.net.Uri-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setNotificationUri</h4> +<pre>public void setNotificationUri(<a href="http://d.android.com/reference/android/content/ContentResolver.html?is-external=true" title="class or interface in android.content">ContentResolver</a> cr, + <a href="http://d.android.com/reference/android/net/Uri.html?is-external=true" title="class or interface in android.net">Uri</a> uri)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#setNotificationUri-android.content.ContentResolver-android.net.Uri-" title="class or interface in android.database">setNotificationUri</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="getNotificationUri--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getNotificationUri</h4> +<pre>public <a href="http://d.android.com/reference/android/net/Uri.html?is-external=true" title="class or interface in android.net">Uri</a> getNotificationUri()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#getNotificationUri--" title="class or interface in android.database">getNotificationUri</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="getWantsAllOnMoveCalls--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getWantsAllOnMoveCalls</h4> +<pre>public boolean getWantsAllOnMoveCalls()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#getWantsAllOnMoveCalls--" title="class or interface in android.database">getWantsAllOnMoveCalls</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="setExtras-android.os.Bundle-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>setExtras</h4> +<pre>public void setExtras(<a href="http://d.android.com/reference/android/os/Bundle.html?is-external=true" title="class or interface in android.os">Bundle</a> extras)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#setExtras-android.os.Bundle-" title="class or interface in android.database">setExtras</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="getExtras--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getExtras</h4> +<pre>public <a href="http://d.android.com/reference/android/os/Bundle.html?is-external=true" title="class or interface in android.os">Bundle</a> getExtras()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#getExtras--" title="class or interface in android.database">getExtras</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +<a name="respond-android.os.Bundle-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>respond</h4> +<pre>public <a href="http://d.android.com/reference/android/os/Bundle.html?is-external=true" title="class or interface in android.os">Bundle</a> respond(<a href="http://d.android.com/reference/android/os/Bundle.html?is-external=true" title="class or interface in android.os">Bundle</a> extras)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true#respond-android.os.Bundle-" title="class or interface in android.database">respond</a></code> in interface <code><a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/EmptyCursor.html" target="_top">Frames</a></li> +<li><a href="EmptyCursor.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/EmptyIterator.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/EmptyIterator.html new file mode 100644 index 0000000000000000000000000000000000000000..e407e5e3f38c688f28b14a177535967711ac6503 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/EmptyIterator.html @@ -0,0 +1,320 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>EmptyIterator (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="EmptyIterator (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/EmptyIterator.html" target="_top">Frames</a></li> +<li><a href="EmptyIterator.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class EmptyIterator" class="title">Class EmptyIterator<T></h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.EmptyIterator<T></li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><T></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">EmptyIterator<T></span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><T></pre> +<div class="block">Convenience class for implementing an <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util"><code>Iterator</code></a> with no elements.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyIterator.html#EmptyIterator--">EmptyIterator</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyIterator.html#hasNext--">hasNext</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="type parameter in EmptyIterator">T</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyIterator.html#next--">next</a></span>()</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyIterator.html#remove--">remove</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.util.Iterator"> +<!-- --> +</a> +<h3>Methods inherited from interface java.util.<a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a></h3> +<code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true#forEachRemaining-java.util.function.Consumer-" title="class or interface in java.util">forEachRemaining</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="EmptyIterator--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>EmptyIterator</h4> +<pre>public EmptyIterator()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="hasNext--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasNext</h4> +<pre>public boolean hasNext()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true#hasNext--" title="class or interface in java.util">hasNext</a></code> in interface <code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="type parameter in EmptyIterator">T</a>></code></dd> +</dl> +</li> +</ul> +<a name="next--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>next</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="type parameter in EmptyIterator">T</a> next()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true#next--" title="class or interface in java.util">next</a></code> in interface <code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="type parameter in EmptyIterator">T</a>></code></dd> +</dl> +</li> +</ul> +<a name="remove--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>remove</h4> +<pre>public void remove()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true#remove--" title="class or interface in java.util">remove</a></code> in interface <code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="type parameter in EmptyIterator">T</a>></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/EmptyIterator.html" target="_top">Frames</a></li> +<li><a href="EmptyIterator.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/EpochTime.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/EpochTime.html new file mode 100644 index 0000000000000000000000000000000000000000..b40e7c71b7263d952b6b14826f674f7af9d8bb78 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/EpochTime.html @@ -0,0 +1,552 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>EpochTime (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="EpochTime (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/EpochTime.html" target="_top">Frames</a></li> +<li><a href="EpochTime.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class EpochTime" class="title">Class EpochTime</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.EpochTime</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a>></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">EpochTime</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a>>, <a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">A class fulfilling a similar role to Java's built-in <a href="http://d.android.com/reference/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a>, i.e. + milliseconds since 1970. We don't use <a href="http://d.android.com/reference/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a> because it is mutable, + which makes certain APIs in SweetBlue harder to design.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#MAX">MAX</a></span></code> +<div class="block">Convenience instance using <a href="http://d.android.com/reference/java/lang/Long.html?is-external=true#MAX_VALUE" title="class or interface in java.lang"><code>Long.MAX_VALUE</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#MIN">MIN</a></span></code> +<div class="block">Convenience instance using <a href="http://d.android.com/reference/java/lang/Long.html?is-external=true#MIN_VALUE" title="class or interface in java.lang"><code>Long.MIN_VALUE</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#NULL">NULL</a></span></code> +<div class="block">Fulfills the soft contract of <a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a> - used for <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#isNull--"><code>isNull()</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#ZERO">ZERO</a></span></code> +<div class="block">Convenience instance representing the start date of 1970.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#EpochTime--">EpochTime</a></span>()</code> +<div class="block">Constructs a new instance using <a href="http://d.android.com/reference/java/lang/System.html?is-external=true#currentTimeMillis--" title="class or interface in java.lang"><code>System.currentTimeMillis()</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#EpochTime-java.util.Date-">EpochTime</a></span>(<a href="http://d.android.com/reference/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a> date)</code> +<div class="block">Converts from Java's built-in date.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#EpochTime-long-">EpochTime</a></span>(long millisecondsSince1970)</code> +<div class="block">Constructs a new instance using milliseconds since 1970.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#compareTo-com.idevicesinc.sweetblue.utils.EpochTime-">compareTo</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> another)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#isBetween_inclusive-com.idevicesinc.sweetblue.utils.EpochTime-com.idevicesinc.sweetblue.utils.EpochTime-">isBetween_inclusive</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> from, + <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> to)</code> +<div class="block">Does an inclusive check for <code>this</code> being in the given range.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#isBetween_inclusive-com.idevicesinc.sweetblue.utils.EpochTimeRange-">isBetween_inclusive</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> +<div class="block">Overload of <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#isBetween_inclusive-com.idevicesinc.sweetblue.utils.EpochTime-com.idevicesinc.sweetblue.utils.EpochTime-"><code>isBetween_inclusive(EpochTime, EpochTime)</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if <code>this</code> is referentially equal to <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#NULL"><code>NULL</code></a>.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#minus-com.idevicesinc.sweetblue.utils.EpochTime-">minus</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime)</code> +<div class="block">Returns the delta resulting from <code>this-epochTime</code>.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#now--">now</a></span>()</code> +<div class="block">Simply a more readable version of the default constructor <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#EpochTime--"><code>EpochTime()</code></a>.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#toDate--">toDate</a></span>()</code> +<div class="block">Converts to Java's built-in date class.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>long</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#toMilliseconds--">toMilliseconds</a></span>()</code> +<div class="block">Converts to milliseconds since 1970, which is currently also how the value is stored internally.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#toSeconds--">toSeconds</a></span>()</code> +<div class="block">Converts to seconds since 1970.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#toString--">toString</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> NULL</pre> +<div class="block">Fulfills the soft contract of <a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a> - used for <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#isNull--"><code>isNull()</code></a>.</div> +</li> +</ul> +<a name="MIN"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>MIN</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> MIN</pre> +<div class="block">Convenience instance using <a href="http://d.android.com/reference/java/lang/Long.html?is-external=true#MIN_VALUE" title="class or interface in java.lang"><code>Long.MIN_VALUE</code></a>.</div> +</li> +</ul> +<a name="MAX"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>MAX</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> MAX</pre> +<div class="block">Convenience instance using <a href="http://d.android.com/reference/java/lang/Long.html?is-external=true#MAX_VALUE" title="class or interface in java.lang"><code>Long.MAX_VALUE</code></a>.</div> +</li> +</ul> +<a name="ZERO"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>ZERO</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> ZERO</pre> +<div class="block">Convenience instance representing the start date of 1970.</div> +</li> +</ul> +</li> +</ul> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="EpochTime-java.util.Date-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>EpochTime</h4> +<pre>public EpochTime(<a href="http://d.android.com/reference/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a> date)</pre> +<div class="block">Converts from Java's built-in date.</div> +</li> +</ul> +<a name="EpochTime-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>EpochTime</h4> +<pre>public EpochTime(long millisecondsSince1970)</pre> +<div class="block">Constructs a new instance using milliseconds since 1970.</div> +</li> +</ul> +<a name="EpochTime--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>EpochTime</h4> +<pre>public EpochTime()</pre> +<div class="block">Constructs a new instance using <a href="http://d.android.com/reference/java/lang/System.html?is-external=true#currentTimeMillis--" title="class or interface in java.lang"><code>System.currentTimeMillis()</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="now--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>now</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> now()</pre> +<div class="block">Simply a more readable version of the default constructor <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#EpochTime--"><code>EpochTime()</code></a>.</div> +</li> +</ul> +<a name="toMilliseconds--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toMilliseconds</h4> +<pre>public long toMilliseconds()</pre> +<div class="block">Converts to milliseconds since 1970, which is currently also how the value is stored internally.</div> +</li> +</ul> +<a name="toSeconds--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toSeconds</h4> +<pre>public double toSeconds()</pre> +<div class="block">Converts to seconds since 1970.</div> +</li> +</ul> +<a name="toDate--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toDate</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a> toDate()</pre> +<div class="block">Converts to Java's built-in date class.</div> +</li> +</ul> +<a name="isBetween_inclusive-com.idevicesinc.sweetblue.utils.EpochTime-com.idevicesinc.sweetblue.utils.EpochTime-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isBetween_inclusive</h4> +<pre>public boolean isBetween_inclusive(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> from, + <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> to)</pre> +<div class="block">Does an inclusive check for <code>this</code> being in the given range.</div> +</li> +</ul> +<a name="isBetween_inclusive-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isBetween_inclusive</h4> +<pre>public boolean isBetween_inclusive(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +<div class="block">Overload of <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#isBetween_inclusive-com.idevicesinc.sweetblue.utils.EpochTime-com.idevicesinc.sweetblue.utils.EpochTime-"><code>isBetween_inclusive(EpochTime, EpochTime)</code></a>.</div> +</li> +</ul> +<a name="compareTo-com.idevicesinc.sweetblue.utils.EpochTime-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>compareTo</h4> +<pre>public int compareTo(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> another)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true#compareTo-T-" title="class or interface in java.lang">compareTo</a></code> in interface <code><a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a>></code></dd> +</dl> +</li> +</ul> +<a name="minus-com.idevicesinc.sweetblue.utils.EpochTime-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>minus</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> minus(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime)</pre> +<div class="block">Returns the delta resulting from <code>this-epochTime</code>.</div> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block">Returns <code>true</code> if <code>this</code> is referentially equal to <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#NULL"><code>NULL</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/EpochTime.html" target="_top">Frames</a></li> +<li><a href="EpochTime.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/EpochTimeRange.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/EpochTimeRange.html new file mode 100644 index 0000000000000000000000000000000000000000..98e6bdf6dcf1ec31923854078afaca8acba26ea0 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/EpochTimeRange.html @@ -0,0 +1,721 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>EpochTimeRange (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="EpochTimeRange (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":10,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":10,"i9":10,"i10":10,"i11":9,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/EpochTimeRange.html" target="_top">Frames</a></li> +<li><a href="EpochTimeRange.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class EpochTimeRange" class="title">Class EpochTimeRange</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.EpochTimeRange</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">EpochTimeRange</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">Class representing a range of time between two instances of <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils"><code>EpochTime</code></a>. + This is similar to <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> but stores the actual beginning and end times and is generally meant for longer + periods of time.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#FIVE_SECONDS">FIVE_SECONDS</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#FROM_1970_TO_MAX">FROM_1970_TO_MAX</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#FROM_MIN_TO_1970">FROM_MIN_TO_1970</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#FROM_MIN_TO_MAX">FROM_MIN_TO_MAX</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#NULL">NULL</a></span></code> +<div class="block">Fulfills the soft contract of <a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a> - used for <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isNull--"><code>isNull()</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#ZERO">ZERO</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#EpochTimeRange-com.idevicesinc.sweetblue.utils.EpochTime-com.idevicesinc.sweetblue.utils.EpochTime-">EpochTimeRange</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> from, + <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> to)</code> +<div class="block">Returns a new instance representing the time range between the given epoch times.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#EpochTimeRange-long-long-">EpochTimeRange</a></span>(long from, + long to)</code> +<div class="block">Returns a new instance representing the time range between the given epoch times as primitive longs.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#denull-com.idevicesinc.sweetblue.utils.EpochTimeRange-">denull</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range_nullable)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#from--">from</a></span>()</code> +<div class="block">Returns the "from" date passed into the constructor, + or <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#NULL"><code>EpochTime.NULL</code></a> if <code>null</code> + was originally passed in.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#from1970_toGiven-com.idevicesinc.sweetblue.utils.EpochTime-">from1970_toGiven</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> to)</code> +<div class="block">Returns a new instance representing the time range from 1970 to the given value.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#from1970_toNow--">from1970_toNow</a></span>()</code> +<div class="block">Returns a new instance representing the time range from 1970 to now.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#fromGiven_toGiven-com.idevicesinc.sweetblue.utils.EpochTime-com.idevicesinc.sweetblue.utils.EpochTime-">fromGiven_toGiven</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> from, + <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> to)</code> +<div class="block">Basically just a more readable overload for the normal constructor <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#EpochTimeRange-com.idevicesinc.sweetblue.utils.EpochTime-com.idevicesinc.sweetblue.utils.EpochTime-"><code>EpochTimeRange(EpochTime, EpochTime)</code></a>.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#fromGiven_toMax-com.idevicesinc.sweetblue.utils.EpochTime-">fromGiven_toMax</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> from)</code> +<div class="block">Returns a new instance representing the time range from the given value to <a href="http://d.android.com/reference/java/lang/Long.html?is-external=true#MAX_VALUE" title="class or interface in java.lang"><code>Long.MAX_VALUE</code></a>.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#fromGiven_toNow-com.idevicesinc.sweetblue.utils.EpochTime-">fromGiven_toNow</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> from)</code> +<div class="block">Returns a new instance representing the time range from the given value to now.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#fromMin_toGiven-com.idevicesinc.sweetblue.utils.EpochTime-">fromMin_toGiven</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> to)</code> +<div class="block">Returns a new instance representing the time range from <a href="http://d.android.com/reference/java/lang/Long.html?is-external=true#MIN_VALUE" title="class or interface in java.lang"><code>Long.MIN_VALUE</code></a> to the given value.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>long</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#getDelta--">getDelta</a></span>()</code> +<div class="block">Returns the raw milliseconds between <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#from--"><code>from()</code></a> and <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#to--"><code>to()</code></a>.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#gt-com.idevicesinc.sweetblue.utils.EpochTimeRange-">gt</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> otherRange)</code> +<div class="block">"greater than" comparison.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#gte-com.idevicesinc.sweetblue.utils.EpochTimeRange-">gte</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> otherRange)</code> +<div class="block">"greater than or equal" comparison.</div> +</td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#instant-com.idevicesinc.sweetblue.utils.EpochTime-">instant</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> time)</code> +<div class="block">Returns a new instance representing an instant zero length time range.</div> +</td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isInvalid--">isInvalid</a></span>()</code> +<div class="block">Returns <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#from--"><code>from()</code></a> is greater than <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#to--"><code>to()</code></a>.</div> +</td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isInvalidOrZero--">isInvalidOrZero</a></span>()</code> +<div class="block">See <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isInvalid--"><code>isInvalid()</code></a> and <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isZero--"><code>isZero()</code></a>.</div> +</td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if <code>this</code> is referentially equal to <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#NULL"><code>NULL</code></a>.</div> +</td> +</tr> +<tr id="i15" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isValid--">isValid</a></span>()</code> +<div class="block">Returns <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#from--"><code>from()</code></a> is less than or equal to <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#to--"><code>to()</code></a>.</div> +</td> +</tr> +<tr id="i16" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isZero--">isZero</a></span>()</code> +<div class="block">Returns <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#from--"><code>from()</code></a> and <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#to--"><code>to()</code></a> are equal.</div> +</td> +</tr> +<tr id="i17" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#lt-com.idevicesinc.sweetblue.utils.EpochTimeRange-">lt</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> otherRange)</code> +<div class="block">"less than" comparison.</div> +</td> +</tr> +<tr id="i18" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#lte-com.idevicesinc.sweetblue.utils.EpochTimeRange-">lte</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> otherRange)</code> +<div class="block">"less than or equal" comparison.</div> +</td> +</tr> +<tr id="i19" class="rowColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#to--">to</a></span>()</code> +<div class="block">Returns the "to" date passed into the constructor, + or <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#NULL"><code>EpochTime.NULL</code></a> if <code>null</code> + was originally passed in.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> NULL</pre> +<div class="block">Fulfills the soft contract of <a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a> - used for <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isNull--"><code>isNull()</code></a>.</div> +</li> +</ul> +<a name="FROM_MIN_TO_1970"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>FROM_MIN_TO_1970</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> FROM_MIN_TO_1970</pre> +</li> +</ul> +<a name="FROM_MIN_TO_MAX"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>FROM_MIN_TO_MAX</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> FROM_MIN_TO_MAX</pre> +</li> +</ul> +<a name="FROM_1970_TO_MAX"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>FROM_1970_TO_MAX</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> FROM_1970_TO_MAX</pre> +</li> +</ul> +<a name="ZERO"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ZERO</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> ZERO</pre> +</li> +</ul> +<a name="FIVE_SECONDS"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>FIVE_SECONDS</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> FIVE_SECONDS</pre> +</li> +</ul> +</li> +</ul> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="EpochTimeRange-com.idevicesinc.sweetblue.utils.EpochTime-com.idevicesinc.sweetblue.utils.EpochTime-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>EpochTimeRange</h4> +<pre>public EpochTimeRange(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> from, + <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> to)</pre> +<div class="block">Returns a new instance representing the time range between the given epoch times.</div> +</li> +</ul> +<a name="EpochTimeRange-long-long-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>EpochTimeRange</h4> +<pre>public EpochTimeRange(long from, + long to)</pre> +<div class="block">Returns a new instance representing the time range between the given epoch times as primitive longs.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="fromGiven_toMax-com.idevicesinc.sweetblue.utils.EpochTime-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromGiven_toMax</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> fromGiven_toMax(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> from)</pre> +<div class="block">Returns a new instance representing the time range from the given value to <a href="http://d.android.com/reference/java/lang/Long.html?is-external=true#MAX_VALUE" title="class or interface in java.lang"><code>Long.MAX_VALUE</code></a>.</div> +</li> +</ul> +<a name="fromGiven_toNow-com.idevicesinc.sweetblue.utils.EpochTime-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromGiven_toNow</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> fromGiven_toNow(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> from)</pre> +<div class="block">Returns a new instance representing the time range from the given value to now.</div> +</li> +</ul> +<a name="fromGiven_toGiven-com.idevicesinc.sweetblue.utils.EpochTime-com.idevicesinc.sweetblue.utils.EpochTime-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromGiven_toGiven</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> fromGiven_toGiven(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> from, + <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> to)</pre> +<div class="block">Basically just a more readable overload for the normal constructor <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#EpochTimeRange-com.idevicesinc.sweetblue.utils.EpochTime-com.idevicesinc.sweetblue.utils.EpochTime-"><code>EpochTimeRange(EpochTime, EpochTime)</code></a>.</div> +</li> +</ul> +<a name="from1970_toGiven-com.idevicesinc.sweetblue.utils.EpochTime-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>from1970_toGiven</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> from1970_toGiven(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> to)</pre> +<div class="block">Returns a new instance representing the time range from 1970 to the given value.</div> +</li> +</ul> +<a name="fromMin_toGiven-com.idevicesinc.sweetblue.utils.EpochTime-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromMin_toGiven</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> fromMin_toGiven(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> to)</pre> +<div class="block">Returns a new instance representing the time range from <a href="http://d.android.com/reference/java/lang/Long.html?is-external=true#MIN_VALUE" title="class or interface in java.lang"><code>Long.MIN_VALUE</code></a> to the given value.</div> +</li> +</ul> +<a name="from1970_toNow--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>from1970_toNow</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> from1970_toNow()</pre> +<div class="block">Returns a new instance representing the time range from 1970 to now.</div> +</li> +</ul> +<a name="instant-com.idevicesinc.sweetblue.utils.EpochTime-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>instant</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> instant(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> time)</pre> +<div class="block">Returns a new instance representing an instant zero length time range.</div> +</li> +</ul> +<a name="denull-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>denull</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> denull(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range_nullable)</pre> +</li> +</ul> +<a name="from--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>from</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> from()</pre> +<div class="block">Returns the "from" date passed into the constructor, + or <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#NULL"><code>EpochTime.NULL</code></a> if <code>null</code> + was originally passed in.</div> +</li> +</ul> +<a name="to--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>to</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> to()</pre> +<div class="block">Returns the "to" date passed into the constructor, + or <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html#NULL"><code>EpochTime.NULL</code></a> if <code>null</code> + was originally passed in.</div> +</li> +</ul> +<a name="isValid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isValid</h4> +<pre>public boolean isValid()</pre> +<div class="block">Returns <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#from--"><code>from()</code></a> is less than or equal to <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#to--"><code>to()</code></a>.</div> +</li> +</ul> +<a name="isInvalid--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isInvalid</h4> +<pre>public boolean isInvalid()</pre> +<div class="block">Returns <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#from--"><code>from()</code></a> is greater than <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#to--"><code>to()</code></a>.</div> +</li> +</ul> +<a name="isZero--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isZero</h4> +<pre>public boolean isZero()</pre> +<div class="block">Returns <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#from--"><code>from()</code></a> and <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#to--"><code>to()</code></a> are equal.</div> +</li> +</ul> +<a name="getDelta--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getDelta</h4> +<pre>public long getDelta()</pre> +<div class="block">Returns the raw milliseconds between <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#from--"><code>from()</code></a> and <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#to--"><code>to()</code></a>.</div> +</li> +</ul> +<a name="isInvalidOrZero--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isInvalidOrZero</h4> +<pre>public boolean isInvalidOrZero()</pre> +<div class="block">See <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isInvalid--"><code>isInvalid()</code></a> and <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isZero--"><code>isZero()</code></a>.</div> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block">Returns <code>true</code> if <code>this</code> is referentially equal to <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html#NULL"><code>NULL</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +<a name="lt-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>lt</h4> +<pre>public boolean lt(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> otherRange)</pre> +<div class="block">"less than" comparison.</div> +</li> +</ul> +<a name="lte-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>lte</h4> +<pre>public boolean lte(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> otherRange)</pre> +<div class="block">"less than or equal" comparison.</div> +</li> +</ul> +<a name="gt-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>gt</h4> +<pre>public boolean gt(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> otherRange)</pre> +<div class="block">"greater than" comparison.</div> +</li> +</ul> +<a name="gte-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>gte</h4> +<pre>public boolean gte(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> otherRange)</pre> +<div class="block">"greater than or equal" comparison.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/EpochTimeRange.html" target="_top">Frames</a></li> +<li><a href="EpochTimeRange.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Event.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Event.html new file mode 100644 index 0000000000000000000000000000000000000000..5926897450a214fc92c71069f7a7b574aaaa3caa --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Event.html @@ -0,0 +1,319 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Event (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Event (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EventQueue.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Event.html" target="_top">Frames</a></li> +<li><a href="Event.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class Event" class="title">Class Event</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.Event</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Direct Known Subclasses:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.AssertListener.AssertEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.DiscoveryEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.ResetListener.ResetEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOhEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.ConnectionFailEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.ServiceAddEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></dd> +</dl> +<hr> +<br> +<pre>public abstract class <span class="typeNameLabel">Event</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Abstract base class for all events in SweetBlue, e.g. <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils"><code>State.ChangeEvent</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Event.html#Event--">Event</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> value)</code> +<div class="block">More reader-friendly of <a href="../../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-"><code>isForAll(Object...)</code></a> or <a href="../../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-"><code>isForAny(Object...)</code></a> in the event you only have one parameter to match.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... values)</code> +<div class="block">Convenience query method to check if this event "is for"/relevant-to all of the supplied values.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... values)</code> +<div class="block">Convenience query method to check if this event "is for"/relevant-to any of the supplied values.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="Event--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>Event</h4> +<pre>public Event()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="isFor-java.lang.Object-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isFor</h4> +<pre>public boolean isFor(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> value)</pre> +<div class="block">More reader-friendly of <a href="../../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-"><code>isForAll(Object...)</code></a> or <a href="../../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-"><code>isForAny(Object...)</code></a> in the event you only have one parameter to match.</div> +</li> +</ul> +<a name="isForAny-java.lang.Object...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isForAny</h4> +<pre>public boolean isForAny(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... values)</pre> +<div class="block">Convenience query method to check if this event "is for"/relevant-to any of the supplied values. + For example for <a href="../../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> you could write + <code>e.isForAny("DE:CA::FF:CO::FF::EE", "DE:AD:BE:EF:BA:BE")</code> to quickly check if the event + is associated with either of the two devices. This method would then just do a comparison + with the input strings against <a href="../../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#macAddress--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.macAddress()</code></a>.</div> +</li> +</ul> +<a name="isForAll-java.lang.Object...-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isForAll</h4> +<pre>public boolean isForAll(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... values)</pre> +<div class="block">Convenience query method to check if this event "is for"/relevant-to all of the supplied values. + For example for <a href="../../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> you could write + <code>e.isForAll("DE:CA::FF:CO::FF::EE", MY_UUID)</code> to quickly check if the event + is associated with both the given mac address and the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> (e.g. for a characteristic). + This method would then just do a comparison with the input values against <a href="../../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#macAddress--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.macAddress()</code></a>, + <a href="../../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#charUuid--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.charUuid()</code></a> <a href="../../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#descUuid--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.descUuid()</code></a>, and + <a href="../../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#serviceUuid--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.serviceUuid()</code></a>.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EventQueue.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Event.html" target="_top">Frames</a></li> +<li><a href="Event.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/EventQueue.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/EventQueue.html new file mode 100644 index 0000000000000000000000000000000000000000..590ca5aae926b0ab724649045854fa8e261b7118 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/EventQueue.html @@ -0,0 +1,286 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>EventQueue (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="EventQueue (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/EventQueue.html" target="_top">Frames</a></li> +<li><a href="EventQueue.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class EventQueue" class="title">Class EventQueue</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.EventQueue</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">EventQueue</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EventQueue.html#EventQueue--">EventQueue</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><T_Event extends <a href="../../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a>><br>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EventQueue.html#add-com.idevicesinc.sweetblue.utils.GenericListener_Void-T_Event-">add</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="interface in com.idevicesinc.sweetblue.utils">GenericListener_Void</a><T_Event> listener_nullable, + T_Event event_nullable)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/EventQueue.html#dispatch--">dispatch</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="EventQueue--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>EventQueue</h4> +<pre>public EventQueue()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="add-com.idevicesinc.sweetblue.utils.GenericListener_Void-com.idevicesinc.sweetblue.utils.Event-"> +<!-- --> +</a><a name="add-com.idevicesinc.sweetblue.utils.GenericListener_Void-T_Event-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>add</h4> +<pre>public <T_Event extends <a href="../../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a>> void add(<a href="../../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="interface in com.idevicesinc.sweetblue.utils">GenericListener_Void</a><T_Event> listener_nullable, + T_Event event_nullable)</pre> +</li> +</ul> +<a name="dispatch--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>dispatch</h4> +<pre>public void dispatch()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/EventQueue.html" target="_top">Frames</a></li> +<li><a href="EventQueue.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html new file mode 100644 index 0000000000000000000000000000000000000000..d754c876b82d655da4560512d430cb32dd83ba22 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html @@ -0,0 +1,278 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>ForEach_Breakable.Please (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="ForEach_Breakable.Please (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":10,"i3":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" target="_top">Frames</a></li> +<li><a href="ForEach_Breakable.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class ForEach_Breakable.Please" class="title">Class ForEach_Breakable.Please</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.ForEach_Breakable.Please</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><<a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="type parameter in ForEach_Breakable">T</a>></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">ForEach_Breakable.Please</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils">ForEach_Breakable.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html#doBreak--">doBreak</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils">ForEach_Breakable.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html#doContinue--">doContinue</a></span>()</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html#shouldBreak--">shouldBreak</a></span>()</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html#shouldContinue--">shouldContinue</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="shouldContinue--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>shouldContinue</h4> +<pre>public boolean shouldContinue()</pre> +</li> +</ul> +<a name="shouldBreak--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>shouldBreak</h4> +<pre>public boolean shouldBreak()</pre> +</li> +</ul> +<a name="doContinue--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>doContinue</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils">ForEach_Breakable.Please</a> doContinue()</pre> +</li> +</ul> +<a name="doBreak--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>doBreak</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils">ForEach_Breakable.Please</a> doBreak()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" target="_top">Frames</a></li> +<li><a href="ForEach_Breakable.Please.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/ForEach_Breakable.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/ForEach_Breakable.html new file mode 100644 index 0000000000000000000000000000000000000000..5bd1c2820dfe1c21e135421fbd01898513772d6b --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/ForEach_Breakable.html @@ -0,0 +1,240 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>ForEach_Breakable (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="ForEach_Breakable (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EventQueue.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" target="_top">Frames</a></li> +<li><a href="ForEach_Breakable.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Interface ForEach_Breakable" class="title">Interface ForEach_Breakable<T></h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public interface <span class="typeNameLabel">ForEach_Breakable<T></span></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils">ForEach_Breakable.Please</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils">ForEach_Breakable.Please</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html#next-T-">next</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="type parameter in ForEach_Breakable">T</a> next)</code> </td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="next-java.lang.Object-"> +<!-- --> +</a><a name="next-T-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>next</h4> +<pre><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils">ForEach_Breakable.Please</a> next(<a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="type parameter in ForEach_Breakable">T</a> next)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/EventQueue.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" target="_top">Frames</a></li> +<li><a href="ForEach_Breakable.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/ForEach_Returning.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/ForEach_Returning.html new file mode 100644 index 0000000000000000000000000000000000000000..e3041b2dda5f88c5816ac9945cdb7ce25acec070 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/ForEach_Returning.html @@ -0,0 +1,219 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>ForEach_Returning (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="ForEach_Returning (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/ForEach_Returning.html" target="_top">Frames</a></li> +<li><a href="ForEach_Returning.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Interface ForEach_Returning" class="title">Interface ForEach_Returning<T></h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public interface <span class="typeNameLabel">ForEach_Returning<T></span></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="type parameter in ForEach_Returning">T</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Returning.html#next-int-">next</a></span>(int index)</code> </td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="next-int-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>next</h4> +<pre><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="type parameter in ForEach_Returning">T</a> next(int index)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/ForEach_Returning.html" target="_top">Frames</a></li> +<li><a href="ForEach_Returning.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/ForEach_Void.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/ForEach_Void.html new file mode 100644 index 0000000000000000000000000000000000000000..a0048f82074ec1c0d519b55df18af02fa3847ab0 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/ForEach_Void.html @@ -0,0 +1,221 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>ForEach_Void (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="ForEach_Void (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/ForEach_Void.html" target="_top">Frames</a></li> +<li><a href="ForEach_Void.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Interface ForEach_Void" class="title">Interface ForEach_Void<T></h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public interface <span class="typeNameLabel">ForEach_Void<T></span></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html#next-T-">next</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="type parameter in ForEach_Void">T</a> next)</code> </td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="next-java.lang.Object-"> +<!-- --> +</a><a name="next-T-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>next</h4> +<pre>void next(<a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="type parameter in ForEach_Void">T</a> next)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/ForEach_Void.html" target="_top">Frames</a></li> +<li><a href="ForEach_Void.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/FutureData.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/FutureData.html new file mode 100644 index 0000000000000000000000000000000000000000..7f337de071a965e53c6f3e21d1404c1f6d3887b4 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/FutureData.html @@ -0,0 +1,270 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>FutureData (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="FutureData (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/FutureData.html" target="_top">Frames</a></li> +<li><a href="FutureData.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Interface FutureData" class="title">Interface FutureData</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/PresentData.html" title="class in com.idevicesinc.sweetblue.utils">PresentData</a></dd> +</dl> +<hr> +<br> +<pre>public interface <span class="typeNameLabel">FutureData</span></pre> +<div class="block">A simple interface whose implementations should be passed to methods like <a href="../../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-"><code>BleDevice.write(UUID, FutureData)</code></a> + so you can provide time-sensitive data at the last possible moment. For example you may want to send the current time to a peripheral. If you provided + the time through <a href="../../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>BleDevice.write(UUID, byte[])</code></a> then the operation might spend a second or two in SweetBlue's internal job + queue, so that by the time the write was actually sent off, the time would be a few seconds behind. Using this class, the data will be requested right before + it actually gets sent off.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html#EMPTY">EMPTY</a></span></code> +<div class="block">Convenience constant implementation that just returns an empty byte array.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html#getData--">getData</a></span>()</code> +<div class="block">Return the data that should (for example) be sent to a peripheral through <a href="../../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-"><code>BleDevice.write(UUID, FutureData)</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="EMPTY"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>EMPTY</h4> +<pre>static final <a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> EMPTY</pre> +<div class="block">Convenience constant implementation that just returns an empty byte array.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="getData--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getData</h4> +<pre>byte[] getData()</pre> +<div class="block">Return the data that should (for example) be sent to a peripheral through <a href="../../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-"><code>BleDevice.write(UUID, FutureData)</code></a>.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/FutureData.html" target="_top">Frames</a></li> +<li><a href="FutureData.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/GenericListener_Void.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/GenericListener_Void.html new file mode 100644 index 0000000000000000000000000000000000000000..c92e3be23c5f0efcafa940a61c5b3fa0a4ce8fca --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/GenericListener_Void.html @@ -0,0 +1,225 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>GenericListener_Void (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="GenericListener_Void (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/GenericListener_Void.html" target="_top">Frames</a></li> +<li><a href="GenericListener_Void.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Interface GenericListener_Void" class="title">Interface GenericListener_Void<T_Event extends <a href="../../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a>></h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Subinterfaces:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener</a></dd> +</dl> +<hr> +<br> +<pre>public interface <span class="typeNameLabel">GenericListener_Void<T_Event extends <a href="../../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a>></span></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html#onEvent-T_Event-">onEvent</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="type parameter in GenericListener_Void">T_Event</a> e)</code> </td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="onEvent-com.idevicesinc.sweetblue.utils.Event-"> +<!-- --> +</a><a name="onEvent-T_Event-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>onEvent</h4> +<pre>void onEvent(<a href="../../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="type parameter in GenericListener_Void">T_Event</a> e)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/GenericListener_Void.html" target="_top">Frames</a></li> +<li><a href="GenericListener_Void.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalData.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalData.html new file mode 100644 index 0000000000000000000000000000000000000000..bcae97360bc120ed99e48ed29ad7cd2a80cfb679 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalData.html @@ -0,0 +1,519 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>HistoricalData (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="HistoricalData (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalData.html" target="_top">Frames</a></li> +<li><a href="HistoricalData.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class HistoricalData" class="title">Class HistoricalData</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.HistoricalData</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">HistoricalData</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></pre> +<div class="block">Simple struct wrapping arbitrary blob data as a byte array along with an epoch timestamp + marking when the blob was originally created/collected.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#NULL">NULL</a></span></code> +<div class="block">Special value that replaces Java's built-int <code>null</code> and + is used everywhere Java's would otherwise be used.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#HistoricalData-byte:A-">HistoricalData</a></span>(byte[] blob)</code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#HistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-">HistoricalData</a></span>(byte[] blob, + <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime)</code> </td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#HistoricalData-byte:A-long-">HistoricalData</a></span>(byte[] blob, + long millisecondsSince1970)</code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#HistoricalData-com.idevicesinc.sweetblue.utils.EpochTime-byte:A-">HistoricalData</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime, + byte[] blob)</code> </td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#HistoricalData-long-byte:A-">HistoricalData</a></span>(long millisecondsSince1970, + byte[] blob)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#denull-com.idevicesinc.sweetblue.utils.HistoricalData-">denull</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> historicalData_nullable)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#fromCursor-android.database.Cursor-">fromCursor</a></span>(<a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a> cursor)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#getBlob_string--">getBlob_string</a></span>()</code> +<div class="block">Attempts to parse <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#getBlob--"><code>getBlob()</code></a> as a UTF-8 string.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#getBlob--">getBlob</a></span>()</code> +<div class="block">Returns the data instance (WARNING: not cloned) passed into the constructor.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#getEpochTime_date--">getEpochTime_date</a></span>()</code> +<div class="block">Convenience to return the timestamp as a <a href="http://d.android.com/reference/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a> instance.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#getEpochTime_dateString-java.text.DateFormat-">getEpochTime_dateString</a></span>(<a href="http://d.android.com/reference/java/text/DateFormat.html?is-external=true" title="class or interface in java.text">DateFormat</a> dateFormat)</code> +<div class="block">Convenience to return the timestamp as a formatted string, for example pass <code>new SimpleDateFormat("MM/dd/yyyy HH:mm:ss")</code>.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>long</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#getEpochTime_millis--">getEpochTime_millis</a></span>()</code> +<div class="block">Convenience to return the epoch time as milliseconds since 1970.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#getEpochTime--">getEpochTime</a></span>()</code> +<div class="block">Returns the timestamp passed into the constructor.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#isNull--">isNull</a></span>()</code> +<div class="block">Checks if this is referentially equal to <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#NULL"><code>NULL</code></a>.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#toString--">toString</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> NULL</pre> +<div class="block">Special value that replaces Java's built-int <code>null</code> and + is used everywhere Java's would otherwise be used.</div> +</li> +</ul> +</li> +</ul> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="HistoricalData-long-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>HistoricalData</h4> +<pre>public HistoricalData(long millisecondsSince1970, + byte[] blob)</pre> +</li> +</ul> +<a name="HistoricalData-com.idevicesinc.sweetblue.utils.EpochTime-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>HistoricalData</h4> +<pre>public HistoricalData(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime, + byte[] blob)</pre> +</li> +</ul> +<a name="HistoricalData-byte:A-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>HistoricalData</h4> +<pre>public HistoricalData(byte[] blob, + long millisecondsSince1970)</pre> +</li> +</ul> +<a name="HistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>HistoricalData</h4> +<pre>public HistoricalData(byte[] blob, + <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> epochTime)</pre> +</li> +</ul> +<a name="HistoricalData-byte:A-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>HistoricalData</h4> +<pre>public HistoricalData(byte[] blob)</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="denull-com.idevicesinc.sweetblue.utils.HistoricalData-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>denull</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> denull(<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> historicalData_nullable)</pre> +</li> +</ul> +<a name="fromCursor-android.database.Cursor-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromCursor</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> fromCursor(<a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a> cursor)</pre> +</li> +</ul> +<a name="getEpochTime--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getEpochTime</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a> getEpochTime()</pre> +<div class="block">Returns the timestamp passed into the constructor.</div> +</li> +</ul> +<a name="getEpochTime_date--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getEpochTime_date</h4> +<pre>public <a href="http://d.android.com/reference/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a> getEpochTime_date()</pre> +<div class="block">Convenience to return the timestamp as a <a href="http://d.android.com/reference/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a> instance.</div> +</li> +</ul> +<a name="getEpochTime_millis--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getEpochTime_millis</h4> +<pre>public long getEpochTime_millis()</pre> +<div class="block">Convenience to return the epoch time as milliseconds since 1970.</div> +</li> +</ul> +<a name="getEpochTime_dateString-java.text.DateFormat-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getEpochTime_dateString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getEpochTime_dateString(<a href="http://d.android.com/reference/java/text/DateFormat.html?is-external=true" title="class or interface in java.text">DateFormat</a> dateFormat)</pre> +<div class="block">Convenience to return the timestamp as a formatted string, for example pass <code>new SimpleDateFormat("MM/dd/yyyy HH:mm:ss")</code>.</div> +</li> +</ul> +<a name="getBlob_string--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getBlob_string</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getBlob_string()</pre> +<div class="block">Attempts to parse <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#getBlob--"><code>getBlob()</code></a> as a UTF-8 string.</div> +</li> +</ul> +<a name="getBlob--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getBlob</h4> +<pre>public byte[] getBlob()</pre> +<div class="block">Returns the data instance (WARNING: not cloned) passed into the constructor.</div> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNull</h4> +<pre>public boolean isNull()</pre> +<div class="block">Checks if this is referentially equal to <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#NULL"><code>NULL</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalData.html" target="_top">Frames</a></li> +<li><a href="HistoricalData.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html new file mode 100644 index 0000000000000000000000000000000000000000..2977c2a64a7b77fd402911a813e24c0494275304 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html @@ -0,0 +1,374 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>HistoricalDataColumn (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="HistoricalDataColumn (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":9,"i3":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataColumn.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Enum HistoricalDataColumn" class="title">Enum HistoricalDataColumn</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.HistoricalDataColumn</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a>></dd> +</dl> +<hr> +<br> +<pre>public enum <span class="typeNameLabel">HistoricalDataColumn</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a>></pre> +<div class="block">Enumeration/abstraction of database columns used to persist <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html#DATA">DATA</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html#EPOCH_TIME">EPOCH_TIME</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html#getColumnIndex--">getColumnIndex</a></span>()</code> +<div class="block">Gets the name of this database column - you can use this for example to help navigate the <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database"><code>Cursor</code></a> + returned by <a href="../../../../com/idevicesinc/sweetblue/BleNode.html#queryHistoricalData-java.lang.String-"><code>BleNode.queryHistoricalData(String)</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html#getColumnName--">getColumnName</a></span>()</code> +<div class="block">Gets the name of this database column - you can use this for example to do raw queries through <a href="../../../../com/idevicesinc/sweetblue/BleNode.html#queryHistoricalData-java.lang.String-"><code>BleNode.queryHistoricalData(String)</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="EPOCH_TIME"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>EPOCH_TIME</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a> EPOCH_TIME</pre> +</li> +</ul> +<a name="DATA"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>DATA</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a> DATA</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (HistoricalDataColumn c : HistoricalDataColumn.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="getColumnName--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getColumnName</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getColumnName()</pre> +<div class="block">Gets the name of this database column - you can use this for example to do raw queries through <a href="../../../../com/idevicesinc/sweetblue/BleNode.html#queryHistoricalData-java.lang.String-"><code>BleNode.queryHistoricalData(String)</code></a>.</div> +</li> +</ul> +<a name="getColumnIndex--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getColumnIndex</h4> +<pre>public int getColumnIndex()</pre> +<div class="block">Gets the name of this database column - you can use this for example to help navigate the <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database"><code>Cursor</code></a> + returned by <a href="../../../../com/idevicesinc/sweetblue/BleNode.html#queryHistoricalData-java.lang.String-"><code>BleNode.queryHistoricalData(String)</code></a>.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataColumn.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html new file mode 100644 index 0000000000000000000000000000000000000000..94e5aef36b0d1bfed58ba0a954d659a031459de9 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html @@ -0,0 +1,578 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>HistoricalDataCursor (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="HistoricalDataCursor (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataCursor.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Interface HistoricalDataCursor" class="title">Interface HistoricalDataCursor</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public interface <span class="typeNameLabel">HistoricalDataCursor</span></pre> +<div class="block">This interface defines a wrapper around a database cursor (similar to <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database"><code>Cursor</code></a>) + specific to a database representing a series of <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> serializations. + For performance reasons, implementations are not required to return actual <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> instances, + just the underlying <code>byte[]</code> BLOB and <code>long</code> timestamp for each. + <br><br> + NOTE: This may be wrapping an in-memory list, not just a database.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#close--">close</a></span>()</code> +<div class="block">Closes the Cursor, releasing all of its resources and making it completely invalid.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#getBlob--">getBlob</a></span>()</code> +<div class="block">Returns the BLOB of the historical data as a <code>byte[]</code>, equivalent to <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#getBlob--"><code>HistoricalData.getBlob()</code></a> + but a raw <code>byte[]</code> is used for performance reasons.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#getCount--">getCount</a></span>()</code> +<div class="block">Returns the numbers of rows in the cursor.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>long</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#getEpochTime--">getEpochTime</a></span>()</code> +<div class="block">Returns the epoch time of the historical data as a <code>long</code>, equivalent to + <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#getEpochTime--"><code>HistoricalData.getEpochTime()</code></a> but raw <code>long</code> is used for performance reasons.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#getHistoricalData--">getHistoricalData</a></span>()</code> +<div class="block">Returns the historical data at the current position.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#getPosition--">getPosition</a></span>()</code> +<div class="block">Returns the current position of the cursor in the row set.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#isAfterLast--">isAfterLast</a></span>()</code> +<div class="block">Returns whether the cursor is pointing to the position after the last + row.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#isBeforeFirst--">isBeforeFirst</a></span>()</code> +<div class="block">Returns whether the cursor is pointing to the position before the first + row.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#isClosed--">isClosed</a></span>()</code> +<div class="block">return true if the cursor is closed</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#isFirst--">isFirst</a></span>()</code> +<div class="block">Returns whether the cursor is pointing to the first row.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#isLast--">isLast</a></span>()</code> +<div class="block">Returns whether the cursor is pointing to the last row.</div> +</td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#move-int-">move</a></span>(int offset)</code> +<div class="block">Move the cursor by a relative amount, forward or backward, from the + current position.</div> +</td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#moveToFirst--">moveToFirst</a></span>()</code> +<div class="block">Move the cursor to the first row.</div> +</td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#moveToLast--">moveToLast</a></span>()</code> +<div class="block">Move the cursor to the last row.</div> +</td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#moveToNext--">moveToNext</a></span>()</code> +<div class="block">Move the cursor to the next row.</div> +</td> +</tr> +<tr id="i15" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#moveToPosition-int-">moveToPosition</a></span>(int position)</code> +<div class="block">Move the cursor to an absolute position.</div> +</td> +</tr> +<tr id="i16" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#moveToPrevious--">moveToPrevious</a></span>()</code> +<div class="block">Move the cursor to the previous row.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="getCount--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getCount</h4> +<pre>int getCount()</pre> +<div class="block">Returns the numbers of rows in the cursor.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the number of rows in the cursor.</dd> +</dl> +</li> +</ul> +<a name="getPosition--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getPosition</h4> +<pre>int getPosition()</pre> +<div class="block">Returns the current position of the cursor in the row set. + The value is zero-based. When the row set is first returned the cursor + will be at positon -1, which is before the first row. After the + last row is returned another call to next() will leave the cursor past + the last entry, at a position of count().</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the current cursor position.</dd> +</dl> +</li> +</ul> +<a name="move-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>move</h4> +<pre>boolean move(int offset)</pre> +<div class="block">Move the cursor by a relative amount, forward or backward, from the + current position. Positive offsets move forwards, negative offsets move + backwards. If the final position is outside of the bounds of the result + set then the resultant position will be pinned to -1 or count() depending + on whether the value is off the front or end of the set, respectively. + + <p>This method will return true if the requested destination was + reachable, otherwise, it returns false. For example, if the cursor is at + currently on the second entry in the result set and move(-5) is called, + the position will be pinned at -1, and false will be returned.</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>offset</code> - the offset to be applied from the current position.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>whether the requested move fully succeeded.</dd> +</dl> +</li> +</ul> +<a name="moveToPosition-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>moveToPosition</h4> +<pre>boolean moveToPosition(int position)</pre> +<div class="block">Move the cursor to an absolute position. The valid + range of values is -1 <= position <= count. + + <p>This method will return true if the request destination was reachable, + otherwise, it returns false.</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>position</code> - the zero-based position to move to.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>whether the requested move fully succeeded.</dd> +</dl> +</li> +</ul> +<a name="moveToFirst--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>moveToFirst</h4> +<pre>boolean moveToFirst()</pre> +<div class="block">Move the cursor to the first row. + + <p>This method will return false if the cursor is empty.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>whether the move succeeded.</dd> +</dl> +</li> +</ul> +<a name="moveToLast--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>moveToLast</h4> +<pre>boolean moveToLast()</pre> +<div class="block">Move the cursor to the last row. + + <p>This method will return false if the cursor is empty.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>whether the move succeeded.</dd> +</dl> +</li> +</ul> +<a name="moveToNext--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>moveToNext</h4> +<pre>boolean moveToNext()</pre> +<div class="block">Move the cursor to the next row. + + <p>This method will return false if the cursor is already past the + last entry in the result set.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>whether the move succeeded.</dd> +</dl> +</li> +</ul> +<a name="moveToPrevious--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>moveToPrevious</h4> +<pre>boolean moveToPrevious()</pre> +<div class="block">Move the cursor to the previous row. + + <p>This method will return false if the cursor is already before the + first entry in the result set.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>whether the move succeeded.</dd> +</dl> +</li> +</ul> +<a name="isFirst--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isFirst</h4> +<pre>boolean isFirst()</pre> +<div class="block">Returns whether the cursor is pointing to the first row.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>whether the cursor is pointing at the first entry.</dd> +</dl> +</li> +</ul> +<a name="isLast--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isLast</h4> +<pre>boolean isLast()</pre> +<div class="block">Returns whether the cursor is pointing to the last row.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>whether the cursor is pointing at the last entry.</dd> +</dl> +</li> +</ul> +<a name="isBeforeFirst--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isBeforeFirst</h4> +<pre>boolean isBeforeFirst()</pre> +<div class="block">Returns whether the cursor is pointing to the position before the first + row.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>whether the cursor is before the first result.</dd> +</dl> +</li> +</ul> +<a name="isAfterLast--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isAfterLast</h4> +<pre>boolean isAfterLast()</pre> +<div class="block">Returns whether the cursor is pointing to the position after the last + row.</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>whether the cursor is after the last result.</dd> +</dl> +</li> +</ul> +<a name="close--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>close</h4> +<pre>void close()</pre> +<div class="block">Closes the Cursor, releasing all of its resources and making it completely invalid.</div> +</li> +</ul> +<a name="isClosed--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isClosed</h4> +<pre>boolean isClosed()</pre> +<div class="block">return true if the cursor is closed</div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>true if the cursor is closed.</dd> +</dl> +</li> +</ul> +<a name="getEpochTime--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getEpochTime</h4> +<pre>long getEpochTime()</pre> +<div class="block">Returns the epoch time of the historical data as a <code>long</code>, equivalent to + <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#getEpochTime--"><code>HistoricalData.getEpochTime()</code></a> but raw <code>long</code> is used for performance reasons.</div> +</li> +</ul> +<a name="getBlob--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getBlob</h4> +<pre>byte[] getBlob()</pre> +<div class="block">Returns the BLOB of the historical data as a <code>byte[]</code>, equivalent to <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html#getBlob--"><code>HistoricalData.getBlob()</code></a> + but a raw <code>byte[]</code> is used for performance reasons.</div> +</li> +</ul> +<a name="getHistoricalData--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getHistoricalData</h4> +<pre><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a> getHistoricalData()</pre> +<div class="block">Returns the historical data at the current position. Note that this may or may not allocate an instance on demand, + which may be a minor but unneccessary performance hit for your use case. See also <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#getEpochTime--"><code>getEpochTime()</code></a> and <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#getBlob--"><code>getBlob()</code></a> to directly + access the underlying data without boxing.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataCursor.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html new file mode 100644 index 0000000000000000000000000000000000000000..a94e82a08a357df48fb5a88872408cc832565b85 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html @@ -0,0 +1,245 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>HistoricalDataQuery.Part (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="HistoricalDataQuery.Part (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.Part.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class HistoricalDataQuery.Part" class="title">Class HistoricalDataQuery.Part</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Direct Known Subclasses:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsSelectColumn</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_ClauseColumn</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_From.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_From</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Where</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">HistoricalDataQuery.Part</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>protected <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html#m_query">m_query</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="m_query"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>m_query</h4> +<pre>protected final <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a> m_query</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.Part.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html new file mode 100644 index 0000000000000000000000000000000000000000..bea72bc5fe9af9df44bb56294ca1a4abc95fdb91 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html @@ -0,0 +1,290 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>HistoricalDataQuery.Part_AllowsFrom (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="HistoricalDataQuery.Part_AllowsFrom (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.Part_AllowsFrom.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class HistoricalDataQuery.Part_AllowsFrom" class="title">Class HistoricalDataQuery.Part_AllowsFrom</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsSelectColumn</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsFrom</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Direct Known Subclasses:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Function</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Select</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_SelectColumn</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">HistoricalDataQuery.Part_AllowsFrom</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsSelectColumn</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part"> +<!-- --> +</a> +<h3>Fields inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html#m_query">m_query</a></code></li> +</ul> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html#from-java.lang.String-java.util.UUID-">from</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html#from-java.util.UUID-">from</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsSelectColumn"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsSelectColumn</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#avg-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-">avg</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#data--">data</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#epochTime--">epochTime</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#max-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-">max</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#min-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-">min</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="from-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>from</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a> from(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +</li> +</ul> +<a name="from-java.lang.String-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>from</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a> from(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress, + <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.Part_AllowsFrom.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html new file mode 100644 index 0000000000000000000000000000000000000000..66e0ea1e6fe56e7c1c08324bca9a3e980ad862c6 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html @@ -0,0 +1,315 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>HistoricalDataQuery.Part_AllowsSelectColumn (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="HistoricalDataQuery.Part_AllowsSelectColumn (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.Part_AllowsSelectColumn.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class HistoricalDataQuery.Part_AllowsSelectColumn" class="title">Class HistoricalDataQuery.Part_AllowsSelectColumn</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsSelectColumn</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Direct Known Subclasses:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsFrom</a></dd> +</dl> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">HistoricalDataQuery.Part_AllowsSelectColumn</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part"> +<!-- --> +</a> +<h3>Fields inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html#m_query">m_query</a></code></li> +</ul> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Function</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#avg-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-">avg</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a> column)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_SelectColumn</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#data--">data</a></span>()</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_SelectColumn</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#epochTime--">epochTime</a></span>()</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Function</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#max-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-">max</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a> column)</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Function</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#min-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-">min</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a> column)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="data--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>data</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_SelectColumn</a> data()</pre> +</li> +</ul> +<a name="epochTime--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>epochTime</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_SelectColumn</a> epochTime()</pre> +</li> +</ul> +<a name="min-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>min</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Function</a> min(<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a> column)</pre> +</li> +</ul> +<a name="max-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>max</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Function</a> max(<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a> column)</pre> +</li> +</ul> +<a name="avg-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>avg</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Function</a> avg(<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a> column)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.Part_AllowsSelectColumn.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html new file mode 100644 index 0000000000000000000000000000000000000000..2401865093a19f14a56d418bc2b317c3a2678b19 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html @@ -0,0 +1,259 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>HistoricalDataQuery.Part_ClauseColumn (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="HistoricalDataQuery.Part_ClauseColumn (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_From.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.Part_ClauseColumn.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class HistoricalDataQuery.Part_ClauseColumn" class="title">Class HistoricalDataQuery.Part_ClauseColumn</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_ClauseColumn</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">HistoricalDataQuery.Part_ClauseColumn</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part"> +<!-- --> +</a> +<h3>Fields inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html#m_query">m_query</a></code></li> +</ul> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html#between-com.idevicesinc.sweetblue.utils.EpochTimeRange-">between</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="between-com.idevicesinc.sweetblue.utils.EpochTimeRange-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>between</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a> between(<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a> range)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_From.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.Part_ClauseColumn.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_From.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_From.html new file mode 100644 index 0000000000000000000000000000000000000000..0567a1c239c0eec65b4abfb2ecf4e6a62ee0922e --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_From.html @@ -0,0 +1,219 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>HistoricalDataQuery.Part_From (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="HistoricalDataQuery.Part_From (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_From.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.Part_From.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part">Field</a> | </li> +<li>Constr | </li> +<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class HistoricalDataQuery.Part_From" class="title">Class HistoricalDataQuery.Part_From</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_From</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">HistoricalDataQuery.Part_From</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part"> +<!-- --> +</a> +<h3>Fields inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html#m_query">m_query</a></code></li> +</ul> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_From.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.Part_From.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part">Field</a> | </li> +<li>Constr | </li> +<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html new file mode 100644 index 0000000000000000000000000000000000000000..e786c63f0039b512c08e0869a6de891154848f3b --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html @@ -0,0 +1,243 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>HistoricalDataQuery.Part_Function (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="HistoricalDataQuery.Part_Function (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_From.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.Part_Function.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part">Field</a> | </li> +<li>Constr | </li> +<li><a href="#methods.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsFrom">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class HistoricalDataQuery.Part_Function" class="title">Class HistoricalDataQuery.Part_Function</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsSelectColumn</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsFrom</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_Function</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">HistoricalDataQuery.Part_Function</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsFrom</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part"> +<!-- --> +</a> +<h3>Fields inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html#m_query">m_query</a></code></li> +</ul> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsFrom"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsFrom</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html#from-java.lang.String-java.util.UUID-">from</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html#from-java.util.UUID-">from</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsSelectColumn"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsSelectColumn</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#avg-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-">avg</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#data--">data</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#epochTime--">epochTime</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#max-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-">max</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#min-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-">min</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_From.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.Part_Function.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part">Field</a> | </li> +<li>Constr | </li> +<li><a href="#methods.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsFrom">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html new file mode 100644 index 0000000000000000000000000000000000000000..d9d03d4573c95aacbe92195b9c2488efa99b7a9f --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html @@ -0,0 +1,243 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>HistoricalDataQuery.Part_Select (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="HistoricalDataQuery.Part_Select (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.Part_Select.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part">Field</a> | </li> +<li>Constr | </li> +<li><a href="#methods.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsFrom">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class HistoricalDataQuery.Part_Select" class="title">Class HistoricalDataQuery.Part_Select</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsSelectColumn</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsFrom</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_Select</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">HistoricalDataQuery.Part_Select</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsFrom</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part"> +<!-- --> +</a> +<h3>Fields inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html#m_query">m_query</a></code></li> +</ul> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsFrom"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsFrom</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html#from-java.lang.String-java.util.UUID-">from</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html#from-java.util.UUID-">from</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsSelectColumn"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsSelectColumn</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#avg-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-">avg</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#data--">data</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#epochTime--">epochTime</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#max-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-">max</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#min-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-">min</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.Part_Select.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part">Field</a> | </li> +<li>Constr | </li> +<li><a href="#methods.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsFrom">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html new file mode 100644 index 0000000000000000000000000000000000000000..afd6725a814b2bd3d9ea62aa444dc9f2e3756244 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html @@ -0,0 +1,243 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>HistoricalDataQuery.Part_SelectColumn (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="HistoricalDataQuery.Part_SelectColumn (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.Part_SelectColumn.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part">Field</a> | </li> +<li>Constr | </li> +<li><a href="#methods.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsFrom">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class HistoricalDataQuery.Part_SelectColumn" class="title">Class HistoricalDataQuery.Part_SelectColumn</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsSelectColumn</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsFrom</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_SelectColumn</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">HistoricalDataQuery.Part_SelectColumn</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsFrom</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part"> +<!-- --> +</a> +<h3>Fields inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html#m_query">m_query</a></code></li> +</ul> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsFrom"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsFrom</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html#from-java.lang.String-java.util.UUID-">from</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html#from-java.util.UUID-">from</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsSelectColumn"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsSelectColumn</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#avg-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-">avg</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#data--">data</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#epochTime--">epochTime</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#max-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-">max</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#min-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-">min</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.Part_SelectColumn.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part">Field</a> | </li> +<li>Constr | </li> +<li><a href="#methods.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_AllowsFrom">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html new file mode 100644 index 0000000000000000000000000000000000000000..2a2070f05007d799f22512ef2d85258a8caa962c --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html @@ -0,0 +1,259 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>HistoricalDataQuery.Part_Where (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="HistoricalDataQuery.Part_Where (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.Part_Where.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class HistoricalDataQuery.Part_Where" class="title">Class HistoricalDataQuery.Part_Where</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part_Where</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Enclosing class:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></dd> +</dl> +<hr> +<br> +<pre>public static class <span class="typeNameLabel">HistoricalDataQuery.Part_Where</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part</a></pre> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part"> +<!-- --> +</a> +<h3>Fields inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html#m_query">m_query</a></code></li> +</ul> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_ClauseColumn</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html#epochTime--">epochTime</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="epochTime--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>epochTime</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_ClauseColumn</a> epochTime()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.Part_Where.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#fields.inherited.from.class.com.idevicesinc.sweetblue.utils.HistoricalDataQuery.Part">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html new file mode 100644 index 0000000000000000000000000000000000000000..37d933ed5e1ab2abf0ec6ffc261458c7c7c24504 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html @@ -0,0 +1,328 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>HistoricalDataQuery (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="HistoricalDataQuery (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":9,"i3":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class HistoricalDataQuery" class="title">Class HistoricalDataQuery</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.HistoricalDataQuery</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">HistoricalDataQuery</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Class used to construct queries for <a href="../../../../com/idevicesinc/sweetblue/BleNode.html#select--"><code>BleNode.select()</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Class and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsFrom</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsSelectColumn</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_ClauseColumn</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_From.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_From</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Function</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Select</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_SelectColumn</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Where</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html#go--">go</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html#go-com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener-">go</a></span>(<a href="../../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener</a> listener)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Select</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html#select-com.idevicesinc.sweetblue.BleNode-com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase-">select</a></span>(<a href="../../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a> device, + <a href="../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a> database)</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Where</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html#where--">where</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="select-com.idevicesinc.sweetblue.BleNode-com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>select</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Select</a> select(<a href="../../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a> device, + <a href="../../../../com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a> database)</pre> +</li> +</ul> +<a name="where--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>where</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Where</a> where()</pre> +</li> +</ul> +<a name="go--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>go</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a> go()</pre> +</li> +</ul> +<a name="go-com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>go</h4> +<pre>public void go(<a href="../../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener</a> listener)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" target="_top">Frames</a></li> +<li><a href="HistoricalDataQuery.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Interval.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Interval.html new file mode 100644 index 0000000000000000000000000000000000000000..9353d39a92f9e1712b017d76b68e8d64087aad06 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Interval.html @@ -0,0 +1,615 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Interval (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Interval (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":10,"i2":9,"i3":9,"i4":9,"i5":9,"i6":10,"i7":9,"i8":9,"i9":10,"i10":10,"i11":9,"i12":9,"i13":9,"i14":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Interval.html" target="_top">Frames</a></li> +<li><a href="Interval.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class Interval" class="title">Class Interval</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.Interval</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">Interval</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a>></pre> +<div class="block">Used to set time-based options in <a href="../../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> and <a href="../../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> and + for various methods and callbacks of <a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> and <a href="../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>. An <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> is a + self-documenting and "type-comfortable" way of representing time instead of using naked numeric primitives.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#DISABLED">DISABLED</a></span></code> +<div class="block">Use this special value to disable options in <a href="../../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> and <a href="../../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#FIVE_SECS">FIVE_SECS</a></span></code> +<div class="block">Convenience value representing five seconds.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#INFINITE">INFINITE</a></span></code> +<div class="block">Use this special value to signify positive infinite.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#ONE_SEC">ONE_SEC</a></span></code> +<div class="block">Convenience value representing one second.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#TEN_SECS">TEN_SECS</a></span></code> +<div class="block">Convenience value representing ten seconds.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#ZERO">ZERO</a></span></code> +<div class="block">Convenience value for zero time.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#delta-long-long-">delta</a></span>(long earlierTime_millis, + long laterTime_millis)</code> +<div class="block">Returns a new <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> representing the delta between the two epoch times.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>protected double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#getRawValue--">getRawValue</a></span>()</code> +<div class="block">Subclasses must implement this to return their raw <code>double</code> value.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#isDisabled-java.lang.Double-">isDisabled</a></span>(<a href="http://d.android.com/reference/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a> interval_nullable)</code> +<div class="block">Same as <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#isDisabled-com.idevicesinc.sweetblue.utils.Interval-"><code>isDisabled(Interval)</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#isDisabled-com.idevicesinc.sweetblue.utils.Interval-">isDisabled</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval_nullable)</code> +<div class="block">Returns true if the given <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> is either <code>null</code> + or its value is less than or equal to zero.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#isEnabled-double-">isEnabled</a></span>(double interval)</code> +<div class="block">Same as <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#isEnabled-com.idevicesinc.sweetblue.utils.Interval-"><code>isEnabled(Interval)</code></a>.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#isEnabled-com.idevicesinc.sweetblue.utils.Interval-">isEnabled</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval_nullable)</code> +<div class="block">Returns true if the given <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> is not <code>null</code> + and its value is greater than zero.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>long</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#millis--">millis</a></span>()</code> +<div class="block">Returns the value of this interval in milliseconds.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#millis-long-">millis</a></span>(long milliseconds)</code> +<div class="block">Returns a new <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> representing the given number of milliseconds.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#mins-int-">mins</a></span>(int value)</code> +<div class="block">Returns a new <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> representing the given number of minutes.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>protected <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#newInstance-double-">newInstance</a></span>(double rawValue)</code> +<div class="block">Subclasses must override this so that arithmetic "operators" can create new instances.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#secs--">secs</a></span>()</code> +<div class="block">Returns the value of this interval in seconds.</div> +</td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#secs-double-">secs</a></span>(double value)</code> +<div class="block">Returns a new <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> representing the given number of seconds.</div> +</td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code>static double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#secs-com.idevicesinc.sweetblue.utils.Interval-">secs</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval_nullable)</code> +<div class="block">Returns the double values as seconds from a given nullable <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a>.</div> +</td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#since-long-">since</a></span>(long epochTime_milliseconds)</code> +<div class="block">Returns a new <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> representing the time since the given past epoch time, + using <a href="http://d.android.com/reference/java/lang/System.html?is-external=true#currentTimeMillis--" title="class or interface in java.lang"><code>System.currentTimeMillis()</code></a>.</div> +</td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#toString--">toString</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Unit"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#dividedBy-com.idevicesinc.sweetblue.utils.Unit-">dividedBy</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#equals-java.lang.Object-">equals</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#gt-double-">gt</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#gt-com.idevicesinc.sweetblue.utils.Unit-">gt</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#gte-double-">gte</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#gte-com.idevicesinc.sweetblue.utils.Unit-">gte</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#hashCode--">hashCode</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#lt-double-">lt</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#lt-com.idevicesinc.sweetblue.utils.Unit-">lt</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#lte-double-">lte</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#lte-com.idevicesinc.sweetblue.utils.Unit-">lte</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#minus-com.idevicesinc.sweetblue.utils.Unit-">minus</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#plus-com.idevicesinc.sweetblue.utils.Unit-">plus</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#times-com.idevicesinc.sweetblue.utils.Unit-">times</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="DISABLED"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DISABLED</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> DISABLED</pre> +<div class="block">Use this special value to disable options in <a href="../../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> and <a href="../../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a>.</div> +</li> +</ul> +<a name="INFINITE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>INFINITE</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> INFINITE</pre> +<div class="block">Use this special value to signify positive infinite.</div> +</li> +</ul> +<a name="ZERO"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ZERO</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> ZERO</pre> +<div class="block">Convenience value for zero time.</div> +</li> +</ul> +<a name="ONE_SEC"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ONE_SEC</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> ONE_SEC</pre> +<div class="block">Convenience value representing one second.</div> +</li> +</ul> +<a name="FIVE_SECS"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>FIVE_SECS</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> FIVE_SECS</pre> +<div class="block">Convenience value representing five seconds.</div> +</li> +</ul> +<a name="TEN_SECS"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>TEN_SECS</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> TEN_SECS</pre> +<div class="block">Convenience value representing ten seconds.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="secs--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>secs</h4> +<pre>public double secs()</pre> +<div class="block">Returns the value of this interval in seconds.</div> +</li> +</ul> +<a name="millis--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>millis</h4> +<pre>public long millis()</pre> +<div class="block">Returns the value of this interval in milliseconds.</div> +</li> +</ul> +<a name="secs-double-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>secs</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> secs(double value)</pre> +<div class="block">Returns a new <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> representing the given number of seconds.</div> +</li> +</ul> +<a name="mins-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>mins</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> mins(int value)</pre> +<div class="block">Returns a new <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> representing the given number of minutes.</div> +</li> +</ul> +<a name="millis-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>millis</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> millis(long milliseconds)</pre> +<div class="block">Returns a new <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> representing the given number of milliseconds.</div> +</li> +</ul> +<a name="since-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>since</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> since(long epochTime_milliseconds)</pre> +<div class="block">Returns a new <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> representing the time since the given past epoch time, + using <a href="http://d.android.com/reference/java/lang/System.html?is-external=true#currentTimeMillis--" title="class or interface in java.lang"><code>System.currentTimeMillis()</code></a>.</div> +</li> +</ul> +<a name="delta-long-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>delta</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> delta(long earlierTime_millis, + long laterTime_millis)</pre> +<div class="block">Returns a new <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> representing the delta between the two epoch times.</div> +</li> +</ul> +<a name="secs-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>secs</h4> +<pre>public static double secs(<a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval_nullable)</pre> +<div class="block">Returns the double values as seconds from a given nullable <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a>.</div> +</li> +</ul> +<a name="isEnabled-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isEnabled</h4> +<pre>public static boolean isEnabled(<a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval_nullable)</pre> +<div class="block">Returns true if the given <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> is not <code>null</code> + and its value is greater than zero.</div> +</li> +</ul> +<a name="isEnabled-double-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isEnabled</h4> +<pre>public static boolean isEnabled(double interval)</pre> +<div class="block">Same as <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#isEnabled-com.idevicesinc.sweetblue.utils.Interval-"><code>isEnabled(Interval)</code></a>.</div> +</li> +</ul> +<a name="isDisabled-com.idevicesinc.sweetblue.utils.Interval-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isDisabled</h4> +<pre>public static boolean isDisabled(<a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a> interval_nullable)</pre> +<div class="block">Returns true if the given <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> is either <code>null</code> + or its value is less than or equal to zero.</div> +</li> +</ul> +<a name="isDisabled-java.lang.Double-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isDisabled</h4> +<pre>public static boolean isDisabled(<a href="http://d.android.com/reference/java/lang/Double.html?is-external=true" title="class or interface in java.lang">Double</a> interval_nullable)</pre> +<div class="block">Same as <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html#isDisabled-com.idevicesinc.sweetblue.utils.Interval-"><code>isDisabled(Interval)</code></a>.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +<a name="getRawValue--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getRawValue</h4> +<pre>protected double getRawValue()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#getRawValue--">Unit</a></code></span></div> +<div class="block">Subclasses must implement this to return their raw <code>double</code> value.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#getRawValue--">getRawValue</a></code> in class <code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a>></code></dd> +</dl> +</li> +</ul> +<a name="newInstance-double-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>newInstance</h4> +<pre>protected <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a>> newInstance(double rawValue)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#newInstance-double-">Unit</a></code></span></div> +<div class="block">Subclasses must override this so that arithmetic "operators" can create new instances.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#newInstance-double-">newInstance</a></code> in class <code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a>></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Interval.html" target="_top">Frames</a></li> +<li><a href="Interval.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Percent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Percent.html new file mode 100644 index 0000000000000000000000000000000000000000..89ffc357999575e482e9a777dc252732ce4e16b6 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Percent.html @@ -0,0 +1,509 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Percent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Percent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9,"i2":9,"i3":9,"i4":9,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Percent.html" target="_top">Frames</a></li> +<li><a href="Percent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class Percent" class="title">Class Percent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.Percent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">Percent</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a>></pre> +<div class="block">Wrapper for a percentage value, generally from 0-100%;</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html#HUNDRED">HUNDRED</a></span></code> +<div class="block">Convenience value representing 100%.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html#ZERO">ZERO</a></span></code> +<div class="block">Convenience value representing 0%.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html#clamp--">clamp</a></span>()</code> +<div class="block">Returns a new instance clamped between 0% and 100%.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html#fromDouble_clamped-double-">fromDouble_clamped</a></span>(double value)</code> +<div class="block">Returns a new instance clamped between 0% and 100%, regardless of input value.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html#fromDouble-double-">fromDouble</a></span>(double value)</code> +<div class="block">Returns a new instance using the given <code>double</code> value.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html#fromInt_clamped-int-">fromInt_clamped</a></span>(int value)</code> +<div class="block">Returns a new instance clamped between 0% and 100%, regardless of input value.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html#fromInt-int-">fromInt</a></span>(int value)</code> +<div class="block">Returns a new instance using the given <code>int</code> value.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>protected double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html#getRawValue--">getRawValue</a></span>()</code> +<div class="block">Subclasses must implement this to return their raw <code>double</code> value.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>protected <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html#newInstance-double-">newInstance</a></span>(double rawValue)</code> +<div class="block">Subclasses must override this so that arithmetic "operators" can create new instances.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html#toDouble--">toDouble</a></span>()</code> +<div class="block">Returns the <code>double</code> value of this instance.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html#toFraction--">toFraction</a></span>()</code> +<div class="block">Returns .5 for 50%, for example.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html#toInt_ceil--">toInt_ceil</a></span>()</code> +<div class="block"><code>int</code> from <a href="http://d.android.com/reference/java/lang/Math.html?is-external=true#ceil-double-" title="class or interface in java.lang"><code>Math.ceil(double)</code></a>.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html#toInt_floor--">toInt_floor</a></span>()</code> +<div class="block"><code>int</code> from <a href="http://d.android.com/reference/java/lang/Math.html?is-external=true#floor-double-" title="class or interface in java.lang"><code>Math.floor(double)</code></a>.</div> +</td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html#toInt_round--">toInt_round</a></span>()</code> +<div class="block"><code>int</code> from <a href="http://d.android.com/reference/java/lang/Math.html?is-external=true#round-double-" title="class or interface in java.lang"><code>Math.round(double)</code></a>.</div> +</td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html#toString--">toString</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Unit"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#dividedBy-com.idevicesinc.sweetblue.utils.Unit-">dividedBy</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#equals-java.lang.Object-">equals</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#gt-double-">gt</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#gt-com.idevicesinc.sweetblue.utils.Unit-">gt</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#gte-double-">gte</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#gte-com.idevicesinc.sweetblue.utils.Unit-">gte</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#hashCode--">hashCode</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#lt-double-">lt</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#lt-com.idevicesinc.sweetblue.utils.Unit-">lt</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#lte-double-">lte</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#lte-com.idevicesinc.sweetblue.utils.Unit-">lte</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#minus-com.idevicesinc.sweetblue.utils.Unit-">minus</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#plus-com.idevicesinc.sweetblue.utils.Unit-">plus</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#times-com.idevicesinc.sweetblue.utils.Unit-">times</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="ZERO"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>ZERO</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a> ZERO</pre> +<div class="block">Convenience value representing 0%.</div> +</li> +</ul> +<a name="HUNDRED"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>HUNDRED</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a> HUNDRED</pre> +<div class="block">Convenience value representing 100%.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="clamp--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>clamp</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a> clamp()</pre> +<div class="block">Returns a new instance clamped between 0% and 100%.</div> +</li> +</ul> +<a name="toFraction--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toFraction</h4> +<pre>public double toFraction()</pre> +<div class="block">Returns .5 for 50%, for example.</div> +</li> +</ul> +<a name="toDouble--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toDouble</h4> +<pre>public double toDouble()</pre> +<div class="block">Returns the <code>double</code> value of this instance.</div> +</li> +</ul> +<a name="toInt_round--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toInt_round</h4> +<pre>public int toInt_round()</pre> +<div class="block"><code>int</code> from <a href="http://d.android.com/reference/java/lang/Math.html?is-external=true#round-double-" title="class or interface in java.lang"><code>Math.round(double)</code></a>.</div> +</li> +</ul> +<a name="toInt_ceil--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toInt_ceil</h4> +<pre>public int toInt_ceil()</pre> +<div class="block"><code>int</code> from <a href="http://d.android.com/reference/java/lang/Math.html?is-external=true#ceil-double-" title="class or interface in java.lang"><code>Math.ceil(double)</code></a>.</div> +</li> +</ul> +<a name="toInt_floor--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toInt_floor</h4> +<pre>public int toInt_floor()</pre> +<div class="block"><code>int</code> from <a href="http://d.android.com/reference/java/lang/Math.html?is-external=true#floor-double-" title="class or interface in java.lang"><code>Math.floor(double)</code></a>.</div> +</li> +</ul> +<a name="fromDouble-double-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromDouble</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a> fromDouble(double value)</pre> +<div class="block">Returns a new instance using the given <code>double</code> value.</div> +</li> +</ul> +<a name="fromDouble_clamped-double-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromDouble_clamped</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a> fromDouble_clamped(double value)</pre> +<div class="block">Returns a new instance clamped between 0% and 100%, regardless of input value.</div> +</li> +</ul> +<a name="fromInt-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromInt</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a> fromInt(int value)</pre> +<div class="block">Returns a new instance using the given <code>int</code> value.</div> +</li> +</ul> +<a name="fromInt_clamped-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromInt_clamped</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a> fromInt_clamped(int value)</pre> +<div class="block">Returns a new instance clamped between 0% and 100%, regardless of input value.</div> +</li> +</ul> +<a name="toString--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toString</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +<a name="getRawValue--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getRawValue</h4> +<pre>protected double getRawValue()</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#getRawValue--">Unit</a></code></span></div> +<div class="block">Subclasses must implement this to return their raw <code>double</code> value.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#getRawValue--">getRawValue</a></code> in class <code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a>></code></dd> +</dl> +</li> +</ul> +<a name="newInstance-double-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>newInstance</h4> +<pre>protected <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a>> newInstance(double rawValue)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from class: <code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#newInstance-double-">Unit</a></code></span></div> +<div class="block">Subclasses must override this so that arithmetic "operators" can create new instances.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#newInstance-double-">newInstance</a></code> in class <code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a>></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Percent.html" target="_top">Frames</a></li> +<li><a href="Percent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Pointer.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Pointer.html new file mode 100644 index 0000000000000000000000000000000000000000..977fb6bb14838c2d87e1e299a7e46c36a6fe3913 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Pointer.html @@ -0,0 +1,286 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Pointer (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Pointer (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/PresentData.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Pointer.html" target="_top">Frames</a></li> +<li><a href="Pointer.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class Pointer" class="title">Class Pointer<T></h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.Pointer<T></li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">Pointer<T></span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Provides a way to be able to change a value declared in the outer scope of an anonymous inline class.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="type parameter in Pointer">T</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html#value">value</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html#Pointer--">Pointer</a></span>()</code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html#Pointer-T-">Pointer</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="type parameter in Pointer">T</a> value_in)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="value"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>value</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="type parameter in Pointer">T</a> value</pre> +</li> +</ul> +</li> +</ul> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="Pointer-java.lang.Object-"> +<!-- --> +</a><a name="Pointer-T-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>Pointer</h4> +<pre>public Pointer(<a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="type parameter in Pointer">T</a> value_in)</pre> +</li> +</ul> +<a name="Pointer--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>Pointer</h4> +<pre>public Pointer()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/PresentData.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Pointer.html" target="_top">Frames</a></li> +<li><a href="Pointer.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/PresentData.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/PresentData.html new file mode 100644 index 0000000000000000000000000000000000000000..3b5aea404b1fe1a191061acbcdfb0b4e4d48d731 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/PresentData.html @@ -0,0 +1,300 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>PresentData (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="PresentData (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/PresentData.html" target="_top">Frames</a></li> +<li><a href="PresentData.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class PresentData" class="title">Class PresentData</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.PresentData</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">PresentData</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a></pre> +<div class="block">Simple dummy implementation of <a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><code>FutureData</code></a> that just returns whatever is passed into the constructor.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="fields.inherited.from.class.com.idevicesinc.sweetblue.utils.FutureData"> +<!-- --> +</a> +<h3>Fields inherited from interface com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html#EMPTY">EMPTY</a></code></li> +</ul> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/PresentData.html#PresentData-byte:A-">PresentData</a></span>(byte[] data)</code> +<div class="block">The data sent to this constructor will simply be returned by <a href="../../../../com/idevicesinc/sweetblue/utils/PresentData.html#getData--"><code>getData()</code></a>.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/PresentData.html#getData--">getData</a></span>()</code> +<div class="block">Returns the data sent into the constructor <a href="../../../../com/idevicesinc/sweetblue/utils/PresentData.html#PresentData-byte:A-"><code>PresentData(byte[])</code></a></div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="PresentData-byte:A-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>PresentData</h4> +<pre>public PresentData(byte[] data)</pre> +<div class="block">The data sent to this constructor will simply be returned by <a href="../../../../com/idevicesinc/sweetblue/utils/PresentData.html#getData--"><code>getData()</code></a>.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="getData--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getData</h4> +<pre>public byte[] getData()</pre> +<div class="block">Returns the data sent into the constructor <a href="../../../../com/idevicesinc/sweetblue/utils/PresentData.html#PresentData-byte:A-"><code>PresentData(byte[])</code></a></div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html#getData--">getData</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/PresentData.html" target="_top">Frames</a></li> +<li><a href="PresentData.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html new file mode 100644 index 0000000000000000000000000000000000000000..0f9e6fc8f47718237b10fc831a3939155a38bf44 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html @@ -0,0 +1,292 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>ReflectionUuidNameMap (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="ReflectionUuidNameMap (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/PresentData.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" target="_top">Frames</a></li> +<li><a href="ReflectionUuidNameMap.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class ReflectionUuidNameMap" class="title">Class ReflectionUuidNameMap</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.ReflectionUuidNameMap</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">ReflectionUuidNameMap</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a></pre> +<div class="block">Convenience implementation of <a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UuidNameMap</code></a> that takes a <a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang"><code>Class</code></a> object + and through reflection attempts to parse out all the static UUID members, for example + on <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><code>Uuids</code></a>. + + Provide an instance to <a href="../../../../com/idevicesinc/sweetblue/BleManagerConfig.html#uuidNameMaps"><code>BleManagerConfig.uuidNameMaps</code></a> if desired.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/BleManagerConfig.html#uuidNameMaps"><code>BleManagerConfig.uuidNameMaps</code></a>, +<a href="../../../../com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><code>BasicUuidNameMap</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html#ReflectionUuidNameMap-java.lang.Class-">ReflectionUuidNameMap</a></span>(<a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><?> classWithStaticUuids)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html#getUuidName-java.lang.String-">getUuidName</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuid)</code> +<div class="block">Returns the name of the <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> to be used for logging/debugging purposes, for example "BATTERY_LEVEL".</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="ReflectionUuidNameMap-java.lang.Class-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>ReflectionUuidNameMap</h4> +<pre>public ReflectionUuidNameMap(<a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><?> classWithStaticUuids)</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="getUuidName-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getUuidName</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getUuidName(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuid)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html#getUuidName-java.lang.String-">UuidNameMap</a></code></span></div> +<div class="block">Returns the name of the <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> to be used for logging/debugging purposes, for example "BATTERY_LEVEL".</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html#getUuidName-java.lang.String-">getUuidName</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/PresentData.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" target="_top">Frames</a></li> +<li><a href="ReflectionUuidNameMap.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/SingleElementIterator.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/SingleElementIterator.html new file mode 100644 index 0000000000000000000000000000000000000000..6b9c5fbfad061e3d86c92d6eaecfd70173db6366 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/SingleElementIterator.html @@ -0,0 +1,338 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>SingleElementIterator (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="SingleElementIterator (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/SingleElementIterator.html" target="_top">Frames</a></li> +<li><a href="SingleElementIterator.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class SingleElementIterator" class="title">Class SingleElementIterator<T></h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.SingleElementIterator<T></li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><T></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">SingleElementIterator<T></span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><T></pre> +<div class="block">Convenience class for implementing an <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util"><code>Iterator</code></a> with a single element.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/SingleElementIterator.html#SingleElementIterator-T-">SingleElementIterator</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="type parameter in SingleElementIterator">T</a> element)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/SingleElementIterator.html#hasNext--">hasNext</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="type parameter in SingleElementIterator">T</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/SingleElementIterator.html#next--">next</a></span>()</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>protected void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/SingleElementIterator.html#onRemove--">onRemove</a></span>()</code> +<div class="block">Optionally override this method to implement remove logic.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/SingleElementIterator.html#remove--">remove</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.util.Iterator"> +<!-- --> +</a> +<h3>Methods inherited from interface java.util.<a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a></h3> +<code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true#forEachRemaining-java.util.function.Consumer-" title="class or interface in java.util">forEachRemaining</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="SingleElementIterator-java.lang.Object-"> +<!-- --> +</a><a name="SingleElementIterator-T-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>SingleElementIterator</h4> +<pre>public SingleElementIterator(<a href="../../../../com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="type parameter in SingleElementIterator">T</a> element)</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="hasNext--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasNext</h4> +<pre>public boolean hasNext()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true#hasNext--" title="class or interface in java.util">hasNext</a></code> in interface <code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="type parameter in SingleElementIterator">T</a>></code></dd> +</dl> +</li> +</ul> +<a name="next--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>next</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="type parameter in SingleElementIterator">T</a> next()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true#next--" title="class or interface in java.util">next</a></code> in interface <code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="type parameter in SingleElementIterator">T</a>></code></dd> +</dl> +</li> +</ul> +<a name="onRemove--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>onRemove</h4> +<pre>protected void onRemove()</pre> +<div class="block">Optionally override this method to implement remove logic.</div> +</li> +</ul> +<a name="remove--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>remove</h4> +<pre>public void remove()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true#remove--" title="class or interface in java.util">remove</a></code> in interface <code><a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><<a href="../../../../com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="type parameter in SingleElementIterator">T</a>></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/SingleElementIterator.html" target="_top">Frames</a></li> +<li><a href="SingleElementIterator.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/State.ChangeEvent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/State.ChangeEvent.html new file mode 100644 index 0000000000000000000000000000000000000000..f6ae4e95244bfeee1fc0ca7b7accb2c5d1bcdd7c --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/State.ChangeEvent.html @@ -0,0 +1,559 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>State.ChangeEvent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="State.ChangeEvent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" target="_top">Frames</a></li> +<li><a href="State.ChangeEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class State.ChangeEvent" class="title">Class State.ChangeEvent<T_State extends <a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>></h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Event</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.State.ChangeEvent<T_State></li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Direct Known Subclasses:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.StateListener.StateEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.StateListener.StateEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.StateListener.StateEvent</a></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></dd> +</dl> +<hr> +<br> +<pre>public abstract static class <span class="typeNameLabel">State.ChangeEvent<T_State extends <a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>></span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></pre> +<div class="block">Abstract base class for <a href="../../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.StateListener.StateEvent</code></a> and <a href="../../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleManager.StateListener.StateEvent</code></a>.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier</th> +<th class="colLast" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>protected </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#ChangeEvent-int-int-int-">ChangeEvent</a></span>(int oldStateBits, + int newStateBits, + int intentMask)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnter-T_State-">didEnter</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a> state)</code> +<div class="block">Convenience forwarding of <a href="../../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-"><code>State.didEnter(int, int)</code></a>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAll-T_State...-">didEnterAll</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a>... states)</code> +<div class="block">Convenience to return <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnter-T_State-"><code>didEnter(State)</code></a> returns <code>true</code> for all the <a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><code>State</code></a> instances given.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAny-T_State...-">didEnterAny</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a>... states)</code> +<div class="block">Convenience to return <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnter-T_State-"><code>didEnter(State)</code></a> returns <code>true</code> on any of the <a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><code>State</code></a> instances given.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExit-T_State-">didExit</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a> state)</code> +<div class="block">Convenience forwarding of <a href="../../../../com/idevicesinc/sweetblue/utils/State.html#didExit-int-int-"><code>State.didExit(int, int)</code></a>.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAll-T_State...-">didExitAll</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a>... states)</code> +<div class="block">Convenience to return <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExit-T_State-"><code>didExit(State)</code></a> returns <code>true</code> for all the <a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><code>State</code></a> instances given.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAny-T_State...-">didExitAny</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a>... states)</code> +<div class="block">Convenience to return <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExit-T_State-"><code>didExit(State)</code></a> returns <code>true</code> on any of the <a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><code>State</code></a> instances given.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#enterMask--">enterMask</a></span>()</code> +<div class="block">Returns all the states that were entered as a bit mask.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#exitMask--">exitMask</a></span>()</code> +<div class="block">Returns all the states that were exited as a bit mask.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#getIntent-T_State-">getIntent</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a> state)</code> +<div class="block">Returns the intention behind the state change, or <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#NULL"><code>State.ChangeIntent.NULL</code></a> if no state + change for the given state occurred.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#intentMask--">intentMask</a></span>()</code> +<div class="block">For each old->new bit difference, this mask will tell you if the transition was intentional.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isFor-T_State-">isFor</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a> state)</code> +<div class="block">Returns <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnter-T_State-"><code>didEnter(State)</code></a> or <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExit-T_State-"><code>didExit(State)</code></a> return true.</div> +</td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isForAll-T_State...-">isForAll</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a>... states)</code> +<div class="block">Returns <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAll-T_State...-"><code>didEnterAll(State...)</code></a> or <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAll-T_State...-"><code>didExitAll(State...)</code></a> return true.</div> +</td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isForAny-T_State...-">isForAny</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a>... states)</code> +<div class="block">Returns <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAny-T_State...-"><code>didEnterAny(State...)</code></a> or <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAny-T_State...-"><code>didExitAny(State...)</code></a> return true.</div> +</td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#newStateBits--">newStateBits</a></span>()</code> +<div class="block">The new and now current bitwise representation of a <a href="../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> + or <a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>.</div> +</td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#oldStateBits--">oldStateBits</a></span>()</code> +<div class="block">The bitwise representation of the <a href="../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> or <a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> + before the event took place.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Event"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="ChangeEvent-int-int-int-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>ChangeEvent</h4> +<pre>protected ChangeEvent(int oldStateBits, + int newStateBits, + int intentMask)</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="oldStateBits--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>oldStateBits</h4> +<pre>public int oldStateBits()</pre> +<div class="block">The bitwise representation of the <a href="../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> or <a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> + before the event took place.</div> +</li> +</ul> +<a name="newStateBits--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newStateBits</h4> +<pre>public int newStateBits()</pre> +<div class="block">The new and now current bitwise representation of a <a href="../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> + or <a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>. Will be the same as <a href="../../../../com/idevicesinc/sweetblue/BleDevice.html#getStateMask--"><code>BleDevice.getStateMask()</code></a> + or <a href="../../../../com/idevicesinc/sweetblue/BleManager.html#getStateMask--"><code>BleManager.getStateMask()</code></a>.</div> +</li> +</ul> +<a name="intentMask--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>intentMask</h4> +<pre>public int intentMask()</pre> +<div class="block">For each old->new bit difference, this mask will tell you if the transition was intentional. "Intentional" generally means a call was made to + a public method of the library from app-code to trigger the state change, and so usually the stacktrace started from a user input event upstream. + Otherwise the given bit will be 0x0 and so the state change was "unintentional". An example of intentional is if you call + <a href="../../../../com/idevicesinc/sweetblue/BleDevice.html#disconnect--"><code>BleDevice.disconnect()</code></a> in response to a button click, whereas unintentional would be if the device disconnected because it + went out of range. As much as possible these flags are meant to represent the actual app <i>user's</i> intent through the app, not + the intent of you the programmer, nor the intent of the user outside the bounds of the app, like disconnecting by turning the peripheral off. + For example after a disconnect you might be using <a href="../../../../com/idevicesinc/sweetblue/BleNodeConfig.html#reconnectFilter"><code>BleNodeConfig.reconnectFilter</code></a> to try periodically + reconnecting. From you the programmer's perspective a connect, if/when it happens, is arguably an intentional action. From the user's + perspective however the connect was unintentional. Therefore this mask is currently meant to serve an analytics or debugging role, + not to necessarily gate application logic.</div> +</li> +</ul> +<a name="enterMask--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enterMask</h4> +<pre>public int enterMask()</pre> +<div class="block">Returns all the states that were entered as a bit mask.</div> +</li> +</ul> +<a name="exitMask--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>exitMask</h4> +<pre>public int exitMask()</pre> +<div class="block">Returns all the states that were exited as a bit mask.</div> +</li> +</ul> +<a name="didEnter-com.idevicesinc.sweetblue.utils.State-"> +<!-- --> +</a><a name="didEnter-T_State-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>didEnter</h4> +<pre>public boolean didEnter(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a> state)</pre> +<div class="block">Convenience forwarding of <a href="../../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-"><code>State.didEnter(int, int)</code></a>.</div> +</li> +</ul> +<a name="didExit-com.idevicesinc.sweetblue.utils.State-"> +<!-- --> +</a><a name="didExit-T_State-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>didExit</h4> +<pre>public boolean didExit(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a> state)</pre> +<div class="block">Convenience forwarding of <a href="../../../../com/idevicesinc/sweetblue/utils/State.html#didExit-int-int-"><code>State.didExit(int, int)</code></a>.</div> +</li> +</ul> +<a name="isFor-com.idevicesinc.sweetblue.utils.State-"> +<!-- --> +</a><a name="isFor-T_State-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isFor</h4> +<pre>public boolean isFor(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a> state)</pre> +<div class="block">Returns <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnter-T_State-"><code>didEnter(State)</code></a> or <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExit-T_State-"><code>didExit(State)</code></a> return true.</div> +</li> +</ul> +<a name="isForAny-com.idevicesinc.sweetblue.utils.State:A-"> +<!-- --> +</a><a name="isForAny-T_State...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isForAny</h4> +<pre>public boolean isForAny(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a>... states)</pre> +<div class="block">Returns <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAny-T_State...-"><code>didEnterAny(State...)</code></a> or <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAny-T_State...-"><code>didExitAny(State...)</code></a> return true.</div> +</li> +</ul> +<a name="isForAll-com.idevicesinc.sweetblue.utils.State:A-"> +<!-- --> +</a><a name="isForAll-T_State...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isForAll</h4> +<pre>public boolean isForAll(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a>... states)</pre> +<div class="block">Returns <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAll-T_State...-"><code>didEnterAll(State...)</code></a> or <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAll-T_State...-"><code>didExitAll(State...)</code></a> return true.</div> +</li> +</ul> +<a name="didEnterAny-com.idevicesinc.sweetblue.utils.State:A-"> +<!-- --> +</a><a name="didEnterAny-T_State...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>didEnterAny</h4> +<pre>public boolean didEnterAny(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a>... states)</pre> +<div class="block">Convenience to return <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnter-T_State-"><code>didEnter(State)</code></a> returns <code>true</code> on any of the <a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><code>State</code></a> instances given.</div> +</li> +</ul> +<a name="didExitAny-com.idevicesinc.sweetblue.utils.State:A-"> +<!-- --> +</a><a name="didExitAny-T_State...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>didExitAny</h4> +<pre>public boolean didExitAny(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a>... states)</pre> +<div class="block">Convenience to return <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExit-T_State-"><code>didExit(State)</code></a> returns <code>true</code> on any of the <a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><code>State</code></a> instances given.</div> +</li> +</ul> +<a name="didEnterAll-com.idevicesinc.sweetblue.utils.State:A-"> +<!-- --> +</a><a name="didEnterAll-T_State...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>didEnterAll</h4> +<pre>public boolean didEnterAll(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a>... states)</pre> +<div class="block">Convenience to return <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnter-T_State-"><code>didEnter(State)</code></a> returns <code>true</code> for all the <a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><code>State</code></a> instances given.</div> +</li> +</ul> +<a name="didExitAll-com.idevicesinc.sweetblue.utils.State:A-"> +<!-- --> +</a><a name="didExitAll-T_State...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>didExitAll</h4> +<pre>public boolean didExitAll(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a>... states)</pre> +<div class="block">Convenience to return <code>true</code> if <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExit-T_State-"><code>didExit(State)</code></a> returns <code>true</code> for all the <a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><code>State</code></a> instances given.</div> +</li> +</ul> +<a name="getIntent-com.idevicesinc.sweetblue.utils.State-"> +<!-- --> +</a><a name="getIntent-T_State-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getIntent</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a> getIntent(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a> state)</pre> +<div class="block">Returns the intention behind the state change, or <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#NULL"><code>State.ChangeIntent.NULL</code></a> if no state + change for the given state occurred.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" target="_top">Frames</a></li> +<li><a href="State.ChangeEvent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/State.ChangeIntent.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/State.ChangeIntent.html new file mode 100644 index 0000000000000000000000000000000000000000..4b3e562c85717b60db3038ecb56422f4e332391b --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/State.ChangeIntent.html @@ -0,0 +1,427 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>State.ChangeIntent (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="State.ChangeIntent (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":9,"i2":10,"i3":9,"i4":9,"i5":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" target="_top">Frames</a></li> +<li><a href="State.ChangeIntent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Enum State.ChangeIntent" class="title">Enum State.ChangeIntent</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a><<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a>></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.State.ChangeIntent</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a>></dd> +</dl> +<dl> +<dt>Enclosing interface:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></dd> +</dl> +<hr> +<br> +<pre>public static enum <span class="typeNameLabel">State.ChangeIntent</span> +extends <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a><<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a>></pre> +<div class="block">Enumerates the intention behind a state change - as comprehensively as possible, whether the + application user intended for the state change to happen or not. See <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#intentMask--"><code>State.ChangeEvent.intentMask()</code></a> for more + discussion on user intent.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ENUM CONSTANT SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.summary"> +<!-- --> +</a> +<h3>Enum Constant Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation"> +<caption><span>Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#INTENTIONAL">INTENTIONAL</a></span></code> +<div class="block">The state change was intentional.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#NULL">NULL</a></span></code> +<div class="block">Used instead of Java's built-in <code>null</code> wherever appropriate.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#UNINTENTIONAL">UNINTENTIONAL</a></span></code> +<div class="block">The state change was not intentional.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#bits--">bits</a></span>()</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#fromDiskValue-int-">fromDiskValue</a></span>(int diskValue)</code> +<div class="block">Transforms <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#toDiskValue--"><code>toDiskValue()</code></a> back to the enum.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#toDiskValue--">toDiskValue</a></span>()</code> +<div class="block">The integer value to write to disk.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#toDiskValue-com.idevicesinc.sweetblue.utils.State.ChangeIntent-">toDiskValue</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a> intent_nullable)</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</code> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#values--">values</a></span>()</code> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ENUM CONSTANT DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="enum.constant.detail"> +<!-- --> +</a> +<h3>Enum Constant Detail</h3> +<a name="NULL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>NULL</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a> NULL</pre> +<div class="block">Used instead of Java's built-in <code>null</code> wherever appropriate.</div> +</li> +</ul> +<a name="UNINTENTIONAL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>UNINTENTIONAL</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a> UNINTENTIONAL</pre> +<div class="block">The state change was not intentional.</div> +</li> +</ul> +<a name="INTENTIONAL"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>INTENTIONAL</h4> +<pre>public static final <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a> INTENTIONAL</pre> +<div class="block">The state change was intentional.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="values--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>values</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a>[] values()</pre> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +<pre> +for (State.ChangeIntent c : State.ChangeIntent.values()) + System.out.println(c); +</pre></div> +<dl> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>an array containing the constants of this enum type, in the order they are declared</dd> +</dl> +</li> +</ul> +<a name="valueOf-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>valueOf</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a> valueOf(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> name)</pre> +<div class="block">Returns the enum constant of this type with the specified name. +The string must match <i>exactly</i> an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>name</code> - the name of the enum constant to be returned.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd>the enum constant with the specified name</dd> +<dt><span class="throwsLabel">Throws:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd> +<dd><code><a href="http://d.android.com/reference/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd> +</dl> +</li> +</ul> +<a name="toDiskValue--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toDiskValue</h4> +<pre>public int toDiskValue()</pre> +<div class="block">The integer value to write to disk. Not using ordinal to avoid + unintentional consequences of changing enum order by accident or something.</div> +</li> +</ul> +<a name="toDiskValue-com.idevicesinc.sweetblue.utils.State.ChangeIntent-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toDiskValue</h4> +<pre>public static int toDiskValue(<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a> intent_nullable)</pre> +</li> +</ul> +<a name="fromDiskValue-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromDiskValue</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a> fromDiskValue(int diskValue)</pre> +<div class="block">Transforms <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#toDiskValue--"><code>toDiskValue()</code></a> back to the enum. + Returns <a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#NULL"><code>NULL</code></a> if diskValue can't be resolved.</div> +</li> +</ul> +<a name="bits--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>bits</h4> +<pre>public int bits()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" target="_top">Frames</a></li> +<li><a href="State.ChangeIntent.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#enum.constant.summary">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#enum.constant.detail">Enum Constants</a> | </li> +<li>Field | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/State.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/State.html new file mode 100644 index 0000000000000000000000000000000000000000..22db036ed6502c0db96d785566064dd9b7f5b30c --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/State.html @@ -0,0 +1,321 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>State (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="State (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6,"i1":6,"i2":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/State.html" target="_top">Frames</a></li> +<li><a href="State.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Interface State" class="title">Interface State</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Superinterfaces:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></dd> +</dl> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a>, <a href="../../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a>, <a href="../../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a></dd> +</dl> +<hr> +<br> +<pre>public interface <span class="typeNameLabel">State</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></pre> +<div class="block">Bitwise enum contract for representing the state of devices and managers. + Implementations are <a href="../../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> and <a href="../../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a>. + Not intended for subclassing outside this library but go wild if you want.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation"> +<caption><span>Nested Classes</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Interface and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a><<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a> extends <a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>></span></code> +<div class="block">Abstract base class for <a href="../../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.StateListener.StateEvent</code></a> and <a href="../../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleManager.StateListener.StateEvent</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static class </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a></span></code> +<div class="block">Enumerates the intention behind a state change - as comprehensively as possible, whether the + application user intended for the state change to happen or not.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-">didEnter</a></span>(int oldStateBits, + int newStateBits)</code> +<div class="block">Given an old and new state mask, for example from <a href="../../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent-"><code>BleDevice.StateListener.onEvent(com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent)</code></a> + or <a href="../../../../com/idevicesinc/sweetblue/BleManager.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent-"><code>BleManager.StateListener.onEvent(com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent)</code></a>, this method tells you whether the + the 'this' state was appended.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.html#didExit-int-int-">didExit</a></span>(int oldStateBits, + int newStateBits)</code> +<div class="block">Reverse of <a href="../../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-"><code>didEnter(int, int)</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/State.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if this state is meant to stand in for Java's built-in <code>null</code>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.BitwiseEnum"> +<!-- --> +</a> +<h3>Methods inherited from interface com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--">bit</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#name--">name</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-int-">or</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--">ordinal</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html#overlaps-int-">overlaps</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="didEnter-int-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>didEnter</h4> +<pre>boolean didEnter(int oldStateBits, + int newStateBits)</pre> +<div class="block">Given an old and new state mask, for example from <a href="../../../../com/idevicesinc/sweetblue/BleDevice.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent-"><code>BleDevice.StateListener.onEvent(com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent)</code></a> + or <a href="../../../../com/idevicesinc/sweetblue/BleManager.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent-"><code>BleManager.StateListener.onEvent(com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent)</code></a>, this method tells you whether the + the 'this' state was appended.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/State.html#didExit-int-int-"><code>didExit(int, int)</code></a></dd> +</dl> +</li> +</ul> +<a name="didExit-int-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>didExit</h4> +<pre>boolean didExit(int oldStateBits, + int newStateBits)</pre> +<div class="block">Reverse of <a href="../../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-"><code>didEnter(int, int)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-"><code>didEnter(int, int)</code></a></dd> +</dl> +</li> +</ul> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isNull</h4> +<pre>boolean isNull()</pre> +<div class="block">Returns <code>true</code> if this state is meant to stand in for Java's built-in <code>null</code>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/State.html" target="_top">Frames</a></li> +<li><a href="State.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li><a href="#nested.class.summary">Nested</a> | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/TimeEstimator.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/TimeEstimator.html new file mode 100644 index 0000000000000000000000000000000000000000..c5a9ba30ea01ea67b83aeb46381c2733611f6d10 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/TimeEstimator.html @@ -0,0 +1,390 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>TimeEstimator (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="TimeEstimator (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/TimeEstimator.html" target="_top">Frames</a></li> +<li><a href="TimeEstimator.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class TimeEstimator" class="title">Class TimeEstimator</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.TimeEstimator</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">TimeEstimator</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">A zero-dependency utility class to track running average time of operations + and estimate the completion time of long running operations like firmware updates. + Basically takes times as doubles representing seconds, and spits back the same.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/TimeEstimator.html#TimeEstimator-int-">TimeEstimator</a></span>(int runningAverageN)</code> +<div class="block">Lets this class act as a utility for calculating the running average completion time of arbitrary operations.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/TimeEstimator.html#TimeEstimator-int-double-int-">TimeEstimator</a></span>(int totalSteps, + double estimatedTimePerStep, + int runningAverageN)</code> +<div class="block">Lets this class act as a "time remaining" estimator for long-running operations.</div> +</td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/TimeEstimator.html#addTime-double-">addTime</a></span>(double timeStep)</code> +<div class="block">Adds the time it took for a just-completed operation to finish + and updates the running average time.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/TimeEstimator.html#getRunningAverage--">getRunningAverage</a></span>()</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/TimeEstimator.html#getRunningAverageN--">getRunningAverageN</a></span>()</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/TimeEstimator.html#getStepsCompleted--">getStepsCompleted</a></span>()</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/TimeEstimator.html#getStepsRemaining--">getStepsRemaining</a></span>()</code> </td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/TimeEstimator.html#getTimeElapsed--">getTimeElapsed</a></span>()</code> </td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/TimeEstimator.html#getTimeRemaining--">getTimeRemaining</a></span>()</code> </td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/TimeEstimator.html#getTotalAverage--">getTotalAverage</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="TimeEstimator-int-double-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>TimeEstimator</h4> +<pre>public TimeEstimator(int totalSteps, + double estimatedTimePerStep, + int runningAverageN)</pre> +<div class="block">Lets this class act as a "time remaining" estimator for long-running operations.</div> +</li> +</ul> +<a name="TimeEstimator-int-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>TimeEstimator</h4> +<pre>public TimeEstimator(int runningAverageN)</pre> +<div class="block">Lets this class act as a utility for calculating the running average completion time of arbitrary operations.</div> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="addTime-double-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>addTime</h4> +<pre>public void addTime(double timeStep)</pre> +<div class="block">Adds the time it took for a just-completed operation to finish + and updates the running average time.</div> +</li> +</ul> +<a name="getTimeElapsed--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getTimeElapsed</h4> +<pre>public double getTimeElapsed()</pre> +</li> +</ul> +<a name="getTimeRemaining--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getTimeRemaining</h4> +<pre>public double getTimeRemaining()</pre> +</li> +</ul> +<a name="getStepsCompleted--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getStepsCompleted</h4> +<pre>public int getStepsCompleted()</pre> +</li> +</ul> +<a name="getStepsRemaining--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getStepsRemaining</h4> +<pre>public int getStepsRemaining()</pre> +</li> +</ul> +<a name="getRunningAverage--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getRunningAverage</h4> +<pre>public double getRunningAverage()</pre> +</li> +</ul> +<a name="getRunningAverageN--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getRunningAverageN</h4> +<pre>public int getRunningAverageN()</pre> +</li> +</ul> +<a name="getTotalAverage--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getTotalAverage</h4> +<pre>public double getTotalAverage()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/TimeEstimator.html" target="_top">Frames</a></li> +<li><a href="TimeEstimator.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Unit.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Unit.html new file mode 100644 index 0000000000000000000000000000000000000000..86da6a816f5a297818d3dd2ff3bf298fee90c61a --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Unit.html @@ -0,0 +1,530 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Unit (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Unit (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":6,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":6,"i14":10,"i15":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Unit.html" target="_top">Frames</a></li> +<li><a href="Unit.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class Unit" class="title">Class Unit<T extends Unit></h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.Unit<T></li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt><span class="paramLabel">Type Parameters:</span></dt> +<dd><code>T</code> - Used to enforce just-in-case subclass type checking for methods like <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#lt-com.idevicesinc.sweetblue.utils.Unit-"><code>lt(Unit)</code></a> so you can't compare one subclass with another subclass.</dd> +</dl> +<dl> +<dt>Direct Known Subclasses:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></dd> +</dl> +<hr> +<br> +<pre>public abstract class <span class="typeNameLabel">Unit<T extends Unit></span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Common abstract base class for all units of measurement, providing default convenience methods + for things like comparison.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#Unit--">Unit</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#dividedBy-com.idevicesinc.sweetblue.utils.Unit-">dividedBy</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> other)</code> +<div class="block">Returns a new instance that is the result of doing <code>this / other</code>.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#equals-java.lang.Object-">equals</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> object)</code> +<div class="block">Returns <code>==</code> using <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#getRawValue--"><code>getRawValue()</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>protected abstract double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#getRawValue--">getRawValue</a></span>()</code> +<div class="block">Subclasses must implement this to return their raw <code>double</code> value.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#gt-double-">gt</a></span>(double otherUnit)</code> +<div class="block">"greater than" comparison.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#gt-com.idevicesinc.sweetblue.utils.Unit-">gt</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> otherUnit)</code> +<div class="block">"greater than" comparison.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#gte-double-">gte</a></span>(double otherUnit)</code> +<div class="block">"greater than or equal" comparison.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#gte-com.idevicesinc.sweetblue.utils.Unit-">gte</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> otherUnit)</code> +<div class="block">"greater than or equal" comparison.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#hashCode--">hashCode</a></span>()</code> +<div class="block">Hashes <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#getRawValue--"><code>getRawValue()</code></a> to an <code>int</code> using <a href="http://d.android.com/reference/java/lang/Double.html?is-external=true#hashCode--" title="class or interface in java.lang"><code>Double.hashCode()</code></a>.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#lt-double-">lt</a></span>(double otherUnit)</code> +<div class="block">"less than" comparison.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#lt-com.idevicesinc.sweetblue.utils.Unit-">lt</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> otherUnit)</code> +<div class="block">"less than" comparison.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#lte-double-">lte</a></span>(double otherUnit)</code> +<div class="block">"less than or equal" comparison.</div> +</td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#lte-com.idevicesinc.sweetblue.utils.Unit-">lte</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> otherUnit)</code> +<div class="block">"less than or equal" comparison.</div> +</td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#minus-com.idevicesinc.sweetblue.utils.Unit-">minus</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> other)</code> +<div class="block">Returns a new instance that is the result of doing <code>this - other</code>.</div> +</td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code>protected abstract <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#newInstance-double-">newInstance</a></span>(double rawValue)</code> +<div class="block">Subclasses must override this so that arithmetic "operators" can create new instances.</div> +</td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#plus-com.idevicesinc.sweetblue.utils.Unit-">plus</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> other)</code> +<div class="block">Returns a new instance that is the result of doing <code>this + other</code>.</div> +</td> +</tr> +<tr id="i15" class="rowColor"> +<td class="colFirst"><code><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#times-com.idevicesinc.sweetblue.utils.Unit-">times</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> other)</code> +<div class="block">Returns a new instance that is the result of doing <code>this * other</code>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="Unit--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>Unit</h4> +<pre>public Unit()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="lt-com.idevicesinc.sweetblue.utils.Unit-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>lt</h4> +<pre>public boolean lt(<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> otherUnit)</pre> +<div class="block">"less than" comparison.</div> +</li> +</ul> +<a name="lte-com.idevicesinc.sweetblue.utils.Unit-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>lte</h4> +<pre>public boolean lte(<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> otherUnit)</pre> +<div class="block">"less than or equal" comparison.</div> +</li> +</ul> +<a name="gt-com.idevicesinc.sweetblue.utils.Unit-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>gt</h4> +<pre>public boolean gt(<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> otherUnit)</pre> +<div class="block">"greater than" comparison.</div> +</li> +</ul> +<a name="gte-com.idevicesinc.sweetblue.utils.Unit-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>gte</h4> +<pre>public boolean gte(<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> otherUnit)</pre> +<div class="block">"greater than or equal" comparison.</div> +</li> +</ul> +<a name="lt-double-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>lt</h4> +<pre>public boolean lt(double otherUnit)</pre> +<div class="block">"less than" comparison.</div> +</li> +</ul> +<a name="lte-double-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>lte</h4> +<pre>public boolean lte(double otherUnit)</pre> +<div class="block">"less than or equal" comparison.</div> +</li> +</ul> +<a name="gt-double-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>gt</h4> +<pre>public boolean gt(double otherUnit)</pre> +<div class="block">"greater than" comparison.</div> +</li> +</ul> +<a name="gte-double-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>gte</h4> +<pre>public boolean gte(double otherUnit)</pre> +<div class="block">"greater than or equal" comparison.</div> +</li> +</ul> +<a name="minus-com.idevicesinc.sweetblue.utils.Unit-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>minus</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> minus(<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> other)</pre> +<div class="block">Returns a new instance that is the result of doing <code>this - other</code>.</div> +</li> +</ul> +<a name="plus-com.idevicesinc.sweetblue.utils.Unit-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>plus</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> plus(<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> other)</pre> +<div class="block">Returns a new instance that is the result of doing <code>this + other</code>.</div> +</li> +</ul> +<a name="times-com.idevicesinc.sweetblue.utils.Unit-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>times</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> times(<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> other)</pre> +<div class="block">Returns a new instance that is the result of doing <code>this * other</code>.</div> +</li> +</ul> +<a name="dividedBy-com.idevicesinc.sweetblue.utils.Unit-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>dividedBy</h4> +<pre>public <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> dividedBy(<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> other)</pre> +<div class="block">Returns a new instance that is the result of doing <code>this / other</code>.</div> +</li> +</ul> +<a name="hashCode--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hashCode</h4> +<pre>public int hashCode()</pre> +<div class="block">Hashes <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#getRawValue--"><code>getRawValue()</code></a> to an <code>int</code> using <a href="http://d.android.com/reference/java/lang/Double.html?is-external=true#hashCode--" title="class or interface in java.lang"><code>Double.hashCode()</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +<a name="equals-java.lang.Object-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>equals</h4> +<pre>public boolean equals(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> object)</pre> +<div class="block">Returns <code>==</code> using <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html#getRawValue--"><code>getRawValue()</code></a>.</div> +<dl> +<dt><span class="overrideSpecifyLabel">Overrides:</span></dt> +<dd><code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code> in class <code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd> +</dl> +</li> +</ul> +<a name="getRawValue--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getRawValue</h4> +<pre>protected abstract double getRawValue()</pre> +<div class="block">Subclasses must implement this to return their raw <code>double</code> value.</div> +</li> +</ul> +<a name="newInstance-double-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>newInstance</h4> +<pre>protected abstract <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a>> newInstance(double rawValue)</pre> +<div class="block">Subclasses must override this so that arithmetic "operators" can create new instances.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Unit.html" target="_top">Frames</a></li> +<li><a href="Unit.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/UpdateLoop.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/UpdateLoop.html new file mode 100644 index 0000000000000000000000000000000000000000..a460bf594906488e317ada70a46f29086ce9dd50 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/UpdateLoop.html @@ -0,0 +1,401 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>UpdateLoop (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="UpdateLoop (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":9,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/UpdateLoop.html" target="_top">Frames</a></li> +<li><a href="UpdateLoop.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class UpdateLoop" class="title">Class UpdateLoop</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.UpdateLoop</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">UpdateLoop</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></pre> +<div class="block">Zero-dependency (besides Android) utility class for creating an update loop.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== NESTED CLASS SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="nested.class.summary"> +<!-- --> +</a> +<h3>Nested Class Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="nested.classes.inherited.from.class.com.idevicesinc.sweetblue.PI_UpdateLoop"> +<!-- --> +</a> +<h3>Nested classes/interfaces inherited from interface com.idevicesinc.sweetblue.<a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.Callback</a>, <a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" title="class in com.idevicesinc.sweetblue">PI_UpdateLoop.DefaultUpdateLoopFactory</a>, <a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.IUpdateLoopFactory</a></code></li> +</ul> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html#forcePost-java.lang.Runnable-">forcePost</a></span>(<a href="http://d.android.com/reference/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a> runnable)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/android/os/Handler.html?is-external=true" title="class or interface in android.os">Handler</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html#getHandler--">getHandler</a></span>()</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html#isRunning--">isRunning</a></span>()</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html#newAnonThreadLoop--">newAnonThreadLoop</a></span>()</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html#newAnonThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-">newAnonThreadLoop</a></span>(<a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.Callback</a> callback)</code> </td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html#newMainThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-">newMainThreadLoop</a></span>(<a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.Callback</a> callback)</code> </td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html#postIfNeeded-java.lang.Runnable-">postIfNeeded</a></span>(<a href="http://d.android.com/reference/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a> runnable)</code> </td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html#postNeeded--">postNeeded</a></span>()</code> </td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html#start-double-">start</a></span>(double updateRate)</code> </td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html#stop--">stop</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="newMainThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newMainThreadLoop</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a> newMainThreadLoop(<a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.Callback</a> callback)</pre> +</li> +</ul> +<a name="newAnonThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newAnonThreadLoop</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a> newAnonThreadLoop(<a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.Callback</a> callback)</pre> +</li> +</ul> +<a name="newAnonThreadLoop--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>newAnonThreadLoop</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a> newAnonThreadLoop()</pre> +</li> +</ul> +<a name="isRunning--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isRunning</h4> +<pre>public boolean isRunning()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html#isRunning--">isRunning</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></code></dd> +</dl> +</li> +</ul> +<a name="start-double-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>start</h4> +<pre>public void start(double updateRate)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html#start-double-">start</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></code></dd> +</dl> +</li> +</ul> +<a name="stop--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>stop</h4> +<pre>public void stop()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html#stop--">stop</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></code></dd> +</dl> +</li> +</ul> +<a name="forcePost-java.lang.Runnable-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>forcePost</h4> +<pre>public void forcePost(<a href="http://d.android.com/reference/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a> runnable)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html#forcePost-java.lang.Runnable-">forcePost</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></code></dd> +</dl> +</li> +</ul> +<a name="getHandler--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getHandler</h4> +<pre>public <a href="http://d.android.com/reference/android/os/Handler.html?is-external=true" title="class or interface in android.os">Handler</a> getHandler()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html#getHandler--">getHandler</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></code></dd> +</dl> +</li> +</ul> +<a name="postNeeded--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>postNeeded</h4> +<pre>public boolean postNeeded()</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html#postNeeded--">postNeeded</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></code></dd> +</dl> +</li> +</ul> +<a name="postIfNeeded-java.lang.Runnable-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>postIfNeeded</h4> +<pre>public void postIfNeeded(<a href="http://d.android.com/reference/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a> runnable)</pre> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html#postIfNeeded-java.lang.Runnable-">postIfNeeded</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/UpdateLoop.html" target="_top">Frames</a></li> +<li><a href="UpdateLoop.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/UsesCustomNull.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/UsesCustomNull.html new file mode 100644 index 0000000000000000000000000000000000000000..0825bf447de4fa0317e4c814f8f3e0adbfbe74ba --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/UsesCustomNull.html @@ -0,0 +1,239 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>UsesCustomNull (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="UsesCustomNull (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/UsesCustomNull.html" target="_top">Frames</a></li> +<li><a href="UsesCustomNull.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Interface UsesCustomNull" class="title">Interface UsesCustomNull</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Subinterfaces:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></dd> +</dl> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a>, <a href="../../../../com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a>, <a href="../../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a>, <a href="../../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a>, <a href="../../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a>, <a href="../../../../com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a>, <a href="../../../../com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a>, <a href="../../../../com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a>, <a href="../../../../com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a>, <a href="../../../../com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.ConnectionFailEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a>, <a href="../../../../com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a>, <a href="../../../../com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a>, <a href="../../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a>, <a href="../../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a>, <a href="../../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a>, <a href="../../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a>, <a href="../../../../com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a>, <a href="../../../../com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a>, <a href="../../../../com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></dd> +</dl> +<hr> +<br> +<pre>public interface <span class="typeNameLabel">UsesCustomNull</span></pre> +<div class="block">Interface implemented by some enums and mostly other <a href="../../../../com/idevicesinc/sweetblue/annotations/Immutable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><code>Immutable</code></a> structs + that have custom "null" behavior in place of Java's built-in <code>null</code>. + <br><br> + NOTE: There is also an informal "statically polymorphic" contract imposed by this + interface that says an implementor must have a <code>public static final NULL</code> member or method. + For enums this simply means having a NULL entry. + <br><br> + NOTE ALSO: Another soft contract imposed by this interface is that the library (in this case SweetBlue) + hosting the implementor must never return an actually <code>null</code> reference of the implementor.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull</a></span>()</code> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="isNull--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>isNull</h4> +<pre>boolean isNull()</pre> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/UsesCustomNull.html" target="_top">Frames</a></li> +<li><a href="UsesCustomNull.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils.html new file mode 100644 index 0000000000000000000000000000000000000000..d9321b80f13a53eccd7c1f9ea22592869a38aebe --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils.html @@ -0,0 +1,544 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Utils (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Utils (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9,"i19":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Utils.html" target="_top">Frames</a></li> +<li><a href="Utils.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class Utils" class="title">Class Utils</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.Utils</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>Direct Known Subclasses:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Reflection.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Reflection</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Rssi.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Rssi</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html" title="class in com.idevicesinc.sweetblue.utils">Utils_ScanRecord</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils_State.html" title="class in com.idevicesinc.sweetblue.utils">Utils_State</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils">Utils_String</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Time.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Time</a></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">Utils</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">Some static utility methods that are probably not very useful outside the library. + See subclasses for more specific groups of utility methods.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier</th> +<th class="colLast" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>protected </code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#Utils--">Utils</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#contains-java.lang.Object:A-java.lang.Object-">contains</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[] uuids, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> uuid)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <T> boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#doForEach_break-java.lang.Object-java.util.List-">doForEach_break</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> forEach, + <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><T> list)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#doForEach_break-java.lang.Object-java.lang.Object-">doForEach_break</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> forEach, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> next)</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#enforceMainThread-java.lang.String-">enforceMainThread</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> message)</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#hasManifestPermission-android.content.Context-java.lang.String-">hasManifestPermission</a></span>(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> permission)</code> </td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#hasPermission-android.content.Context-java.lang.String-">hasPermission</a></span>(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> permission)</code> </td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#haveMatchingIds-java.util.List-java.util.Collection-">haveMatchingIds</a></span>(<a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> advertisedIds, + <a href="http://d.android.com/reference/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> lookedForIds)</code> </td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isKitKat--">isKitKat</a></span>()</code> </td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byManifestPermissions-android.content.Context-">isLocationEnabledForScanning_byManifestPermissions</a></span>(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context)</code> </td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byOsServices-android.content.Context-">isLocationEnabledForScanning_byOsServices</a></span>(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context)</code> +<div class="block">Adapted from http://stackoverflow.com/a/22980843/4248895.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byRuntimePermissions-android.content.Context-">isLocationEnabledForScanning_byRuntimePermissions</a></span>(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context)</code> </td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning-android.content.Context-">isLocationEnabledForScanning</a></span>(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context)</code> </td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLollipop--">isLollipop</a></span>()</code> </td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isManufacturer-java.lang.String-">isManufacturer</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> manufacturer)</code> </td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isMarshmallow--">isMarshmallow</a></span>()</code> </td> +</tr> +<tr id="i15" class="rowColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isNougat--">isNougat</a></span>()</code> </td> +</tr> +<tr id="i16" class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isOnMainThread--">isOnMainThread</a></span>()</code> </td> +</tr> +<tr id="i17" class="rowColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isProduct-java.lang.String-">isProduct</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> product)</code> </td> +</tr> +<tr id="i18" class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isSuccess-int-">isSuccess</a></span>(int gattStatus)</code> </td> +</tr> +<tr id="i19" class="rowColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#phoneHasBondingIssues--">phoneHasBondingIssues</a></span>()</code> +<div class="block">Returns true for certain Sony and Motorola products, which may have problems managing bonding state + and so this method is used in <a href="../../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig.DefaultBondFilter</code></a>.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="Utils--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>Utils</h4> +<pre>protected Utils()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="isLollipop--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isLollipop</h4> +<pre>public static boolean isLollipop()</pre> +</li> +</ul> +<a name="isMarshmallow--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isMarshmallow</h4> +<pre>public static boolean isMarshmallow()</pre> +</li> +</ul> +<a name="isNougat--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isNougat</h4> +<pre>public static boolean isNougat()</pre> +</li> +</ul> +<a name="isKitKat--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isKitKat</h4> +<pre>public static boolean isKitKat()</pre> +</li> +</ul> +<a name="isLocationEnabledForScanning_byManifestPermissions-android.content.Context-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isLocationEnabledForScanning_byManifestPermissions</h4> +<pre>public static boolean isLocationEnabledForScanning_byManifestPermissions(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context)</pre> +</li> +</ul> +<a name="isLocationEnabledForScanning_byRuntimePermissions-android.content.Context-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isLocationEnabledForScanning_byRuntimePermissions</h4> +<pre>public static boolean isLocationEnabledForScanning_byRuntimePermissions(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context)</pre> +</li> +</ul> +<a name="hasManifestPermission-android.content.Context-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasManifestPermission</h4> +<pre>public static boolean hasManifestPermission(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> permission)</pre> +</li> +</ul> +<a name="isLocationEnabledForScanning_byOsServices-android.content.Context-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isLocationEnabledForScanning_byOsServices</h4> +<pre>public static boolean isLocationEnabledForScanning_byOsServices(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context)</pre> +<div class="block">Adapted from http://stackoverflow.com/a/22980843/4248895.</div> +</li> +</ul> +<a name="isLocationEnabledForScanning-android.content.Context-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isLocationEnabledForScanning</h4> +<pre>public static boolean isLocationEnabledForScanning(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context)</pre> +</li> +</ul> +<a name="phoneHasBondingIssues--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>phoneHasBondingIssues</h4> +<pre>public static boolean phoneHasBondingIssues()</pre> +<div class="block">Returns true for certain Sony and Motorola products, which may have problems managing bonding state + and so this method is used in <a href="../../../../com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig.DefaultBondFilter</code></a>.</div> +</li> +</ul> +<a name="isManufacturer-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isManufacturer</h4> +<pre>public static boolean isManufacturer(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> manufacturer)</pre> +</li> +</ul> +<a name="isProduct-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isProduct</h4> +<pre>public static boolean isProduct(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> product)</pre> +</li> +</ul> +<a name="isOnMainThread--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isOnMainThread</h4> +<pre>public static boolean isOnMainThread()</pre> +</li> +</ul> +<a name="enforceMainThread-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>enforceMainThread</h4> +<pre>public static void enforceMainThread(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> message)</pre> +</li> +</ul> +<a name="isSuccess-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>isSuccess</h4> +<pre>public static boolean isSuccess(int gattStatus)</pre> +</li> +</ul> +<a name="contains-java.lang.Object:A-java.lang.Object-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>contains</h4> +<pre>public static boolean contains(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[] uuids, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> uuid)</pre> +</li> +</ul> +<a name="haveMatchingIds-java.util.List-java.util.Collection-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>haveMatchingIds</h4> +<pre>public static boolean haveMatchingIds(<a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> advertisedIds, + <a href="http://d.android.com/reference/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> lookedForIds)</pre> +</li> +</ul> +<a name="hasPermission-android.content.Context-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hasPermission</h4> +<pre>public static boolean hasPermission(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> permission)</pre> +</li> +</ul> +<a name="doForEach_break-java.lang.Object-java.util.List-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>doForEach_break</h4> +<pre>public static <T> boolean doForEach_break(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> forEach, + <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><T> list)</pre> +</li> +</ul> +<a name="doForEach_break-java.lang.Object-java.lang.Object-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>doForEach_break</h4> +<pre>public static boolean doForEach_break(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> forEach, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> next)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Utils.html" target="_top">Frames</a></li> +<li><a href="Utils.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_Byte.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_Byte.html new file mode 100644 index 0000000000000000000000000000000000000000..6ea43bf0721ee313eb1fd4a488fddbef381901dc --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_Byte.html @@ -0,0 +1,512 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Utils_Byte (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Utils_Byte (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9,"i13":9,"i14":9,"i15":9,"i16":9,"i17":9,"i18":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Reflection.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Utils_Byte.html" target="_top">Frames</a></li> +<li><a href="Utils_Byte.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class Utils_Byte" class="title">Class Utils_Byte</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Utils</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.Utils_Byte</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">Utils_Byte</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></pre> +<div class="block">Utility methods for byte and bit twiddling.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static byte</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#boolToByte-boolean-">boolToByte</a></span>(boolean value)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#bytesToInt-byte:A-">bytesToInt</a></span>(byte[] b)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static long</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#bytesToLong-byte:A-">bytesToLong</a></span>(byte[] b)</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static short</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#bytesToShort-byte:A-">bytesToShort</a></span>(byte[] b)</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><byte[]></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#fileToBinaryDataList-android.content.Context-java.lang.String-int-">fileToBinaryDataList</a></span>(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> file, + int offset)</code> </td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#getIntValue-byte:A-">getIntValue</a></span>(byte[] data)</code> </td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>static byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#hexStringToBytes-java.lang.String-">hexStringToBytes</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> string)</code> </td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>static byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#intToBytes-int-">intToBytes</a></span>(int l)</code> </td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>static byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#longToBytes-long-">longToBytes</a></span>(long l)</code> </td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#memcmp-byte:A-byte:A-int-">memcmp</a></span>(byte[] buffer1, + byte[] buffer2, + int size)</code> </td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>static void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#memcpy-byte:A-byte:A-int-">memcpy</a></span>(byte[] dest, + byte[] source, + int size)</code> </td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code>static void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#memcpy-byte:A-byte:A-int-int-int-">memcpy</a></span>(byte[] dest, + byte[] source, + int size, + int destOffset, + int sourceOffset)</code> </td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code>static void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#memset-byte:A-byte-int-">memset</a></span>(byte[] data, + byte value, + int size)</code> </td> +</tr> +<tr id="i13" class="rowColor"> +<td class="colFirst"><code>static void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#reverseBytes-byte:A-">reverseBytes</a></span>(byte[] data)</code> </td> +</tr> +<tr id="i14" class="altColor"> +<td class="colFirst"><code>static byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#shortToBytes-short-">shortToBytes</a></span>(short l)</code> </td> +</tr> +<tr id="i15" class="rowColor"> +<td class="colFirst"><code>static byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#subBytes-byte:A-int-">subBytes</a></span>(byte[] source, + int sourceBegin)</code> </td> +</tr> +<tr id="i16" class="altColor"> +<td class="colFirst"><code>static byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#subBytes-byte:A-int-int-">subBytes</a></span>(byte[] source, + int sourceBegin_index_inclusive, + int sourceEnd_index_exclusive)</code> </td> +</tr> +<tr id="i17" class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#toBits-com.idevicesinc.sweetblue.utils.BitwiseEnum...-">toBits</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>... enums)</code> </td> +</tr> +<tr id="i18" class="altColor"> +<td class="colFirst"><code>static short</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html#unsignedByte-byte-">unsignedByte</a></span>(byte value)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Utils"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#contains-java.lang.Object:A-java.lang.Object-">contains</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#doForEach_break-java.lang.Object-java.util.List-">doForEach_break</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#doForEach_break-java.lang.Object-java.lang.Object-">doForEach_break</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#enforceMainThread-java.lang.String-">enforceMainThread</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#hasManifestPermission-android.content.Context-java.lang.String-">hasManifestPermission</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#hasPermission-android.content.Context-java.lang.String-">hasPermission</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#haveMatchingIds-java.util.List-java.util.Collection-">haveMatchingIds</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isKitKat--">isKitKat</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byManifestPermissions-android.content.Context-">isLocationEnabledForScanning_byManifestPermissions</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byOsServices-android.content.Context-">isLocationEnabledForScanning_byOsServices</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byRuntimePermissions-android.content.Context-">isLocationEnabledForScanning_byRuntimePermissions</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning-android.content.Context-">isLocationEnabledForScanning</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLollipop--">isLollipop</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isManufacturer-java.lang.String-">isManufacturer</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isMarshmallow--">isMarshmallow</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isNougat--">isNougat</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isOnMainThread--">isOnMainThread</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isProduct-java.lang.String-">isProduct</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isSuccess-int-">isSuccess</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#phoneHasBondingIssues--">phoneHasBondingIssues</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="toBits-com.idevicesinc.sweetblue.utils.BitwiseEnum...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toBits</h4> +<pre>public static int toBits(<a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>... enums)</pre> +</li> +</ul> +<a name="hexStringToBytes-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>hexStringToBytes</h4> +<pre>public static byte[] hexStringToBytes(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> string)</pre> +</li> +</ul> +<a name="fileToBinaryDataList-android.content.Context-java.lang.String-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fileToBinaryDataList</h4> +<pre>public static <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><byte[]> fileToBinaryDataList(<a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content">Context</a> context, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> file, + int offset)</pre> +</li> +</ul> +<a name="subBytes-byte:A-int-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>subBytes</h4> +<pre>public static byte[] subBytes(byte[] source, + int sourceBegin_index_inclusive, + int sourceEnd_index_exclusive)</pre> +</li> +</ul> +<a name="subBytes-byte:A-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>subBytes</h4> +<pre>public static byte[] subBytes(byte[] source, + int sourceBegin)</pre> +</li> +</ul> +<a name="memcpy-byte:A-byte:A-int-int-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>memcpy</h4> +<pre>public static void memcpy(byte[] dest, + byte[] source, + int size, + int destOffset, + int sourceOffset)</pre> +</li> +</ul> +<a name="memcpy-byte:A-byte:A-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>memcpy</h4> +<pre>public static void memcpy(byte[] dest, + byte[] source, + int size)</pre> +</li> +</ul> +<a name="memset-byte:A-byte-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>memset</h4> +<pre>public static void memset(byte[] data, + byte value, + int size)</pre> +</li> +</ul> +<a name="memcmp-byte:A-byte:A-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>memcmp</h4> +<pre>public static boolean memcmp(byte[] buffer1, + byte[] buffer2, + int size)</pre> +</li> +</ul> +<a name="getIntValue-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getIntValue</h4> +<pre>public static int getIntValue(byte[] data)</pre> +</li> +</ul> +<a name="reverseBytes-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>reverseBytes</h4> +<pre>public static void reverseBytes(byte[] data)</pre> +</li> +</ul> +<a name="unsignedByte-byte-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>unsignedByte</h4> +<pre>public static short unsignedByte(byte value)</pre> +</li> +</ul> +<a name="shortToBytes-short-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>shortToBytes</h4> +<pre>public static byte[] shortToBytes(short l)</pre> +</li> +</ul> +<a name="bytesToShort-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bytesToShort</h4> +<pre>public static short bytesToShort(byte[] b)</pre> +</li> +</ul> +<a name="boolToByte-boolean-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>boolToByte</h4> +<pre>public static byte boolToByte(boolean value)</pre> +</li> +</ul> +<a name="intToBytes-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>intToBytes</h4> +<pre>public static byte[] intToBytes(int l)</pre> +</li> +</ul> +<a name="bytesToInt-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bytesToInt</h4> +<pre>public static int bytesToInt(byte[] b)</pre> +</li> +</ul> +<a name="longToBytes-long-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>longToBytes</h4> +<pre>public static byte[] longToBytes(long l)</pre> +</li> +</ul> +<a name="bytesToLong-byte:A-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>bytesToLong</h4> +<pre>public static long bytesToLong(byte[] b)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Reflection.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Utils_Byte.html" target="_top">Frames</a></li> +<li><a href="Utils_Byte.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_Reflection.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_Reflection.html new file mode 100644 index 0000000000000000000000000000000000000000..e4e90fd4eeebf8c5f263f59187ffb031e1cadfe9 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_Reflection.html @@ -0,0 +1,316 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Utils_Reflection (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Utils_Reflection (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Rssi.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Utils_Reflection.html" target="_top">Frames</a></li> +<li><a href="Utils_Reflection.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class Utils_Reflection" class="title">Class Utils_Reflection</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Utils</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.Utils_Reflection</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">Utils_Reflection</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></pre> +<div class="block">Some utilities for dealing with raw byte array scan records.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Reflection.html#callBooleanReturnMethod-java.lang.Object-java.lang.String-boolean-">callBooleanReturnMethod</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> instance, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> methodName, + boolean showError)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Reflection.html#callBooleanReturnMethod-java.lang.Object-java.lang.String-java.lang.Class:A-boolean-java.lang.Object...-">callBooleanReturnMethod</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> instance, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> methodName, + <a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>[] paramTypes, + boolean showError, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... params)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Reflection.html#fieldStringValue-java.lang.reflect.Field-">fieldStringValue</a></span>(<a href="http://d.android.com/reference/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</a> field)</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <T> void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Reflection.html#nullOut-T-java.lang.Class-">nullOut</a></span>(T target, + <a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><? extends T> type)</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <T> T</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Reflection.html#staticFieldValue-java.lang.reflect.Field-">staticFieldValue</a></span>(<a href="http://d.android.com/reference/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</a> field)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Utils"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#contains-java.lang.Object:A-java.lang.Object-">contains</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#doForEach_break-java.lang.Object-java.util.List-">doForEach_break</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#doForEach_break-java.lang.Object-java.lang.Object-">doForEach_break</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#enforceMainThread-java.lang.String-">enforceMainThread</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#hasManifestPermission-android.content.Context-java.lang.String-">hasManifestPermission</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#hasPermission-android.content.Context-java.lang.String-">hasPermission</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#haveMatchingIds-java.util.List-java.util.Collection-">haveMatchingIds</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isKitKat--">isKitKat</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byManifestPermissions-android.content.Context-">isLocationEnabledForScanning_byManifestPermissions</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byOsServices-android.content.Context-">isLocationEnabledForScanning_byOsServices</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byRuntimePermissions-android.content.Context-">isLocationEnabledForScanning_byRuntimePermissions</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning-android.content.Context-">isLocationEnabledForScanning</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLollipop--">isLollipop</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isManufacturer-java.lang.String-">isManufacturer</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isMarshmallow--">isMarshmallow</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isNougat--">isNougat</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isOnMainThread--">isOnMainThread</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isProduct-java.lang.String-">isProduct</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isSuccess-int-">isSuccess</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#phoneHasBondingIssues--">phoneHasBondingIssues</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="fieldStringValue-java.lang.reflect.Field-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fieldStringValue</h4> +<pre>public static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> fieldStringValue(<a href="http://d.android.com/reference/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</a> field)</pre> +</li> +</ul> +<a name="staticFieldValue-java.lang.reflect.Field-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>staticFieldValue</h4> +<pre>public static <T> T staticFieldValue(<a href="http://d.android.com/reference/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</a> field)</pre> +</li> +</ul> +<a name="nullOut-java.lang.Object-java.lang.Class-"> +<!-- --> +</a><a name="nullOut-T-java.lang.Class-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>nullOut</h4> +<pre>public static <T> void nullOut(T target, + <a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><? extends T> type)</pre> +</li> +</ul> +<a name="callBooleanReturnMethod-java.lang.Object-java.lang.String-boolean-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>callBooleanReturnMethod</h4> +<pre>public static boolean callBooleanReturnMethod(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> instance, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> methodName, + boolean showError)</pre> +</li> +</ul> +<a name="callBooleanReturnMethod-java.lang.Object-java.lang.String-java.lang.Class:A-boolean-java.lang.Object...-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>callBooleanReturnMethod</h4> +<pre>public static boolean callBooleanReturnMethod(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> instance, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> methodName, + <a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>[] paramTypes, + boolean showError, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... params)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Rssi.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Utils_Reflection.html" target="_top">Frames</a></li> +<li><a href="Utils_Reflection.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_Rssi.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_Rssi.html new file mode 100644 index 0000000000000000000000000000000000000000..277e9da0d90fa3dbc164929cd8d2de3db9904224 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_Rssi.html @@ -0,0 +1,288 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Utils_Rssi (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Utils_Rssi (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Reflection.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Utils_Rssi.html" target="_top">Frames</a></li> +<li><a href="Utils_Rssi.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class Utils_Rssi" class="title">Class Utils_Rssi</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Utils</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.Utils_Rssi</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">Utils_Rssi</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></pre> +<div class="block">Some static utility methods for RSSI-related calculations.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Rssi.html#distance-int-int-">distance</a></span>(int txPower, + int rssi)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Rssi.html#distance-int-int-double-double-double-">distance</a></span>(int txPower, + int rssi, + double a, + double b, + double c)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static double</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Rssi.html#percent-int-int-int-">percent</a></span>(int rssi, + int rssi_min, + int rssi_max)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Utils"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#contains-java.lang.Object:A-java.lang.Object-">contains</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#doForEach_break-java.lang.Object-java.util.List-">doForEach_break</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#doForEach_break-java.lang.Object-java.lang.Object-">doForEach_break</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#enforceMainThread-java.lang.String-">enforceMainThread</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#hasManifestPermission-android.content.Context-java.lang.String-">hasManifestPermission</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#hasPermission-android.content.Context-java.lang.String-">hasPermission</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#haveMatchingIds-java.util.List-java.util.Collection-">haveMatchingIds</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isKitKat--">isKitKat</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byManifestPermissions-android.content.Context-">isLocationEnabledForScanning_byManifestPermissions</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byOsServices-android.content.Context-">isLocationEnabledForScanning_byOsServices</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byRuntimePermissions-android.content.Context-">isLocationEnabledForScanning_byRuntimePermissions</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning-android.content.Context-">isLocationEnabledForScanning</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLollipop--">isLollipop</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isManufacturer-java.lang.String-">isManufacturer</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isMarshmallow--">isMarshmallow</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isNougat--">isNougat</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isOnMainThread--">isOnMainThread</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isProduct-java.lang.String-">isProduct</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isSuccess-int-">isSuccess</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#phoneHasBondingIssues--">phoneHasBondingIssues</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="percent-int-int-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>percent</h4> +<pre>public static double percent(int rssi, + int rssi_min, + int rssi_max)</pre> +</li> +</ul> +<a name="distance-int-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>distance</h4> +<pre>public static double distance(int txPower, + int rssi)</pre> +</li> +</ul> +<a name="distance-int-int-double-double-double-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>distance</h4> +<pre>public static double distance(int txPower, + int rssi, + double a, + double b, + double c)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Reflection.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Utils_Rssi.html" target="_top">Frames</a></li> +<li><a href="Utils_Rssi.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html new file mode 100644 index 0000000000000000000000000000000000000000..24e68a9464dbd29c8efdfc20bdcff7613ec24c05 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html @@ -0,0 +1,309 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Utils_ScanRecord (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Utils_ScanRecord (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":41,"i3":41}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Rssi.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_State.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html" target="_top">Frames</a></li> +<li><a href="Utils_ScanRecord.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class Utils_ScanRecord" class="title">Class Utils_ScanRecord</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Utils</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.Utils_ScanRecord</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">Utils_ScanRecord</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></pre> +<div class="block">Some utilities for dealing with raw byte array scan records. + Most of the code herein is slightly modified from Android's 21-and-up scan record parsing API, + with code copy/pasted from various static methods of <a href="http://d.android.com/reference/android/bluetooth/le/ScanRecord.html?is-external=true" title="class or interface in android.bluetooth.le"><code>ScanRecord</code></a> and android.bluetooth.BluetoothUuid. + + Why not use these classes directly? So that the same code can be used if you're targeting < 21.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html#parseName-byte:A-">parseName</a></span>(byte[] scanRecord)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html#parseScanRecord-byte:A-">parseScanRecord</a></span>(byte[] scanRecord)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static void</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html#parseScanRecord-byte:A-com.idevicesinc.sweetblue.utils.Pointer-com.idevicesinc.sweetblue.utils.Pointer-java.util.List-android.util.SparseArray-java.util.Map-">parseScanRecord</a></span>(byte[] scanRecord, + <a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils">Pointer</a><<a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> advFlags_out_nullable, + <a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils">Pointer</a><<a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> txPower_nullable, + <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> serviceUuids_out_nullable, + <a href="http://d.android.com/reference/android/util/SparseArray.html?is-external=true" title="class or interface in android.util">SparseArray</a><byte[]> manufacturerData_out_nullable, + <a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> serviceData_out_nullable)</code> +<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html#parseServiceUuids-byte:A-">parseServiceUuids</a></span>(byte[] scanRecord)</code> +<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Utils"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#contains-java.lang.Object:A-java.lang.Object-">contains</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#doForEach_break-java.lang.Object-java.util.List-">doForEach_break</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#doForEach_break-java.lang.Object-java.lang.Object-">doForEach_break</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#enforceMainThread-java.lang.String-">enforceMainThread</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#hasManifestPermission-android.content.Context-java.lang.String-">hasManifestPermission</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#hasPermission-android.content.Context-java.lang.String-">hasPermission</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#haveMatchingIds-java.util.List-java.util.Collection-">haveMatchingIds</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isKitKat--">isKitKat</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byManifestPermissions-android.content.Context-">isLocationEnabledForScanning_byManifestPermissions</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byOsServices-android.content.Context-">isLocationEnabledForScanning_byOsServices</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byRuntimePermissions-android.content.Context-">isLocationEnabledForScanning_byRuntimePermissions</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning-android.content.Context-">isLocationEnabledForScanning</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLollipop--">isLollipop</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isManufacturer-java.lang.String-">isManufacturer</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isMarshmallow--">isMarshmallow</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isNougat--">isNougat</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isOnMainThread--">isOnMainThread</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isProduct-java.lang.String-">isProduct</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isSuccess-int-">isSuccess</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#phoneHasBondingIssues--">phoneHasBondingIssues</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="parseServiceUuids-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>parseServiceUuids</h4> +<pre><a href="http://d.android.com/reference/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a> +public static <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> parseServiceUuids(byte[] scanRecord)</pre> +<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div> +</li> +</ul> +<a name="parseScanRecord-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>parseScanRecord</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a> parseScanRecord(byte[] scanRecord)</pre> +</li> +</ul> +<a name="parseScanRecord-byte:A-com.idevicesinc.sweetblue.utils.Pointer-com.idevicesinc.sweetblue.utils.Pointer-java.util.List-android.util.SparseArray-java.util.Map-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>parseScanRecord</h4> +<pre><a href="http://d.android.com/reference/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a> +public static void parseScanRecord(byte[] scanRecord, + <a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils">Pointer</a><<a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> advFlags_out_nullable, + <a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils">Pointer</a><<a href="http://d.android.com/reference/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>> txPower_nullable, + <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>> serviceUuids_out_nullable, + <a href="http://d.android.com/reference/android/util/SparseArray.html?is-external=true" title="class or interface in android.util">SparseArray</a><byte[]> manufacturerData_out_nullable, + <a href="http://d.android.com/reference/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>,byte[]> serviceData_out_nullable)</pre> +<div class="block"><span class="deprecatedLabel">Deprecated.</span> </div> +</li> +</ul> +<a name="parseName-byte:A-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>parseName</h4> +<pre>public static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> parseName(byte[] scanRecord)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Rssi.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_State.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html" target="_top">Frames</a></li> +<li><a href="Utils_ScanRecord.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_State.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_State.html new file mode 100644 index 0000000000000000000000000000000000000000..754a0a2ea4800d16dec18afb33ede1b09a0392ed --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_State.html @@ -0,0 +1,250 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Utils_State (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Utils_State (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Utils_State.html" target="_top">Frames</a></li> +<li><a href="Utils_State.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class Utils_State" class="title">Class Utils_State</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Utils</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.Utils_State</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">Utils_State</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></pre> +<div class="block">Some helper utilities for dealing with <a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><code>State</code></a> implementors.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static boolean</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_State.html#query-int-java.lang.Object...-">query</a></span>(int stateMask, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Utils"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#contains-java.lang.Object:A-java.lang.Object-">contains</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#doForEach_break-java.lang.Object-java.util.List-">doForEach_break</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#doForEach_break-java.lang.Object-java.lang.Object-">doForEach_break</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#enforceMainThread-java.lang.String-">enforceMainThread</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#hasManifestPermission-android.content.Context-java.lang.String-">hasManifestPermission</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#hasPermission-android.content.Context-java.lang.String-">hasPermission</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#haveMatchingIds-java.util.List-java.util.Collection-">haveMatchingIds</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isKitKat--">isKitKat</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byManifestPermissions-android.content.Context-">isLocationEnabledForScanning_byManifestPermissions</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byOsServices-android.content.Context-">isLocationEnabledForScanning_byOsServices</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byRuntimePermissions-android.content.Context-">isLocationEnabledForScanning_byRuntimePermissions</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning-android.content.Context-">isLocationEnabledForScanning</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLollipop--">isLollipop</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isManufacturer-java.lang.String-">isManufacturer</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isMarshmallow--">isMarshmallow</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isNougat--">isNougat</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isOnMainThread--">isOnMainThread</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isProduct-java.lang.String-">isProduct</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isSuccess-int-">isSuccess</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#phoneHasBondingIssues--">phoneHasBondingIssues</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="query-int-java.lang.Object...-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>query</h4> +<pre>public static boolean query(int stateMask, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... query)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Utils_State.html" target="_top">Frames</a></li> +<li><a href="Utils_State.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_String.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_String.html new file mode 100644 index 0000000000000000000000000000000000000000..b98e601913f7b40c1eb0b2a66657ea81266dc79e --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_String.html @@ -0,0 +1,386 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Utils_String (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Utils_String (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_State.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Time.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Utils_String.html" target="_top">Frames</a></li> +<li><a href="Utils_String.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class Utils_String" class="title">Class Utils_String</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Utils</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.Utils_String</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">Utils_String</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></pre> +<div class="block">Utility methods for string manipulation and creation needed by SweetBlue, mostly for debug purposes.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_String.html#bytesToMacAddress-byte:A-">bytesToMacAddress</a></span>(byte[] raw)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_String.html#getStringValue-byte:A-">getStringValue</a></span>(byte[] data)</code> </td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_String.html#getStringValue-byte:A-java.lang.String-">getStringValue</a></span>(byte[] data, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> charset)</code> </td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/android/text/SpannableString.html?is-external=true" title="class or interface in android.text">SpannableString</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_String.html#makeStateString-com.idevicesinc.sweetblue.utils.State:A-int-">makeStateString</a></span>(<a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>[] states, + int stateMask)</code> </td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_String.html#makeString-java.lang.Object...-">makeString</a></span>(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... objects)</code> </td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_String.html#normalizeDeviceName-java.lang.String-">normalizeDeviceName</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> deviceName)</code> </td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_String.html#normalizeMacAddress_replaceDelimiters-java.lang.String-">normalizeMacAddress_replaceDelimiters</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</code> </td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_String.html#normalizeMacAddress-java.lang.String-">normalizeMacAddress</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</code> </td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_String.html#toFixed-double-">toFixed</a></span>(double value)</code> </td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_String.html#toString-java.lang.Class-java.lang.Object...-">toString</a></span>(<a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><?> type, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... values)</code> </td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_String.html#toString-int-com.idevicesinc.sweetblue.utils.State:A-">toString</a></span>(int mask, + <a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>[] values)</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Utils"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#contains-java.lang.Object:A-java.lang.Object-">contains</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#doForEach_break-java.lang.Object-java.util.List-">doForEach_break</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#doForEach_break-java.lang.Object-java.lang.Object-">doForEach_break</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#enforceMainThread-java.lang.String-">enforceMainThread</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#hasManifestPermission-android.content.Context-java.lang.String-">hasManifestPermission</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#hasPermission-android.content.Context-java.lang.String-">hasPermission</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#haveMatchingIds-java.util.List-java.util.Collection-">haveMatchingIds</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isKitKat--">isKitKat</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byManifestPermissions-android.content.Context-">isLocationEnabledForScanning_byManifestPermissions</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byOsServices-android.content.Context-">isLocationEnabledForScanning_byOsServices</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byRuntimePermissions-android.content.Context-">isLocationEnabledForScanning_byRuntimePermissions</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning-android.content.Context-">isLocationEnabledForScanning</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLollipop--">isLollipop</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isManufacturer-java.lang.String-">isManufacturer</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isMarshmallow--">isMarshmallow</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isNougat--">isNougat</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isOnMainThread--">isOnMainThread</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isProduct-java.lang.String-">isProduct</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isSuccess-int-">isSuccess</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#phoneHasBondingIssues--">phoneHasBondingIssues</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="toFixed-double-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toFixed</h4> +<pre>public static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toFixed(double value)</pre> +</li> +</ul> +<a name="bytesToMacAddress-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>bytesToMacAddress</h4> +<pre>public static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> bytesToMacAddress(byte[] raw)</pre> +</li> +</ul> +<a name="normalizeMacAddress-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>normalizeMacAddress</h4> +<pre>public static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> normalizeMacAddress(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</pre> +</li> +</ul> +<a name="normalizeMacAddress_replaceDelimiters-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>normalizeMacAddress_replaceDelimiters</h4> +<pre>public static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> normalizeMacAddress_replaceDelimiters(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> macAddress)</pre> +</li> +</ul> +<a name="normalizeDeviceName-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>normalizeDeviceName</h4> +<pre>public static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> normalizeDeviceName(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> deviceName)</pre> +</li> +</ul> +<a name="getStringValue-byte:A-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getStringValue</h4> +<pre>public static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getStringValue(byte[] data, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> charset)</pre> +</li> +</ul> +<a name="getStringValue-byte:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getStringValue</h4> +<pre>public static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getStringValue(byte[] data)</pre> +</li> +</ul> +<a name="makeStateString-com.idevicesinc.sweetblue.utils.State:A-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>makeStateString</h4> +<pre>public static <a href="http://d.android.com/reference/android/text/SpannableString.html?is-external=true" title="class or interface in android.text">SpannableString</a> makeStateString(<a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>[] states, + int stateMask)</pre> +</li> +</ul> +<a name="makeString-java.lang.Object...-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>makeString</h4> +<pre>public static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> makeString(<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... objects)</pre> +</li> +</ul> +<a name="toString-int-com.idevicesinc.sweetblue.utils.State:A-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>toString</h4> +<pre>public static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString(int mask, + <a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>[] values)</pre> +</li> +</ul> +<a name="toString-java.lang.Class-java.lang.Object...-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>toString</h4> +<pre>public static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> toString(<a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a><?> type, + <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>... values)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_State.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Time.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Utils_String.html" target="_top">Frames</a></li> +<li><a href="Utils_String.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_Time.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_Time.html new file mode 100644 index 0000000000000000000000000000000000000000..15eb1402e78655dee4e50aeb62e6d20229893527 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Utils_Time.html @@ -0,0 +1,299 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Utils_Time (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Utils_Time (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":9,"i3":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Utils_Time.html" target="_top">Frames</a></li> +<li><a href="Utils_Time.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class Utils_Time" class="title">Class Utils_Time</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.Utils</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.Utils_Time</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">Utils_Time</span> +extends <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></pre> +<div class="block">Utilities for dealing with time with an emphasis on BLE.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Time.html#getCurrentTime--">getCurrentTime</a></span>()</code> +<div class="block">Returns the current time as a byte array, useful for implementing <a href="../../../../com/idevicesinc/sweetblue/BleServices.html#currentTime--"><code>BleServices.currentTime()</code></a> for example.</div> +</td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Time.html#getFutureLocalTimeInfo--">getFutureLocalTimeInfo</a></span>()</code> +<div class="block"><a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><code>FutureData</code></a> wrapper of <a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Time.html#getLocalTimeInfo--"><code>getLocalTimeInfo()</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Time.html#getFutureTime--">getFutureTime</a></span>()</code> +<div class="block"><a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><code>FutureData</code></a> wrapper of <a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Time.html#getCurrentTime--"><code>getCurrentTime()</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static byte[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Time.html#getLocalTimeInfo--">getLocalTimeInfo</a></span>()</code> +<div class="block">Returns the local time info as a byte array, useful for implementing <a href="../../../../com/idevicesinc/sweetblue/BleServices.html#currentTime--"><code>BleServices.currentTime()</code></a> for example.</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.com.idevicesinc.sweetblue.utils.Utils"> +<!-- --> +</a> +<h3>Methods inherited from class com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></h3> +<code><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#contains-java.lang.Object:A-java.lang.Object-">contains</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#doForEach_break-java.lang.Object-java.util.List-">doForEach_break</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#doForEach_break-java.lang.Object-java.lang.Object-">doForEach_break</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#enforceMainThread-java.lang.String-">enforceMainThread</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#hasManifestPermission-android.content.Context-java.lang.String-">hasManifestPermission</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#hasPermission-android.content.Context-java.lang.String-">hasPermission</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#haveMatchingIds-java.util.List-java.util.Collection-">haveMatchingIds</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isKitKat--">isKitKat</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byManifestPermissions-android.content.Context-">isLocationEnabledForScanning_byManifestPermissions</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byOsServices-android.content.Context-">isLocationEnabledForScanning_byOsServices</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byRuntimePermissions-android.content.Context-">isLocationEnabledForScanning_byRuntimePermissions</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning-android.content.Context-">isLocationEnabledForScanning</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isLollipop--">isLollipop</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isManufacturer-java.lang.String-">isManufacturer</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isMarshmallow--">isMarshmallow</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isNougat--">isNougat</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isOnMainThread--">isOnMainThread</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isProduct-java.lang.String-">isProduct</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#isSuccess-int-">isSuccess</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html#phoneHasBondingIssues--">phoneHasBondingIssues</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="getFutureTime--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getFutureTime</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> getFutureTime()</pre> +<div class="block"><a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><code>FutureData</code></a> wrapper of <a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Time.html#getCurrentTime--"><code>getCurrentTime()</code></a>.</div> +</li> +</ul> +<a name="getCurrentTime--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getCurrentTime</h4> +<pre>public static byte[] getCurrentTime()</pre> +<div class="block">Returns the current time as a byte array, useful for implementing <a href="../../../../com/idevicesinc/sweetblue/BleServices.html#currentTime--"><code>BleServices.currentTime()</code></a> for example.</div> +</li> +</ul> +<a name="getFutureLocalTimeInfo--"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getFutureLocalTimeInfo</h4> +<pre>public static <a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a> getFutureLocalTimeInfo()</pre> +<div class="block"><a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><code>FutureData</code></a> wrapper of <a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Time.html#getLocalTimeInfo--"><code>getLocalTimeInfo()</code></a>.</div> +</li> +</ul> +<a name="getLocalTimeInfo--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getLocalTimeInfo</h4> +<pre>public static byte[] getLocalTimeInfo()</pre> +<div class="block">Returns the local time info as a byte array, useful for implementing <a href="../../../../com/idevicesinc/sweetblue/BleServices.html#currentTime--"><code>BleServices.currentTime()</code></a> for example.</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Utils_Time.html" target="_top">Frames</a></li> +<li><a href="Utils_Time.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/UuidNameMap.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/UuidNameMap.html new file mode 100644 index 0000000000000000000000000000000000000000..4895be98447c15216b4c5e52f9a69d430071db6e --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/UuidNameMap.html @@ -0,0 +1,231 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>UuidNameMap (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="UuidNameMap (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":6}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Time.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/UuidNameMap.html" target="_top">Frames</a></li> +<li><a href="UuidNameMap.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Interface UuidNameMap" class="title">Interface UuidNameMap</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Known Implementing Classes:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils">BasicUuidNameMap</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils">ReflectionUuidNameMap</a>, <a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html" title="class in com.idevicesinc.sweetblue.utils">UuidNameMap_ListWrapper</a></dd> +</dl> +<hr> +<br> +<pre>public interface <span class="typeNameLabel">UuidNameMap</span></pre> +<div class="block">Provide an implementation to <a href="../../../../com/idevicesinc/sweetblue/BleManagerConfig.html#uuidNameMaps"><code>BleManagerConfig.uuidNameMaps</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/BleManagerConfig.html#uuidNameMaps"><code>BleManagerConfig.uuidNameMaps</code></a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html#getUuidName-java.lang.String-">getUuidName</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuid)</code> +<div class="block">Returns the name of the <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> to be used for logging/debugging purposes, for example "BATTERY_LEVEL".</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="getUuidName-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getUuidName</h4> +<pre><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getUuidName(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuid)</pre> +<div class="block">Returns the name of the <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> to be used for logging/debugging purposes, for example "BATTERY_LEVEL".</div> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Time.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/UuidNameMap.html" target="_top">Frames</a></li> +<li><a href="UuidNameMap.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li>Constr | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html new file mode 100644 index 0000000000000000000000000000000000000000..53b44673916df58879174e60b2f97d96c177c2ec --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html @@ -0,0 +1,295 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>UuidNameMap_ListWrapper (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="UuidNameMap_ListWrapper (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":10}; +var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html" target="_top">Frames</a></li> +<li><a href="UuidNameMap_ListWrapper.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class UuidNameMap_ListWrapper" class="title">Class UuidNameMap_ListWrapper</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.UuidNameMap_ListWrapper</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">UuidNameMap_ListWrapper</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> +implements <a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a></pre> +<div class="block">Convenience implementation that wraps a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> of other <a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UuidNameMap</code></a> instances.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html#UuidNameMap_ListWrapper--">UuidNameMap_ListWrapper</a></span>()</code> </td> +</tr> +<tr class="rowColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html#UuidNameMap_ListWrapper-java.util.List-">UuidNameMap_ListWrapper</a></span>(<a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a>> maps)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code><a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html#getUuidName-java.lang.String-">getUuidName</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuid)</code> +<div class="block">Returns the name of the <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> to be used for logging/debugging purposes, for example "BATTERY_LEVEL".</div> +</td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="UuidNameMap_ListWrapper-java.util.List-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>UuidNameMap_ListWrapper</h4> +<pre>public UuidNameMap_ListWrapper(<a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a>> maps)</pre> +</li> +</ul> +<a name="UuidNameMap_ListWrapper--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>UuidNameMap_ListWrapper</h4> +<pre>public UuidNameMap_ListWrapper()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="getUuidName-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>getUuidName</h4> +<pre>public <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> getUuidName(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuid)</pre> +<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html#getUuidName-java.lang.String-">UuidNameMap</a></code></span></div> +<div class="block">Returns the name of the <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> to be used for logging/debugging purposes, for example "BATTERY_LEVEL".</div> +<dl> +<dt><span class="overrideSpecifyLabel">Specified by:</span></dt> +<dd><code><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html#getUuidName-java.lang.String-">getUuidName</a></code> in interface <code><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a></code></dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html" target="_top">Frames</a></li> +<li><a href="UuidNameMap_ListWrapper.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Uuids.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Uuids.html new file mode 100644 index 0000000000000000000000000000000000000000..3ae81f684fd3d76c0706928c9d7c54c1b0f09e79 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/Uuids.html @@ -0,0 +1,836 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>Uuids (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Uuids (SweetBlue)"; + } + } + catch(err) { + } +//--> +var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9,"i8":9,"i9":9,"i10":9,"i11":9,"i12":9}; +var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]}; +var altColor = "altColor"; +var rowColor = "rowColor"; +var tableTab = "tableTab"; +var activeTableTab = "activeTableTab"; +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/WrongThreadError.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Uuids.html" target="_top">Frames</a></li> +<li><a href="Uuids.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class Uuids" class="title">Class Uuids</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.Uuids</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>public class <span class="typeNameLabel">Uuids</span> +extends <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre> +<div class="block">A collection of standard <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>s for services, characteristics, and descriptors. + Some convenience methods for creating <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>s also.</div> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== FIELD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.summary"> +<!-- --> +</a> +<h3>Field Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation"> +<caption><span>Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Field and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#BATTERY_LEVEL">BATTERY_LEVEL</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#BATTERY_SERVICE_UUID">BATTERY_SERVICE_UUID</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>protected static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#BLUETOOTH_CONNECTED_HASH">BLUETOOTH_CONNECTED_HASH</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#CHARACTERISTIC_PRESENTATION_FORMAT_DESCRIPTOR_UUID">CHARACTERISTIC_PRESENTATION_FORMAT_DESCRIPTOR_UUID</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#CHARACTERISTIC_USER_DESCRIPTION_DESCRIPTOR_UUID">CHARACTERISTIC_USER_DESCRIPTION_DESCRIPTOR_UUID</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID">CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#CURRENT_TIME_SERVICE">CURRENT_TIME_SERVICE</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#CURRENT_TIME_SERVICE__CURRENT_TIME">CURRENT_TIME_SERVICE__CURRENT_TIME</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#CURRENT_TIME_SERVICE__LOCAL_TIME_INFO">CURRENT_TIME_SERVICE__LOCAL_TIME_INFO</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#DEVICE_INFORMATION_SERVICE_UUID">DEVICE_INFORMATION_SERVICE_UUID</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[]</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#DEVICE_INFORMATION_UUIDS">DEVICE_INFORMATION_UUIDS</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#DEVICE_NAME">DEVICE_NAME</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#FIRMWARE_REVISION">FIRMWARE_REVISION</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#GENERIC_ACCESS_SERVICE_UUID">GENERIC_ACCESS_SERVICE_UUID</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#GENERIC_ATTRIBUTES_SERVICE_UUID">GENERIC_ATTRIBUTES_SERVICE_UUID</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#HARDWARE_REVISION">HARDWARE_REVISION</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#INVALID">INVALID</a></span></code> +<div class="block">A <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> instance composed of all zeros and used instead of <code>null</code> in various places.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#MANUFACTURER_NAME">MANUFACTURER_NAME</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#MODEL_NUMBER">MODEL_NUMBER</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#SERIAL_NUMBER">SERIAL_NUMBER</a></span></code> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#SOFTWARE_REVISION">SOFTWARE_REVISION</a></span></code> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#STANDARD_UUID_TEMPLATE">STANDARD_UUID_TEMPLATE</a></span></code> +<div class="block">The template for standard services, characteristics, and descriptors - see <a href="https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx">https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx</a> + This is used to generate some of the other static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> instances in this class using <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-java.lang.String-java.lang.String-"><code>fromShort(String, String)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#SYSTEM_ID">SYSTEM_ID</a></span></code> </td> +</tr> +</table> +</li> +</ul> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#Uuids--">Uuids</a></span>()</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> +<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Method and Description</th> +</tr> +<tr id="i0" class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromInt-int-">fromInt</a></span>(int assignedNumber)</code> </td> +</tr> +<tr id="i1" class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromInt-int-java.lang.String-">fromInt</a></span>(int assignedNumber, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuidTemplate)</code> +<div class="block">Convenience overload of <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromInt-java.lang.String-java.lang.String-"><code>fromInt(String, String)</code></a>.</div> +</td> +</tr> +<tr id="i2" class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromInt-java.lang.String-">fromInt</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> assignedNumber)</code> +<div class="block">Convenience overload of <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromInt-java.lang.String-java.lang.String-"><code>fromInt(String, String)</code></a> that uses <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#STANDARD_UUID_TEMPLATE"><code>STANDARD_UUID_TEMPLATE</code></a>.</div> +</td> +</tr> +<tr id="i3" class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromInt-java.lang.String-java.lang.String-">fromInt</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> assignedNumber, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuidTemplate)</code> +<div class="block">Replaces the characters at indices 0-7 (inclusive) of <code>uuidTemplate</code> with the + <code>assignedNumber</code> parameter and returns the resulting <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> using <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true#fromString-java.lang.String-" title="class or interface in java.util"><code>UUID.fromString(String)</code></a>.</div> +</td> +</tr> +<tr id="i4" class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-int-">fromShort</a></span>(int assignedNumber)</code> +<div class="block">Overload of <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-short-"><code>fromShort(short)</code></a> so you don't have to downcast hardcoded integers yourself.</div> +</td> +</tr> +<tr id="i5" class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-int-java.lang.String-">fromShort</a></span>(int assignedNumber, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuidTemplate)</code> +<div class="block">Convenience overload of <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-short-java.lang.String-"><code>fromShort(short, String)</code></a> so you don't + have to downcast hardcoded integers yourself.</div> +</td> +</tr> +<tr id="i6" class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-short-">fromShort</a></span>(short assignedNumber)</code> +<div class="block">Convenience overload of <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-short-java.lang.String-"><code>fromShort(short, String)</code></a> that uses <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#STANDARD_UUID_TEMPLATE"><code>STANDARD_UUID_TEMPLATE</code></a>.</div> +</td> +</tr> +<tr id="i7" class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-short-java.lang.String-">fromShort</a></span>(short assignedNumber, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuidTemplate)</code> +<div class="block">Convenience overload of <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-java.lang.String-java.lang.String-"><code>fromShort(String, String)</code></a> that converts the given + short to a <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> hex representation.</div> +</td> +</tr> +<tr id="i8" class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-java.lang.String-">fromShort</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> assignedNumber)</code> +<div class="block">Convenience overload of <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-java.lang.String-java.lang.String-"><code>fromShort(String, String)</code></a> that uses <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#STANDARD_UUID_TEMPLATE"><code>STANDARD_UUID_TEMPLATE</code></a>.</div> +</td> +</tr> +<tr id="i9" class="rowColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-java.lang.String-java.lang.String-">fromShort</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> assignedNumber, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuidTemplate)</code> +<div class="block">Replaces the characters at indices 4, 5, 6, and 7 of <code>uuidTemplate</code> with the + <code>assignedNumber</code> parameter and returns the resulting <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> using <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true#fromString-java.lang.String-" title="class or interface in java.util"><code>UUID.fromString(String)</code></a>.</div> +</td> +</tr> +<tr id="i10" class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromString-java.lang.String-">fromString</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> value)</code> +<div class="block">Convenience forwarding of <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true#fromString-java.lang.String-" title="class or interface in java.util"><code>UUID.fromString(String)</code></a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-java.lang.String-"><code>fromShort(String)</code></a>, or <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromInt-java.lang.String-"><code>fromInt(String)</code></a> depending on the length of string given.</div> +</td> +</tr> +<tr id="i11" class="rowColor"> +<td class="colFirst"><code>static int</code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#getInt-java.util.UUID-">getInt</a></span>(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</code> +<div class="block">Parses the first 8 characters of the string representations of the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> as an integer hex string.</div> +</td> +</tr> +<tr id="i12" class="altColor"> +<td class="colFirst"><code>static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td> +<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#random--">random</a></span>()</code> </td> +</tr> +</table> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ FIELD DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="field.detail"> +<!-- --> +</a> +<h3>Field Detail</h3> +<a name="INVALID"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>INVALID</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> INVALID</pre> +<div class="block">A <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> instance composed of all zeros and used instead of <code>null</code> in various places.</div> +</li> +</ul> +<a name="STANDARD_UUID_TEMPLATE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>STANDARD_UUID_TEMPLATE</h4> +<pre>public static final <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> STANDARD_UUID_TEMPLATE</pre> +<div class="block">The template for standard services, characteristics, and descriptors - see <a href="https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx">https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx</a> + This is used to generate some of the other static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> instances in this class using <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-java.lang.String-java.lang.String-"><code>fromShort(String, String)</code></a>.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../constant-values.html#com.idevicesinc.sweetblue.utils.Uuids.STANDARD_UUID_TEMPLATE">Constant Field Values</a></dd> +</dl> +</li> +</ul> +<a name="GENERIC_ATTRIBUTES_SERVICE_UUID"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GENERIC_ATTRIBUTES_SERVICE_UUID</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> GENERIC_ATTRIBUTES_SERVICE_UUID</pre> +</li> +</ul> +<a name="GENERIC_ACCESS_SERVICE_UUID"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>GENERIC_ACCESS_SERVICE_UUID</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> GENERIC_ACCESS_SERVICE_UUID</pre> +</li> +</ul> +<a name="DEVICE_INFORMATION_SERVICE_UUID"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEVICE_INFORMATION_SERVICE_UUID</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> DEVICE_INFORMATION_SERVICE_UUID</pre> +</li> +</ul> +<a name="BATTERY_SERVICE_UUID"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BATTERY_SERVICE_UUID</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> BATTERY_SERVICE_UUID</pre> +</li> +</ul> +<a name="DEVICE_NAME"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEVICE_NAME</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> DEVICE_NAME</pre> +</li> +</ul> +<a name="BATTERY_LEVEL"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>BATTERY_LEVEL</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> BATTERY_LEVEL</pre> +</li> +</ul> +<a name="MANUFACTURER_NAME"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>MANUFACTURER_NAME</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> MANUFACTURER_NAME</pre> +</li> +</ul> +<a name="MODEL_NUMBER"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>MODEL_NUMBER</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> MODEL_NUMBER</pre> +</li> +</ul> +<a name="SERIAL_NUMBER"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SERIAL_NUMBER</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> SERIAL_NUMBER</pre> +</li> +</ul> +<a name="HARDWARE_REVISION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>HARDWARE_REVISION</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> HARDWARE_REVISION</pre> +</li> +</ul> +<a name="FIRMWARE_REVISION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>FIRMWARE_REVISION</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> FIRMWARE_REVISION</pre> +</li> +</ul> +<a name="SOFTWARE_REVISION"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SOFTWARE_REVISION</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> SOFTWARE_REVISION</pre> +</li> +</ul> +<a name="SYSTEM_ID"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>SYSTEM_ID</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> SYSTEM_ID</pre> +</li> +</ul> +<a name="DEVICE_INFORMATION_UUIDS"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>DEVICE_INFORMATION_UUIDS</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>[] DEVICE_INFORMATION_UUIDS</pre> +</li> +</ul> +<a name="CURRENT_TIME_SERVICE"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CURRENT_TIME_SERVICE</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> CURRENT_TIME_SERVICE</pre> +</li> +</ul> +<a name="CURRENT_TIME_SERVICE__CURRENT_TIME"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CURRENT_TIME_SERVICE__CURRENT_TIME</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> CURRENT_TIME_SERVICE__CURRENT_TIME</pre> +</li> +</ul> +<a name="CURRENT_TIME_SERVICE__LOCAL_TIME_INFO"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CURRENT_TIME_SERVICE__LOCAL_TIME_INFO</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> CURRENT_TIME_SERVICE__LOCAL_TIME_INFO</pre> +</li> +</ul> +<a name="CHARACTERISTIC_USER_DESCRIPTION_DESCRIPTOR_UUID"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CHARACTERISTIC_USER_DESCRIPTION_DESCRIPTOR_UUID</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> CHARACTERISTIC_USER_DESCRIPTION_DESCRIPTOR_UUID</pre> +</li> +</ul> +<a name="CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID</pre> +</li> +</ul> +<a name="CHARACTERISTIC_PRESENTATION_FORMAT_DESCRIPTOR_UUID"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>CHARACTERISTIC_PRESENTATION_FORMAT_DESCRIPTOR_UUID</h4> +<pre>public static final <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> CHARACTERISTIC_PRESENTATION_FORMAT_DESCRIPTOR_UUID</pre> +</li> +</ul> +<a name="BLUETOOTH_CONNECTED_HASH"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>BLUETOOTH_CONNECTED_HASH</h4> +<pre>protected static final <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> BLUETOOTH_CONNECTED_HASH</pre> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../constant-values.html#com.idevicesinc.sweetblue.utils.Uuids.BLUETOOTH_CONNECTED_HASH">Constant Field Values</a></dd> +</dl> +</li> +</ul> +</li> +</ul> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="Uuids--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>Uuids</h4> +<pre>public Uuids()</pre> +</li> +</ul> +</li> +</ul> +<!-- ============ METHOD DETAIL ========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.detail"> +<!-- --> +</a> +<h3>Method Detail</h3> +<a name="fromShort-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromShort</h4> +<pre>public static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> fromShort(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> assignedNumber)</pre> +<div class="block">Convenience overload of <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-java.lang.String-java.lang.String-"><code>fromShort(String, String)</code></a> that uses <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#STANDARD_UUID_TEMPLATE"><code>STANDARD_UUID_TEMPLATE</code></a>. + For example to create the battery level characteristic you would call + <code><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><code>Uuids</code></a>.fromShort("180f")</code>.</div> +</li> +</ul> +<a name="fromShort-short-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromShort</h4> +<pre>public static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> fromShort(short assignedNumber)</pre> +<div class="block">Convenience overload of <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-short-java.lang.String-"><code>fromShort(short, String)</code></a> that uses <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#STANDARD_UUID_TEMPLATE"><code>STANDARD_UUID_TEMPLATE</code></a>. + For example to create the battery level characteristic you would call + <code><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><code>Uuids</code></a>.fromShort((short)0x180f)</code>.</div> +</li> +</ul> +<a name="fromShort-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromShort</h4> +<pre>public static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> fromShort(int assignedNumber)</pre> +<div class="block">Overload of <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-short-"><code>fromShort(short)</code></a> so you don't have to downcast hardcoded integers yourself.</div> +</li> +</ul> +<a name="fromShort-short-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromShort</h4> +<pre>public static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> fromShort(short assignedNumber, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuidTemplate)</pre> +<div class="block">Convenience overload of <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-java.lang.String-java.lang.String-"><code>fromShort(String, String)</code></a> that converts the given + short to a <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> hex representation. + For example to create the battery level characteristic you would call + <code><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><code>Uuids</code></a>.fromShort((short)0x180f, <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#STANDARD_UUID_TEMPLATE"><code>STANDARD_UUID_TEMPLATE</code></a>)</code>.</div> +</li> +</ul> +<a name="fromShort-int-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromShort</h4> +<pre>public static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> fromShort(int assignedNumber, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuidTemplate)</pre> +<div class="block">Convenience overload of <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-short-java.lang.String-"><code>fromShort(short, String)</code></a> so you don't + have to downcast hardcoded integers yourself.</div> +</li> +</ul> +<a name="fromShort-java.lang.String-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromShort</h4> +<pre>public static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> fromShort(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> assignedNumber, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuidTemplate)</pre> +<div class="block">Replaces the characters at indices 4, 5, 6, and 7 of <code>uuidTemplate</code> with the + <code>assignedNumber</code> parameter and returns the resulting <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> using <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true#fromString-java.lang.String-" title="class or interface in java.util"><code>UUID.fromString(String)</code></a>.</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>assignedNumber</code> - A <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> of length <= 4 as the hex representation of a 2-byte (short) value, for example "2a19".</dd> +<dd><code>uuidTemplate</code> - See <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#STANDARD_UUID_TEMPLATE"><code>STANDARD_UUID_TEMPLATE</code></a> for an example.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#INVALID"><code>INVALID</code></a> if there's any issue, otherwise a valid <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</dd> +</dl> +</li> +</ul> +<a name="fromInt-int-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromInt</h4> +<pre>public static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> fromInt(int assignedNumber)</pre> +</li> +</ul> +<a name="fromInt-int-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromInt</h4> +<pre>public static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> fromInt(int assignedNumber, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuidTemplate)</pre> +<div class="block">Convenience overload of <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromInt-java.lang.String-java.lang.String-"><code>fromInt(String, String)</code></a>.</div> +</li> +</ul> +<a name="fromInt-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromInt</h4> +<pre>public static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> fromInt(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> assignedNumber)</pre> +<div class="block">Convenience overload of <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromInt-java.lang.String-java.lang.String-"><code>fromInt(String, String)</code></a> that uses <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#STANDARD_UUID_TEMPLATE"><code>STANDARD_UUID_TEMPLATE</code></a>.</div> +</li> +</ul> +<a name="fromInt-java.lang.String-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromInt</h4> +<pre>public static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> fromInt(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> assignedNumber, + <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> uuidTemplate)</pre> +<div class="block">Replaces the characters at indices 0-7 (inclusive) of <code>uuidTemplate</code> with the + <code>assignedNumber</code> parameter and returns the resulting <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> using <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true#fromString-java.lang.String-" title="class or interface in java.util"><code>UUID.fromString(String)</code></a>.</div> +<dl> +<dt><span class="paramLabel">Parameters:</span></dt> +<dd><code>assignedNumber</code> - A <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> of length <= 8 as the hex representation of a 4-byte (int) value, for example "12630102".</dd> +<dd><code>uuidTemplate</code> - See <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#STANDARD_UUID_TEMPLATE"><code>STANDARD_UUID_TEMPLATE</code></a> for an example.</dd> +<dt><span class="returnLabel">Returns:</span></dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#INVALID"><code>INVALID</code></a> if there's any issue, otherwise a valid <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</dd> +</dl> +</li> +</ul> +<a name="fromString-java.lang.String-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>fromString</h4> +<pre>public static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> fromString(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> value)</pre> +<div class="block">Convenience forwarding of <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true#fromString-java.lang.String-" title="class or interface in java.util"><code>UUID.fromString(String)</code></a>, <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-java.lang.String-"><code>fromShort(String)</code></a>, or <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html#fromInt-java.lang.String-"><code>fromInt(String)</code></a> depending on the length of string given.</div> +</li> +</ul> +<a name="getInt-java.util.UUID-"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>getInt</h4> +<pre>public static int getInt(<a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> uuid)</pre> +<div class="block">Parses the first 8 characters of the string representations of the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> as an integer hex string.</div> +</li> +</ul> +<a name="random--"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>random</h4> +<pre>public static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a> random()</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/WrongThreadError.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/Uuids.html" target="_top">Frames</a></li> +<li><a href="Uuids.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li><a href="#field.summary">Field</a> | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#method.summary">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#field.detail">Field</a> | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li><a href="#method.detail">Method</a></li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/WrongThreadError.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/WrongThreadError.html new file mode 100644 index 0000000000000000000000000000000000000000..ad41b9c6e79982341f8f94daede9c737f584a15c --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/WrongThreadError.html @@ -0,0 +1,264 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:05 EST 2017 --> +<title>WrongThreadError (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="WrongThreadError (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li>Next Class</li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/WrongThreadError.html" target="_top">Frames</a></li> +<li><a href="WrongThreadError.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.java.lang.Throwable">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.idevicesinc.sweetblue.utils</div> +<h2 title="Class WrongThreadError" class="title">Class WrongThreadError</h2> +</div> +<div class="contentContainer"> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li> +<li> +<ul class="inheritance"> +<li><a href="http://d.android.com/reference/java/lang/Error.html?is-external=true" title="class or interface in java.lang">java.lang.Error</a></li> +<li> +<ul class="inheritance"> +<li>com.idevicesinc.sweetblue.utils.WrongThreadError</li> +</ul> +</li> +</ul> +</li> +</ul> +</li> +</ul> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<dl> +<dt>All Implemented Interfaces:</dt> +<dd><a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd> +</dl> +<hr> +<br> +<pre>public class <span class="typeNameLabel">WrongThreadError</span> +extends <a href="http://d.android.com/reference/java/lang/Error.html?is-external=true" title="class or interface in java.lang">Error</a></pre> +<div class="block">Most of the methods of core SweetBlue classes like <a href="../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>, <a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>, and <a href="../../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> + must be called from the main thread, similar to how Android will complain if you try to edit a <a href="http://d.android.com/reference/android/view/View.html?is-external=true" title="class or interface in android.view"><code>View</code></a> + from another thread.</div> +<dl> +<dt><span class="seeLabel">See Also:</span></dt> +<dd><a href="../../../../com/idevicesinc/sweetblue/BleNodeConfig.html#allowCallsFromAllThreads"><code>BleNodeConfig.allowCallsFromAllThreads</code></a>, +<a href="../../../../serialized-form.html#com.idevicesinc.sweetblue.utils.WrongThreadError">Serialized Form</a></dd> +</dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- ======== CONSTRUCTOR SUMMARY ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.summary"> +<!-- --> +</a> +<h3>Constructor Summary</h3> +<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> +<caption><span>Constructors</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Constructor and Description</th> +</tr> +<tr class="altColor"> +<td class="colOne"><code><span class="memberNameLink"><a href="../../../../com/idevicesinc/sweetblue/utils/WrongThreadError.html#WrongThreadError-java.lang.String-">WrongThreadError</a></span>(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> message)</code> </td> +</tr> +</table> +</li> +</ul> +<!-- ========== METHOD SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="method.summary"> +<!-- --> +</a> +<h3>Method Summary</h3> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://d.android.com/reference/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://d.android.com/reference/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://d.android.com/reference/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://d.android.com/reference/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://d.android.com/reference/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://d.android.com/reference/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://d.android.com/reference/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://d.android.com/reference/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://d.android.com/reference/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://d.android.com/reference/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://d.android.com/reference/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://d.android.com/reference/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li> +</ul> +<ul class="blockList"> +<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> +<!-- --> +</a> +<h3>Methods inherited from class java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3> +<code><a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://d.android.com/reference/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ========= CONSTRUCTOR DETAIL ======== --> +<ul class="blockList"> +<li class="blockList"><a name="constructor.detail"> +<!-- --> +</a> +<h3>Constructor Detail</h3> +<a name="WrongThreadError-java.lang.String-"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>WrongThreadError</h4> +<pre>public WrongThreadError(<a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> message)</pre> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Prev Class</span></a></li> +<li>Next Class</li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/WrongThreadError.html" target="_top">Frames</a></li> +<li><a href="WrongThreadError.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Nested | </li> +<li>Field | </li> +<li><a href="#constructor.summary">Constr</a> | </li> +<li><a href="#methods.inherited.from.class.java.lang.Throwable">Method</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li>Field | </li> +<li><a href="#constructor.detail">Constr</a> | </li> +<li>Method</li> +</ul> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/package-frame.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/package-frame.html new file mode 100644 index 0000000000000000000000000000000000000000..9e58b3db46101abd4eb829e79a32272d074204a0 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/package-frame.html @@ -0,0 +1,90 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>com.idevicesinc.sweetblue.utils (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<h1 class="bar"><a href="../../../../com/idevicesinc/sweetblue/utils/package-summary.html" target="classFrame">com.idevicesinc.sweetblue.utils</a></h1> +<div class="indexContainer"> +<h2 title="Interfaces">Interfaces</h2> +<ul title="Interfaces"> +<li><a href="BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">BitwiseEnum</span></a></li> +<li><a href="BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">BluetoothEnabler.BluetoothEnablerFilter</span></a></li> +<li><a href="ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">ForEach_Breakable</span></a></li> +<li><a href="ForEach_Returning.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">ForEach_Returning</span></a></li> +<li><a href="ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">ForEach_Void</span></a></li> +<li><a href="FutureData.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">FutureData</span></a></li> +<li><a href="GenericListener_Void.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">GenericListener_Void</span></a></li> +<li><a href="HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">HistoricalDataCursor</span></a></li> +<li><a href="State.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">State</span></a></li> +<li><a href="UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">UsesCustomNull</span></a></li> +<li><a href="UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils" target="classFrame"><span class="interfaceName">UuidNameMap</span></a></li> +</ul> +<h2 title="Classes">Classes</h2> +<ul title="Classes"> +<li><a href="BasicUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">BasicUuidNameMap</a></li> +<li><a href="BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">BleScanInfo</a></li> +<li><a href="BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">BluetoothEnabler</a></li> +<li><a href="BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a></li> +<li><a href="BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">BluetoothEnabler.BluetoothEnablerFilter.Please</a></li> +<li><a href="BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">BluetoothEnabler.DefaultBluetoothEnablerFilter</a></li> +<li><a href="DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">DebugLogger</a></li> +<li><a href="Distance.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Distance</a></li> +<li><a href="EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">EmptyCursor</a></li> +<li><a href="EmptyIterator.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">EmptyIterator</a></li> +<li><a href="EpochTime.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">EpochTime</a></li> +<li><a href="EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">EpochTimeRange</a></li> +<li><a href="Event.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Event</a></li> +<li><a href="EventQueue.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">EventQueue</a></li> +<li><a href="ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">ForEach_Breakable.Please</a></li> +<li><a href="HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalData</a></li> +<li><a href="HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery</a></li> +<li><a href="HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery.Part</a></li> +<li><a href="HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery.Part_AllowsFrom</a></li> +<li><a href="HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery.Part_AllowsSelectColumn</a></li> +<li><a href="HistoricalDataQuery.Part_ClauseColumn.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery.Part_ClauseColumn</a></li> +<li><a href="HistoricalDataQuery.Part_From.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery.Part_From</a></li> +<li><a href="HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery.Part_Function</a></li> +<li><a href="HistoricalDataQuery.Part_Select.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery.Part_Select</a></li> +<li><a href="HistoricalDataQuery.Part_SelectColumn.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery.Part_SelectColumn</a></li> +<li><a href="HistoricalDataQuery.Part_Where.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataQuery.Part_Where</a></li> +<li><a href="Interval.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Interval</a></li> +<li><a href="Percent.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Percent</a></li> +<li><a href="Pointer.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Pointer</a></li> +<li><a href="PresentData.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">PresentData</a></li> +<li><a href="ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">ReflectionUuidNameMap</a></li> +<li><a href="SingleElementIterator.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">SingleElementIterator</a></li> +<li><a href="State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">State.ChangeEvent</a></li> +<li><a href="TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">TimeEstimator</a></li> +<li><a href="Unit.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Unit</a></li> +<li><a href="UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">UpdateLoop</a></li> +<li><a href="Utils.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Utils</a></li> +<li><a href="Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Utils_Byte</a></li> +<li><a href="Utils_Reflection.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Utils_Reflection</a></li> +<li><a href="Utils_Rssi.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Utils_Rssi</a></li> +<li><a href="Utils_ScanRecord.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Utils_ScanRecord</a></li> +<li><a href="Utils_State.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Utils_State</a></li> +<li><a href="Utils_String.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Utils_String</a></li> +<li><a href="Utils_Time.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Utils_Time</a></li> +<li><a href="UuidNameMap_ListWrapper.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">UuidNameMap_ListWrapper</a></li> +<li><a href="Uuids.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">Uuids</a></li> +</ul> +<h2 title="Enums">Enums</h2> +<ul title="Enums"> +<li><a href="BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils" target="classFrame">BluetoothEnabler.BluetoothEnablerFilter.Stage</a></li> +<li><a href="BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils" target="classFrame">BluetoothEnabler.BluetoothEnablerFilter.Status</a></li> +<li><a href="HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils" target="classFrame">HistoricalDataColumn</a></li> +<li><a href="State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils" target="classFrame">State.ChangeIntent</a></li> +</ul> +<h2 title="Errors">Errors</h2> +<ul title="Errors"> +<li><a href="WrongThreadError.html" title="class in com.idevicesinc.sweetblue.utils" target="classFrame">WrongThreadError</a></li> +</ul> +</div> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/package-summary.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/package-summary.html new file mode 100644 index 0000000000000000000000000000000000000000..cc0052f64ae6321c8dc964931ee5eaa175b62131 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/package-summary.html @@ -0,0 +1,533 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>com.idevicesinc.sweetblue.utils (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="com.idevicesinc.sweetblue.utils (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li class="navBarCell1Rev">Package</li> +<li>Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/package-summary.html">Prev Package</a></li> +<li>Next Package</li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/package-summary.html" target="_top">Frames</a></li> +<li><a href="package-summary.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 title="Package" class="title">Package com.idevicesinc.sweetblue.utils</h1> +<div class="docSummary"> +<div class="block">Contains a few optional utilities that you may find useful, but nothing in here is a core part of the library as far as the library user is concerned.</div> +</div> +<p>See: <a href="#package.description">Description</a></p> +</div> +<div class="contentContainer"> +<ul class="blockList"> +<li class="blockList"> +<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation"> +<caption><span>Interface Summary</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Interface</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></td> +<td class="colLast"> +<div class="block">Contract to force <code>enum</code> implementors to comply to common bitwise operations.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter</a></td> +<td class="colLast"> +<div class="block">Provide an implementation to <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#BluetoothEnabler-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-"><code>BluetoothEnabler.BluetoothEnabler(Activity, BluetoothEnablerFilter)</code></a> to receive callbacks or simply use the provided class + <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.DefaultBluetoothEnablerFilter</code></a> by calling <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-"><code>BluetoothEnabler.start(Activity)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a><T></td> +<td class="colLast"> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Returning</a><T></td> +<td class="colLast"> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a><T></td> +<td class="colLast"> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a></td> +<td class="colLast"> +<div class="block">A simple interface whose implementations should be passed to methods like <a href="../../../../com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-"><code>BleDevice.write(UUID, FutureData)</code></a> + so you can provide time-sensitive data at the last possible moment.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="interface in com.idevicesinc.sweetblue.utils">GenericListener_Void</a><T_Event extends <a href="../../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a>></td> +<td class="colLast"> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></td> +<td class="colLast"> +<div class="block">This interface defines a wrapper around a database cursor (similar to <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database"><code>Cursor</code></a>) + specific to a database representing a series of <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> serializations.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></td> +<td class="colLast"> +<div class="block">Bitwise enum contract for representing the state of devices and managers.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></td> +<td class="colLast"> +<div class="block">Interface implemented by some enums and mostly other <a href="../../../../com/idevicesinc/sweetblue/annotations/Immutable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><code>Immutable</code></a> structs + that have custom "null" behavior in place of Java's built-in <code>null</code>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a></td> +<td class="colLast"> +<div class="block">Provide an implementation to <a href="../../../../com/idevicesinc/sweetblue/BleManagerConfig.html#uuidNameMaps"><code>BleManagerConfig.uuidNameMaps</code></a>.</div> +</td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation"> +<caption><span>Class Summary</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Class</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils">BasicUuidNameMap</a></td> +<td class="colLast"> +<div class="block">Manual convenience implementation of <a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UuidNameMap</code></a> that's basically just a <a href="http://d.android.com/reference/java/util/HashMap.html?is-external=true" title="class or interface in java.util"><code>HashMap</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a></td> +<td class="colLast"> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></td> +<td class="colLast"> +<div class="block">This class is used to handle the new hairy logic for getting bluetooth low-energy scan results that is introduced with <a href="http://d.android.com/reference/android/os/Build.VERSION_CODES.html?is-external=true#M" title="class or interface in android.os"><code>Build.VERSION_CODES.M</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a></td> +<td class="colLast"> +<div class="block">Events passed to <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html#onEvent-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent-"><code>BluetoothEnabler.BluetoothEnablerFilter.onEvent(BluetoothEnablerEvent)</code></a> so that the programmer can assign logic to the user's decision to + enable or disable certain required permissions and settings.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></td> +<td class="colLast"> +<div class="block">Return value for the interface method <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html#onEvent-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent-"><code>BluetoothEnabler.BluetoothEnablerFilter.onEvent(BluetoothEnablerEvent)</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.DefaultBluetoothEnablerFilter</a></td> +<td class="colLast"> +<div class="block">A default implementation of BluetoothEnablerListener used in <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-"><code>BluetoothEnabler.start(Activity)</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils">DebugLogger</a></td> +<td class="colLast"> +<div class="block">Logger class which prints SweetBlue logs to Android's logcat.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></td> +<td class="colLast"> +<div class="block">Wrapper for a positive-only physical distance supporting various units of measurement.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></td> +<td class="colLast"> +<div class="block">An implementation of <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database"><code>Cursor</code></a> used for error conditions and things like that where we don't want to return null.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="class in com.idevicesinc.sweetblue.utils">EmptyIterator</a><T></td> +<td class="colLast"> +<div class="block">Convenience class for implementing an <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util"><code>Iterator</code></a> with no elements.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></td> +<td class="colLast"> +<div class="block">A class fulfilling a similar role to Java's built-in <a href="http://d.android.com/reference/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a>, i.e.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></td> +<td class="colLast"> +<div class="block">Class representing a range of time between two instances of <a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils"><code>EpochTime</code></a>.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></td> +<td class="colLast"> +<div class="block">Abstract base class for all events in SweetBlue, e.g.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/EventQueue.html" title="class in com.idevicesinc.sweetblue.utils">EventQueue</a></td> +<td class="colLast"> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils">ForEach_Breakable.Please</a></td> +<td class="colLast"> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></td> +<td class="colLast"> +<div class="block">Simple struct wrapping arbitrary blob data as a byte array along with an epoch timestamp + marking when the blob was originally created/collected.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></td> +<td class="colLast"> +<div class="block">Class used to construct queries for <a href="../../../../com/idevicesinc/sweetblue/BleNode.html#select--"><code>BleNode.select()</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part</a></td> +<td class="colLast"> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsFrom</a></td> +<td class="colLast"> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsSelectColumn</a></td> +<td class="colLast"> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_ClauseColumn</a></td> +<td class="colLast"> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_From.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_From</a></td> +<td class="colLast"> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Function</a></td> +<td class="colLast"> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Select</a></td> +<td class="colLast"> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_SelectColumn</a></td> +<td class="colLast"> </td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Where</a></td> +<td class="colLast"> </td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></td> +<td class="colLast"> +<div class="block">Used to set time-based options in <a href="../../../../com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> and <a href="../../../../com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> and + for various methods and callbacks of <a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> and <a href="../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></td> +<td class="colLast"> +<div class="block">Wrapper for a percentage value, generally from 0-100%;</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils">Pointer</a><T></td> +<td class="colLast"> +<div class="block">Provides a way to be able to change a value declared in the outer scope of an anonymous inline class.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/PresentData.html" title="class in com.idevicesinc.sweetblue.utils">PresentData</a></td> +<td class="colLast"> +<div class="block">Simple dummy implementation of <a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><code>FutureData</code></a> that just returns whatever is passed into the constructor.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils">ReflectionUuidNameMap</a></td> +<td class="colLast"> +<div class="block">Convenience implementation of <a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UuidNameMap</code></a> that takes a <a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang"><code>Class</code></a> object + and through reflection attempts to parse out all the static UUID members, for example + on <a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><code>Uuids</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="class in com.idevicesinc.sweetblue.utils">SingleElementIterator</a><T></td> +<td class="colLast"> +<div class="block">Convenience class for implementing an <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util"><code>Iterator</code></a> with a single element.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a><T_State extends <a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>></td> +<td class="colLast"> +<div class="block">Abstract base class for <a href="../../../../com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.StateListener.StateEvent</code></a> and <a href="../../../../com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleManager.StateListener.StateEvent</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils">TimeEstimator</a></td> +<td class="colLast"> +<div class="block">A zero-dependency utility class to track running average time of operations + and estimate the completion time of long running operations like firmware updates.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a><T extends <a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a>></td> +<td class="colLast"> +<div class="block">Common abstract base class for all units of measurement, providing default convenience methods + for things like comparison.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a></td> +<td class="colLast"> +<div class="block">Zero-dependency (besides Android) utility class for creating an update loop.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></td> +<td class="colLast"> +<div class="block">Some static utility methods that are probably not very useful outside the library.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></td> +<td class="colLast"> +<div class="block">Utility methods for byte and bit twiddling.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Reflection.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Reflection</a></td> +<td class="colLast"> +<div class="block">Some utilities for dealing with raw byte array scan records.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Rssi.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Rssi</a></td> +<td class="colLast"> +<div class="block">Some static utility methods for RSSI-related calculations.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html" title="class in com.idevicesinc.sweetblue.utils">Utils_ScanRecord</a></td> +<td class="colLast"> +<div class="block">Some utilities for dealing with raw byte array scan records.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_State.html" title="class in com.idevicesinc.sweetblue.utils">Utils_State</a></td> +<td class="colLast"> +<div class="block">Some helper utilities for dealing with <a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><code>State</code></a> implementors.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils">Utils_String</a></td> +<td class="colLast"> +<div class="block">Utility methods for string manipulation and creation needed by SweetBlue, mostly for debug purposes.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Time.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Time</a></td> +<td class="colLast"> +<div class="block">Utilities for dealing with time with an emphasis on BLE.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html" title="class in com.idevicesinc.sweetblue.utils">UuidNameMap_ListWrapper</a></td> +<td class="colLast"> +<div class="block">Convenience implementation that wraps a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> of other <a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UuidNameMap</code></a> instances.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></td> +<td class="colLast"> +<div class="block">A collection of standard <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>s for services, characteristics, and descriptors.</div> +</td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation"> +<caption><span>Enum Summary</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Enum</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a></td> +<td class="colLast"> +<div class="block">Enumerates changes in the "enabling" stage before a + Bluetooth LE scan is started.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a></td> +<td class="colLast"> +<div class="block">The Status of the current <a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a></div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a></td> +<td class="colLast"> +<div class="block">Enumeration/abstraction of database columns used to persist <a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a>.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a></td> +<td class="colLast"> +<div class="block">Enumerates the intention behind a state change - as comprehensively as possible, whether the + application user intended for the state change to happen or not.</div> +</td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Error Summary table, listing errors, and an explanation"> +<caption><span>Error Summary</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Error</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="../../../../com/idevicesinc/sweetblue/utils/WrongThreadError.html" title="class in com.idevicesinc.sweetblue.utils">WrongThreadError</a></td> +<td class="colLast"> +<div class="block">Most of the methods of core SweetBlue classes like <a href="../../../../com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>, <a href="../../../../com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>, and <a href="../../../../com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> + must be called from the main thread, similar to how Android will complain if you try to edit a <a href="http://d.android.com/reference/android/view/View.html?is-external=true" title="class or interface in android.view"><code>View</code></a> + from another thread.</div> +</td> +</tr> +</tbody> +</table> +</li> +</ul> +<a name="package.description"> +<!-- --> +</a> +<h2 title="Package com.idevicesinc.sweetblue.utils Description">Package com.idevicesinc.sweetblue.utils Description</h2> +<div class="block">Contains a few optional utilities that you may find useful, but nothing in here is a core part of the library as far as the library user is concerned.</div> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li class="navBarCell1Rev">Package</li> +<li>Class</li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/package-summary.html">Prev Package</a></li> +<li>Next Package</li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/package-summary.html" target="_top">Frames</a></li> +<li><a href="package-summary.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/package-tree.html b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/package-tree.html new file mode 100644 index 0000000000000000000000000000000000000000..fb5bd6d38f7adcd0307ce1392fd8aa1a35804bd5 --- /dev/null +++ b/dev/android/sweetblue/docs/api/com/idevicesinc/sweetblue/utils/package-tree.html @@ -0,0 +1,243 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>com.idevicesinc.sweetblue.utils Class Hierarchy (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="../../../../doc_style.css" title="Style"> +<script type="text/javascript" src="../../../../script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="com.idevicesinc.sweetblue.utils Class Hierarchy (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li>Class</li> +<li class="navBarCell1Rev">Tree</li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/package-tree.html">Prev</a></li> +<li>Next</li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/package-tree.html" target="_top">Frames</a></li> +<li><a href="package-tree.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 class="title">Hierarchy For Package com.idevicesinc.sweetblue.utils</h1> +<span class="packageHierarchyLabel">Package Hierarchies:</span> +<ul class="horizontal"> +<li><a href="../../../../overview-tree.html">All Packages</a></li> +</ul> +</div> +<div class="contentContainer"> +<h2 title="Class Hierarchy">Class Hierarchy</h2> +<ul> +<li type="circle">java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BasicUuidNameMap</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BleScanInfo</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler.BluetoothEnablerFilter.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler.DefaultBluetoothEnablerFilter</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">DebugLogger</span></a> (implements com.idevicesinc.sweetblue.<a href="../../../../com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue">SweetLogger</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">EmptyCursor</span></a> (implements android.database.<a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">EmptyIterator</span></a><T> (implements java.util.<a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><E>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">EpochTime</span></a> (implements java.lang.<a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">EpochTimeRange</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Event</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">State.ChangeEvent</span></a><T_State></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/EventQueue.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">EventQueue</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">ForEach_Breakable.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalData</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_AllowsSelectColumn</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_AllowsFrom</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_Function</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_Select</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_SelectColumn</span></a></li> +</ul> +</li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_ClauseColumn</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_From.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_From</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_Where</span></a></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Pointer</span></a><T></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/PresentData.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">PresentData</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">ReflectionUuidNameMap</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">SingleElementIterator</span></a><T> (implements java.util.<a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><E>)</li> +<li type="circle">java.lang.<a href="http://d.android.com/reference/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>) +<ul> +<li type="circle">java.lang.<a href="http://d.android.com/reference/java/lang/Error.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Error</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/WrongThreadError.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">WrongThreadError</span></a></li> +</ul> +</li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">TimeEstimator</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Unit</span></a><T> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Distance</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Interval</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Percent</span></a></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">UpdateLoop</span></a> (implements com.idevicesinc.sweetblue.<a href="../../../../com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_Byte</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Reflection.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_Reflection</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Rssi.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_Rssi</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_ScanRecord</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Utils_State.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_State</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_String</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Utils_Time.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_Time</span></a></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">UuidNameMap_ListWrapper</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Uuids</span></a></li> +</ul> +</li> +</ul> +<h2 title="Interface Hierarchy">Interface Hierarchy</h2> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BitwiseEnum</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">State</span></a> (also extends com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler.BluetoothEnablerFilter</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">ForEach_Breakable</span></a><T></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">ForEach_Returning</span></a><T></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">ForEach_Void</span></a><T></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">FutureData</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">GenericListener_Void</span></a><T_Event></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataCursor</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">UsesCustomNull</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">State</span></a> (also extends com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>)</li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">UuidNameMap</span></a></li> +</ul> +<h2 title="Enum Hierarchy">Enum Hierarchy</h2> +<ul> +<li type="circle">java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a> +<ul> +<li type="circle">java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>) +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataColumn</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler.BluetoothEnablerFilter.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">State.ChangeIntent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler.BluetoothEnablerFilter.Stage</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="../../../../com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li>Class</li> +<li class="navBarCell1Rev">Tree</li> +<li><a href="../../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../../index-all.html">Index</a></li> +<li><a href="../../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../../com/idevicesinc/sweetblue/compat/package-tree.html">Prev</a></li> +<li>Next</li> +</ul> +<ul class="navList"> +<li><a href="../../../../index.html?com/idevicesinc/sweetblue/utils/package-tree.html" target="_top">Frames</a></li> +<li><a href="package-tree.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/constant-values.html b/dev/android/sweetblue/docs/api/constant-values.html new file mode 100644 index 0000000000000000000000000000000000000000..ac9a54fe655b722c33fafbc753307ab355a1b8d9 --- /dev/null +++ b/dev/android/sweetblue/docs/api/constant-values.html @@ -0,0 +1,1069 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>Constant Field Values (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="doc_style.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Constant Field Values (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="overview-summary.html">Overview</a></li> +<li>Package</li> +<li>Class</li> +<li><a href="overview-tree.html">Tree</a></li> +<li><a href="deprecated-list.html">Deprecated</a></li> +<li><a href="index-all.html">Index</a></li> +<li><a href="help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev</li> +<li>Next</li> +</ul> +<ul class="navList"> +<li><a href="index.html?constant-values.html" target="_top">Frames</a></li> +<li><a href="constant-values.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 title="Constant Field Values" class="title">Constant Field Values</h1> +<h2 title="Contents">Contents</h2> +<ul> +<li><a href="#com.idevicesinc">com.idevicesinc.*</a></li> +</ul> +</div> +<div class="constantValuesContainer"><a name="com.idevicesinc"> +<!-- --> +</a> +<h2 title="com.idevicesinc">com.idevicesinc.*</h2> +<ul class="blockList"> +<li class="blockList"> +<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values"> +<caption><span>com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleDevice.DefaultConnectionFailListener</a></span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th scope="col">Constant Field</th> +<th class="colLast" scope="col">Value</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleDevice.DefaultConnectionFailListener.DEFAULT_CONNECTION_FAIL_RETRY_COUNT"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html#DEFAULT_CONNECTION_FAIL_RETRY_COUNT">DEFAULT_CONNECTION_FAIL_RETRY_COUNT</a></code></td> +<td class="colLast"><code>2</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleDevice.DefaultConnectionFailListener.DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html#DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT">DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT</a></code></td> +<td class="colLast"><code>2</code></td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values"> +<caption><span>com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th scope="col">Constant Field</th> +<th class="colLast" scope="col">Value</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleDeviceConfig.DEFAULT_MINIMUM_SCAN_TIME"> +<!-- --> +</a><code>public static final double</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_MINIMUM_SCAN_TIME">DEFAULT_MINIMUM_SCAN_TIME</a></code></td> +<td class="colLast"><code>5.0</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleDeviceConfig.DEFAULT_RSSI_AUTO_POLL_RATE"> +<!-- --> +</a><code>public static final double</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_AUTO_POLL_RATE">DEFAULT_RSSI_AUTO_POLL_RATE</a></code></td> +<td class="colLast"><code>10.0</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleDeviceConfig.DEFAULT_RSSI_MAX"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_MAX">DEFAULT_RSSI_MAX</a></code></td> +<td class="colLast"><code>-30</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleDeviceConfig.DEFAULT_RSSI_MIN"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_MIN">DEFAULT_RSSI_MIN</a></code></td> +<td class="colLast"><code>-120</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleDeviceConfig.DEFAULT_RUNNING_AVERAGE_N"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RUNNING_AVERAGE_N">DEFAULT_RUNNING_AVERAGE_N</a></code></td> +<td class="colLast"><code>10</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleDeviceConfig.DEFAULT_SCAN_KEEP_ALIVE"> +<!-- --> +</a><code>public static final double</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_SCAN_KEEP_ALIVE">DEFAULT_SCAN_KEEP_ALIVE</a></code></td> +<td class="colLast"><code>12.5</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleDeviceConfig.DEFAULT_TX_POWER"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_TX_POWER">DEFAULT_TX_POWER</a></code></td> +<td class="colLast"><code>-50</code></td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values"> +<caption><span>com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th scope="col">Constant Field</th> +<th class="colLast" scope="col">Value</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleManagerConfig.DEFAULT_AUTO_SCAN_DELAY_AFTER_RESUME"> +<!-- --> +</a><code>public static final double</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_AUTO_SCAN_DELAY_AFTER_RESUME">DEFAULT_AUTO_SCAN_DELAY_AFTER_RESUME</a></code></td> +<td class="colLast"><code>0.5</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleManagerConfig.DEFAULT_AUTO_SCAN_PAUSE_TIME"> +<!-- --> +</a><code>public static final double</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_AUTO_SCAN_PAUSE_TIME">DEFAULT_AUTO_SCAN_PAUSE_TIME</a></code></td> +<td class="colLast"><code>3.0</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleManagerConfig.DEFAULT_AUTO_UPDATE_RATE"> +<!-- --> +</a><code>public static final double</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_AUTO_UPDATE_RATE">DEFAULT_AUTO_UPDATE_RATE</a></code></td> +<td class="colLast"><code>0.0202</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleManagerConfig.DEFAULT_SCAN_REPORT_DELAY"> +<!-- --> +</a><code>public static final double</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_SCAN_REPORT_DELAY">DEFAULT_SCAN_REPORT_DELAY</a></code></td> +<td class="colLast"><code>0.5</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleManagerConfig.DEFAULT_UH_OH_CALLBACK_THROTTLE"> +<!-- --> +</a><code>public static final double</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_UH_OH_CALLBACK_THROTTLE">DEFAULT_UH_OH_CALLBACK_THROTTLE</a></code></td> +<td class="colLast"><code>30.0</code></td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values"> +<caption><span>com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th scope="col">Constant Field</th> +<th class="colLast" scope="col">Value</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleNodeConfig.DEFAULT_MTU_SIZE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleNodeConfig.html#DEFAULT_MTU_SIZE">DEFAULT_MTU_SIZE</a></code></td> +<td class="colLast"><code>23</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleNodeConfig.GATT_MTU_OVERHEAD"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleNodeConfig.html#GATT_MTU_OVERHEAD">GATT_MTU_OVERHEAD</a></code></td> +<td class="colLast"><code>3</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleNodeConfig.INVALID_TX_POWER"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleNodeConfig.html#INVALID_TX_POWER">INVALID_TX_POWER</a></code></td> +<td class="colLast"><code>-2147483648</code></td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values"> +<caption><span>com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultTaskTimeoutRequestFilter</a></span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th scope="col">Constant Field</th> +<th class="colLast" scope="col">Value</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleNodeConfig.DefaultTaskTimeoutRequestFilter.DEFAULT_CRASH_RESOLVER_TIMEOUT"> +<!-- --> +</a><code>public static final double</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html#DEFAULT_CRASH_RESOLVER_TIMEOUT">DEFAULT_CRASH_RESOLVER_TIMEOUT</a></code></td> +<td class="colLast"><code>50.0</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleNodeConfig.DefaultTaskTimeoutRequestFilter.DEFAULT_TASK_TIMEOUT"> +<!-- --> +</a><code>public static final double</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html#DEFAULT_TASK_TIMEOUT">DEFAULT_TASK_TIMEOUT</a></code></td> +<td class="colLast"><code>12.5</code></td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values"> +<caption><span>com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th scope="col">Constant Field</th> +<th class="colLast" scope="col">Value</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.PersistenceLevel_BOTH"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#PersistenceLevel_BOTH">PersistenceLevel_BOTH</a></code></td> +<td class="colLast"><code>3</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.PersistenceLevel_DISK"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#PersistenceLevel_DISK">PersistenceLevel_DISK</a></code></td> +<td class="colLast"><code>2</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.PersistenceLevel_MEMORY"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#PersistenceLevel_MEMORY">PersistenceLevel_MEMORY</a></code></td> +<td class="colLast"><code>1</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.PersistenceLevel_NONE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#PersistenceLevel_NONE">PersistenceLevel_NONE</a></code></td> +<td class="colLast"><code>0</code></td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values"> +<caption><span>com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleServer.DefaultConnectionFailListener</a></span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th scope="col">Constant Field</th> +<th class="colLast" scope="col">Value</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleServer.DefaultConnectionFailListener.DEFAULT_CONNECTION_FAIL_RETRY_COUNT"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html#DEFAULT_CONNECTION_FAIL_RETRY_COUNT">DEFAULT_CONNECTION_FAIL_RETRY_COUNT</a></code></td> +<td class="colLast"><code>2</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleServer.DefaultConnectionFailListener.DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html#DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT">DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT</a></code></td> +<td class="colLast"><code>2</code></td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values"> +<caption><span>com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th scope="col">Constant Field</th> +<th class="colLast" scope="col">Value</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleServer.ExchangeListener.ExchangeEvent.NON_APPLICABLE_REQUEST_ID"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#NON_APPLICABLE_REQUEST_ID">NON_APPLICABLE_REQUEST_ID</a></code></td> +<td class="colLast"><code>-1</code></td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values"> +<caption><span>com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th scope="col">Constant Field</th> +<th class="colLast" scope="col">Value</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.ADVERTISE_ANDROID_VERSION_NOT_SUPPORTED"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#ADVERTISE_ANDROID_VERSION_NOT_SUPPORTED">ADVERTISE_ANDROID_VERSION_NOT_SUPPORTED</a></code></td> +<td class="colLast"><code>20</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.ADVERTISE_SUCCESS"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#ADVERTISE_SUCCESS">ADVERTISE_SUCCESS</a></code></td> +<td class="colLast"><code>0</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#BOND_FAIL_REASON_NOT_APPLICABLE">BOND_FAIL_REASON_NOT_APPLICABLE</a></code></td> +<td class="colLast"><code>-1</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.BOND_FAIL_REASON_NOT_AVAILABLE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#BOND_FAIL_REASON_NOT_AVAILABLE">BOND_FAIL_REASON_NOT_AVAILABLE</a></code></td> +<td class="colLast"><code>42</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.BOND_SUCCESS"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#BOND_SUCCESS">BOND_SUCCESS</a></code></td> +<td class="colLast"><code>0</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_AUTH_FAIL"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_AUTH_FAIL">GATT_AUTH_FAIL</a></code></td> +<td class="colLast"><code>137</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_BUSY"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_BUSY">GATT_BUSY</a></code></td> +<td class="colLast"><code>132</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_CMD_STARTED"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_CMD_STARTED">GATT_CMD_STARTED</a></code></td> +<td class="colLast"><code>134</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_CMD_WRITE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_CMD_WRITE">GATT_CMD_WRITE</a></code></td> +<td class="colLast"><code>82</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_CONN_UNKNOWN"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_CONN_UNKNOWN">GATT_CONN_UNKNOWN</a></code></td> +<td class="colLast"><code>0</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_DB_FULL"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_DB_FULL">GATT_DB_FULL</a></code></td> +<td class="colLast"><code>131</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_ENCRYPED_MITM"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_ENCRYPED_MITM">GATT_ENCRYPED_MITM</a></code></td> +<td class="colLast"><code>0</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_ENCRYPED_NO_MITM"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_ENCRYPED_NO_MITM">GATT_ENCRYPED_NO_MITM</a></code></td> +<td class="colLast"><code>141</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_ERR_UNLIKELY"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_ERR_UNLIKELY">GATT_ERR_UNLIKELY</a></code></td> +<td class="colLast"><code>14</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_ERROR"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_ERROR">GATT_ERROR</a></code></td> +<td class="colLast"><code>133</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_HANDLE_VALUE_CONF"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_HANDLE_VALUE_CONF">GATT_HANDLE_VALUE_CONF</a></code></td> +<td class="colLast"><code>30</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_HANDLE_VALUE_IND"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_HANDLE_VALUE_IND">GATT_HANDLE_VALUE_IND</a></code></td> +<td class="colLast"><code>29</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_HANDLE_VALUE_NOTIF"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_HANDLE_VALUE_NOTIF">GATT_HANDLE_VALUE_NOTIF</a></code></td> +<td class="colLast"><code>27</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_ILLEGAL_PARAMETER"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_ILLEGAL_PARAMETER">GATT_ILLEGAL_PARAMETER</a></code></td> +<td class="colLast"><code>135</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_INSUF_AUTHENTICATION"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INSUF_AUTHENTICATION">GATT_INSUF_AUTHENTICATION</a></code></td> +<td class="colLast"><code>5</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_INSUF_AUTHORIZATION"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INSUF_AUTHORIZATION">GATT_INSUF_AUTHORIZATION</a></code></td> +<td class="colLast"><code>8</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_INSUF_ENCRYPTION"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INSUF_ENCRYPTION">GATT_INSUF_ENCRYPTION</a></code></td> +<td class="colLast"><code>15</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_INSUF_KEY_SIZE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INSUF_KEY_SIZE">GATT_INSUF_KEY_SIZE</a></code></td> +<td class="colLast"><code>12</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_INSUF_RESOURCE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INSUF_RESOURCE">GATT_INSUF_RESOURCE</a></code></td> +<td class="colLast"><code>17</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_INTERNAL_ERROR"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INTERNAL_ERROR">GATT_INTERNAL_ERROR</a></code></td> +<td class="colLast"><code>129</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_INVALID_ATTR_LEN"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INVALID_ATTR_LEN">GATT_INVALID_ATTR_LEN</a></code></td> +<td class="colLast"><code>13</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_INVALID_CFG"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INVALID_CFG">GATT_INVALID_CFG</a></code></td> +<td class="colLast"><code>139</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_INVALID_HANDLE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INVALID_HANDLE">GATT_INVALID_HANDLE</a></code></td> +<td class="colLast"><code>1</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_INVALID_OFFSET"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INVALID_OFFSET">GATT_INVALID_OFFSET</a></code></td> +<td class="colLast"><code>7</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_INVALID_PDU"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INVALID_PDU">GATT_INVALID_PDU</a></code></td> +<td class="colLast"><code>4</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_MORE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_MORE">GATT_MORE</a></code></td> +<td class="colLast"><code>138</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_NO_RESOURCES"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_NO_RESOURCES">GATT_NO_RESOURCES</a></code></td> +<td class="colLast"><code>128</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_NOT_ENCRYPTED"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_NOT_ENCRYPTED">GATT_NOT_ENCRYPTED</a></code></td> +<td class="colLast"><code>142</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_NOT_FOUND"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_NOT_FOUND">GATT_NOT_FOUND</a></code></td> +<td class="colLast"><code>10</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_NOT_LONG"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_NOT_LONG">GATT_NOT_LONG</a></code></td> +<td class="colLast"><code>11</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_OP_CODE_MAX"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_OP_CODE_MAX">GATT_OP_CODE_MAX</a></code></td> +<td class="colLast"><code>31</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_PENDING"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_PENDING">GATT_PENDING</a></code></td> +<td class="colLast"><code>136</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_PREPARE_Q_FULL"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_PREPARE_Q_FULL">GATT_PREPARE_Q_FULL</a></code></td> +<td class="colLast"><code>9</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_READ_NOT_PERMIT"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_READ_NOT_PERMIT">GATT_READ_NOT_PERMIT</a></code></td> +<td class="colLast"><code>2</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_EXEC_WRITE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_EXEC_WRITE">GATT_REQ_EXEC_WRITE</a></code></td> +<td class="colLast"><code>24</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_FIND_INFO"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_FIND_INFO">GATT_REQ_FIND_INFO</a></code></td> +<td class="colLast"><code>4</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_FIND_TYPE_VALUE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_FIND_TYPE_VALUE">GATT_REQ_FIND_TYPE_VALUE</a></code></td> +<td class="colLast"><code>6</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_MTU"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_MTU">GATT_REQ_MTU</a></code></td> +<td class="colLast"><code>2</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_NOT_SUPPORTED"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_NOT_SUPPORTED">GATT_REQ_NOT_SUPPORTED</a></code></td> +<td class="colLast"><code>6</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_PREPARE_WRITE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_PREPARE_WRITE">GATT_REQ_PREPARE_WRITE</a></code></td> +<td class="colLast"><code>22</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_READ"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_READ">GATT_REQ_READ</a></code></td> +<td class="colLast"><code>10</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_READ_BLOB"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_READ_BLOB">GATT_REQ_READ_BLOB</a></code></td> +<td class="colLast"><code>12</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_READ_BY_GRP_TYPE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_READ_BY_GRP_TYPE">GATT_REQ_READ_BY_GRP_TYPE</a></code></td> +<td class="colLast"><code>16</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_READ_BY_TYPE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_READ_BY_TYPE">GATT_REQ_READ_BY_TYPE</a></code></td> +<td class="colLast"><code>8</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_READ_MULTI"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_READ_MULTI">GATT_REQ_READ_MULTI</a></code></td> +<td class="colLast"><code>14</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_REQ_WRITE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_WRITE">GATT_REQ_WRITE</a></code></td> +<td class="colLast"><code>18</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_ERROR"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_ERROR">GATT_RSP_ERROR</a></code></td> +<td class="colLast"><code>1</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_EXEC_WRITE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_EXEC_WRITE">GATT_RSP_EXEC_WRITE</a></code></td> +<td class="colLast"><code>25</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_FIND_INFO"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_FIND_INFO">GATT_RSP_FIND_INFO</a></code></td> +<td class="colLast"><code>5</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_FIND_TYPE_VALUE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_FIND_TYPE_VALUE">GATT_RSP_FIND_TYPE_VALUE</a></code></td> +<td class="colLast"><code>7</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_MTU"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_MTU">GATT_RSP_MTU</a></code></td> +<td class="colLast"><code>3</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_PREPARE_WRITE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_PREPARE_WRITE">GATT_RSP_PREPARE_WRITE</a></code></td> +<td class="colLast"><code>23</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_READ"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_READ">GATT_RSP_READ</a></code></td> +<td class="colLast"><code>11</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_READ_BLOB"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_READ_BLOB">GATT_RSP_READ_BLOB</a></code></td> +<td class="colLast"><code>13</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_READ_BY_GRP_TYPE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_READ_BY_GRP_TYPE">GATT_RSP_READ_BY_GRP_TYPE</a></code></td> +<td class="colLast"><code>17</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_READ_BY_TYPE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_READ_BY_TYPE">GATT_RSP_READ_BY_TYPE</a></code></td> +<td class="colLast"><code>9</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_READ_MULTI"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_READ_MULTI">GATT_RSP_READ_MULTI</a></code></td> +<td class="colLast"><code>15</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_RSP_WRITE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_WRITE">GATT_RSP_WRITE</a></code></td> +<td class="colLast"><code>19</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_SERVICE_STARTED"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_SERVICE_STARTED">GATT_SERVICE_STARTED</a></code></td> +<td class="colLast"><code>140</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_SIGN_CMD_WRITE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_SIGN_CMD_WRITE">GATT_SIGN_CMD_WRITE</a></code></td> +<td class="colLast"><code>210</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_STATUS_NOT_APPLICABLE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_STATUS_NOT_APPLICABLE">GATT_STATUS_NOT_APPLICABLE</a></code></td> +<td class="colLast"><code>-1</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_SUCCESS"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_SUCCESS">GATT_SUCCESS</a></code></td> +<td class="colLast"><code>0</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_UNSUPPORT_GRP_TYPE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_UNSUPPORT_GRP_TYPE">GATT_UNSUPPORT_GRP_TYPE</a></code></td> +<td class="colLast"><code>16</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_WRITE_NOT_PERMIT"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_WRITE_NOT_PERMIT">GATT_WRITE_NOT_PERMIT</a></code></td> +<td class="colLast"><code>3</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.GATT_WRONG_STATE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_WRONG_STATE">GATT_WRONG_STATE</a></code></td> +<td class="colLast"><code>130</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.UNBOND_REASON_AUTH_CANCELED"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_AUTH_CANCELED">UNBOND_REASON_AUTH_CANCELED</a></code></td> +<td class="colLast"><code>3</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.UNBOND_REASON_AUTH_FAILED"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_AUTH_FAILED">UNBOND_REASON_AUTH_FAILED</a></code></td> +<td class="colLast"><code>1</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.UNBOND_REASON_AUTH_REJECTED"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_AUTH_REJECTED">UNBOND_REASON_AUTH_REJECTED</a></code></td> +<td class="colLast"><code>2</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.UNBOND_REASON_AUTH_TIMEOUT"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_AUTH_TIMEOUT">UNBOND_REASON_AUTH_TIMEOUT</a></code></td> +<td class="colLast"><code>6</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.UNBOND_REASON_DISCOVERY_IN_PROGRESS"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_DISCOVERY_IN_PROGRESS">UNBOND_REASON_DISCOVERY_IN_PROGRESS</a></code></td> +<td class="colLast"><code>5</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.UNBOND_REASON_REMOTE_AUTH_CANCELED"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_REMOTE_AUTH_CANCELED">UNBOND_REASON_REMOTE_AUTH_CANCELED</a></code></td> +<td class="colLast"><code>8</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.UNBOND_REASON_REMOTE_DEVICE_DOWN"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_REMOTE_DEVICE_DOWN">UNBOND_REASON_REMOTE_DEVICE_DOWN</a></code></td> +<td class="colLast"><code>4</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.BleStatuses.UNBOND_REASON_REPEATED_ATTEMPTS"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_REPEATED_ATTEMPTS">UNBOND_REASON_REPEATED_ATTEMPTS</a></code></td> +<td class="colLast"><code>7</code></td> +</tr> +</tbody> +</table> +</li> +</ul> +<ul class="blockList"> +<li class="blockList"> +<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values"> +<caption><span>com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th scope="col">Constant Field</th> +<th class="colLast" scope="col">Value</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList.LOAD_STATE__LOADED"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#LOAD_STATE__LOADED">LOAD_STATE__LOADED</a></code></td> +<td class="colLast"><code>2</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList.LOAD_STATE__LOADING"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#LOAD_STATE__LOADING">LOAD_STATE__LOADING</a></code></td> +<td class="colLast"><code>1</code></td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList.LOAD_STATE__NOT_LOADED"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#LOAD_STATE__NOT_LOADED">LOAD_STATE__NOT_LOADED</a></code></td> +<td class="colLast"><code>0</code></td> +</tr> +</tbody> +</table> +</li> +</ul> +<ul class="blockList"> +<li class="blockList"> +<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values"> +<caption><span>com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils">DebugLogger</a></span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th scope="col">Constant Field</th> +<th class="colLast" scope="col">Value</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.utils.DebugLogger.DEFAULT_MAX_SIZE"> +<!-- --> +</a><code>public static final int</code></td> +<td><code><a href="com/idevicesinc/sweetblue/utils/DebugLogger.html#DEFAULT_MAX_SIZE">DEFAULT_MAX_SIZE</a></code></td> +<td class="colLast"><code>50</code></td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values"> +<caption><span>com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th scope="col">Constant Field</th> +<th class="colLast" scope="col">Value</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.utils.Distance.FEET_PER_METER"> +<!-- --> +</a><code>public static final double</code></td> +<td><code><a href="com/idevicesinc/sweetblue/utils/Distance.html#FEET_PER_METER">FEET_PER_METER</a></code></td> +<td class="colLast"><code>3.28084</code></td> +</tr> +</tbody> +</table> +</li> +<li class="blockList"> +<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values"> +<caption><span>com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th scope="col">Constant Field</th> +<th class="colLast" scope="col">Value</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.utils.Uuids.BLUETOOTH_CONNECTED_HASH"> +<!-- --> +</a><code>protected static final <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td><code><a href="com/idevicesinc/sweetblue/utils/Uuids.html#BLUETOOTH_CONNECTED_HASH">BLUETOOTH_CONNECTED_HASH</a></code></td> +<td class="colLast"><code>"35452669a0050efc6823a77c0fc8f455fbe570eb"</code></td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a name="com.idevicesinc.sweetblue.utils.Uuids.STANDARD_UUID_TEMPLATE"> +<!-- --> +</a><code>public static final <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td> +<td><code><a href="com/idevicesinc/sweetblue/utils/Uuids.html#STANDARD_UUID_TEMPLATE">STANDARD_UUID_TEMPLATE</a></code></td> +<td class="colLast"><code>"00000000-0000-1000-8000-00805f9b34fb"</code></td> +</tr> +</tbody> +</table> +</li> +</ul> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="overview-summary.html">Overview</a></li> +<li>Package</li> +<li>Class</li> +<li><a href="overview-tree.html">Tree</a></li> +<li><a href="deprecated-list.html">Deprecated</a></li> +<li><a href="index-all.html">Index</a></li> +<li><a href="help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev</li> +<li>Next</li> +</ul> +<ul class="navList"> +<li><a href="index.html?constant-values.html" target="_top">Frames</a></li> +<li><a href="constant-values.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/deprecated-list.html b/dev/android/sweetblue/docs/api/deprecated-list.html new file mode 100644 index 0000000000000000000000000000000000000000..3d0c523b4ae107bb450e602d8a5043a6684a63f2 --- /dev/null +++ b/dev/android/sweetblue/docs/api/deprecated-list.html @@ -0,0 +1,202 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>Deprecated List (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="doc_style.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Deprecated List (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="overview-summary.html">Overview</a></li> +<li>Package</li> +<li>Class</li> +<li><a href="overview-tree.html">Tree</a></li> +<li class="navBarCell1Rev">Deprecated</li> +<li><a href="index-all.html">Index</a></li> +<li><a href="help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev</li> +<li>Next</li> +</ul> +<ul class="navList"> +<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li> +<li><a href="deprecated-list.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 title="Deprecated API" class="title">Deprecated API</h1> +<h2 title="Contents">Contents</h2> +<ul> +<li><a href="#field">Deprecated Fields</a></li> +<li><a href="#method">Deprecated Methods</a></li> +<li><a href="#enum.constant">Deprecated Enum Constants</a></li> +</ul> +</div> +<div class="contentContainer"><a name="field"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Fields table, listing deprecated fields, and an explanation"> +<caption><span>Deprecated Fields</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Field and Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colOne"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#forcePreLollipopScan">com.idevicesinc.sweetblue.BleManagerConfig.forcePreLollipopScan</a> +<div class="block"><span class="deprecationComment">Use <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#scanMode"><code>BleManagerConfig.scanMode</code></a> with <a href="com/idevicesinc/sweetblue/BleScanMode.html#PRE_LOLLIPOP"><code>BleScanMode.PRE_LOLLIPOP</code></a> instead.</span></div> +</td> +</tr> +</tbody> +</table> +</li> +</ul> +<a name="method"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Methods table, listing deprecated methods, and an explanation"> +<caption><span>Deprecated Methods</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Method and Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colOne"><a href="com/idevicesinc/sweetblue/BleScanMode.html#isLollipopScanMode--">com.idevicesinc.sweetblue.BleScanMode.isLollipopScanMode()</a></td> +</tr> +<tr class="rowColor"> +<td class="colOne"><a href="com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html#parseScanRecord-byte:A-com.idevicesinc.sweetblue.utils.Pointer-com.idevicesinc.sweetblue.utils.Pointer-java.util.List-android.util.SparseArray-java.util.Map-">com.idevicesinc.sweetblue.utils.Utils_ScanRecord.parseScanRecord(byte[], Pointer<Integer>, Pointer<Integer>, List<UUID>, SparseArray<byte[]>, Map<UUID, byte[]>)</a></td> +</tr> +<tr class="altColor"> +<td class="colOne"><a href="com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html#parseServiceUuids-byte:A-">com.idevicesinc.sweetblue.utils.Utils_ScanRecord.parseServiceUuids(byte[])</a></td> +</tr> +</tbody> +</table> +</li> +</ul> +<a name="enum.constant"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Enum Constants table, listing deprecated enum constants, and an explanation"> +<caption><span>Deprecated Enum Constants</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colOne" scope="col">Enum Constant and Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colOne"><a href="com/idevicesinc/sweetblue/BleScanMode.html#HIGH_POWER">com.idevicesinc.sweetblue.BleScanMode.HIGH_POWER</a> +<div class="block"><span class="deprecationComment">- This will be removed in v3. Use <a href="com/idevicesinc/sweetblue/BleScanPower.html#HIGH_POWER"><code>BleScanPower.HIGH_POWER</code></a> instead.</span></div> +</td> +</tr> +<tr class="rowColor"> +<td class="colOne"><a href="com/idevicesinc/sweetblue/BleScanMode.html#LOW_POWER">com.idevicesinc.sweetblue.BleScanMode.LOW_POWER</a> +<div class="block"><span class="deprecationComment">- This will be removed in v3. Use <a href="com/idevicesinc/sweetblue/BleScanPower.html#LOW_POWER"><code>BleScanPower.LOW_POWER</code></a> instead.</span></div> +</td> +</tr> +<tr class="altColor"> +<td class="colOne"><a href="com/idevicesinc/sweetblue/BleScanMode.html#MEDIUM_POWER">com.idevicesinc.sweetblue.BleScanMode.MEDIUM_POWER</a> +<div class="block"><span class="deprecationComment">- This will be removed in v3. Use <a href="com/idevicesinc/sweetblue/BleScanPower.html#MEDIUM_POWER"><code>BleScanPower.MEDIUM_POWER</code></a> instead.</span></div> +</td> +</tr> +</tbody> +</table> +</li> +</ul> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="overview-summary.html">Overview</a></li> +<li>Package</li> +<li>Class</li> +<li><a href="overview-tree.html">Tree</a></li> +<li class="navBarCell1Rev">Deprecated</li> +<li><a href="index-all.html">Index</a></li> +<li><a href="help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev</li> +<li>Next</li> +</ul> +<ul class="navList"> +<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li> +<li><a href="deprecated-list.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/doc_style.css b/dev/android/sweetblue/docs/api/doc_style.css new file mode 100644 index 0000000000000000000000000000000000000000..4d9a8afcc240313d04b792b301e61180de5e23ec --- /dev/null +++ b/dev/android/sweetblue/docs/api/doc_style.css @@ -0,0 +1,494 @@ +/* Javadoc style sheet */ +/* +Overall document style +*/ +body { + color:#353833; + font-family:Arial, Helvetica, sans-serif; + font-size:90%; + margin:0; + padding: 0 2em; +} + +/*Customizations*/ +body, +.TableRowColor{background-color:#F9F9F9; } +.TableHeadingColor{background-color: #999; color: #fff;} +.TableHeadingColor th b{ font-size: 0.6em !important; font-weight: normal; +} +.TableRowColor { border-color: #E6E7E8;} +.NavBarCell1{background-color: #ccc;} +table{border: none;} +a:link, a:visited { + text-decoration:none; + color:#4c6b87; +} +a:hover, a:focus { + text-decoration:none; + color:#eb4623; +} +a:active { + text-decoration:none; + color:#4c6b87; +} +a[name] { + color:#353833; +} +a[name]:hover { + text-decoration:none; + color:#353833; +} +pre { + font-size:1.3em; +} +h1 { + font-size:1.8em; +} +h2 { + font-size:1.5em; +} +h3 { + font-size:1.4em; +} +h4 { + font-size:1.3em; +} +h5 { + font-size:1.2em; +} +h6 { + font-size:1.1em; +} +ul { + list-style-type:disc; +} +code, tt { + font-size:1.2em; +} +dt code { + font-size:1.2em; +} +table tr td dt code { + font-size:1.2em; + vertical-align:top; +} +sup { + font-size:.6em; +} +/* +Document title and Copyright styles +*/ +.clear { + clear:both; + height:0px; + overflow:hidden; +} +.aboutLanguage { + float:right; + padding:0px 21px; + font-size:.8em; + z-index:200; + margin-top:-7px; +} +.legalCopy { + margin-left:.5em; +} +.bar a, .bar a:link, .bar a:visited, .bar a:active { + color:#FFFFFF; + text-decoration:none; +} +.bar a:hover, .bar a:focus { + color:#bb7a2a; +} +.tab { + background-color:#0066FF; + background-position:left top; + background-repeat:no-repeat; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* +Navigation bar styles +*/ +.bar { + background-repeat:repeat-x; + color:#FFFFFF; + padding:.8em .5em .4em .8em; + height:auto;/*height:1.8em;*/ + font-size:1em; + margin:0; +} +.topNav { + background-repeat:repeat-x; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; +} +.bottomNav { + margin-top:10px; + background-repeat:repeat-x; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; +} +.subNav { + background-color:#dee3e9; + border-bottom:1px solid #9eadc0; + float:left; + width:100%; + overflow:hidden; +} +.subNav div { + clear:left; + float:left; + padding:0 0 5px 6px; +} +ul.navList, ul.subNavList { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.navList li{ + list-style:none; + float:left; + padding:3px 6px; +} +ul.subNavList li{ + list-style:none; + float:left; + font-size:90%; +} +.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { + color:#FFFFFF; + text-decoration:none; +} +.topNav a:hover, .bottomNav a:hover { + text-decoration:none; + color:#bb7a2a; +} +.navBarCell1Rev { + background-color:#a88834; + color:#FFFFFF; + margin: auto 5px; + border:1px solid #c9aa44; +} +/* +Page header and footer styles +*/ +.header, .footer { + clear:both; + margin:0 20px; + padding:5px 0 0 0; +} +.indexHeader { + margin:10px; + position:relative; +} +.indexHeader h1 { + font-size:1.3em; +} +.title { + color:#2c4557; + margin:10px 0; +} +.subTitle { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 25px 0; + padding:0; +} +.footer ul { + margin:20px 0 5px 0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:1.2em; +} +/* +Heading styles +*/ +div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { + background-color:#dee3e9; + border-top:1px solid #9eadc0; + border-bottom:1px solid #9eadc0; + margin:0 0 6px -8px; + padding:2px 5px; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + background-color:#dee3e9; + border-top:1px solid #9eadc0; + border-bottom:1px solid #9eadc0; + margin:0 0 6px -8px; + padding:2px 5px; +} +ul.blockList ul.blockList li.blockList h3 { + padding:0; + margin:15px 0; +} +ul.blockList li.blockList h2 { + padding:0px 0 20px 0; +} +/* +Page layout container styles +*/ +.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { + clear:both; + padding:10px 20px; + position:relative; +} +.indexContainer { + margin:10px; + position:relative; + font-size:1.0em; +} +.indexContainer h2 { + font-size:1.1em; + padding:0 0 3px 0; +} +.indexContainer ul { + margin:0; + padding:0; +} +.indexContainer ul li { + list-style:none; +} +.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { + font-size:1.1em; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { + margin:10px 0 10px 20px; +} +.serializedFormContainer dl.nameValue dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +.serializedFormContainer dl.nameValue dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* +List styles +*/ +ul.horizontal li { + display:inline; + font-size:0.9em; +} +ul.inheritance { + margin:0; + padding:0; +} +ul.inheritance li { + display:inline; + list-style:none; +} +ul.inheritance li ul.inheritance { + margin-left:15px; + padding-left:15px; + padding-top:1px; +} +ul.blockList, ul.blockListLast { + margin:10px 0 10px 0; + padding:0; +} +ul.blockList li.blockList, ul.blockListLast li.blockList { + list-style:none; + margin-bottom:25px; +} +ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { + padding:0px 20px 5px 10px; + border:1px solid #9eadc0; + background-color:#f9f9f9; +} +ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { + padding:0 0 5px 8px; + background-color:#ffffff; + border:1px solid #9eadc0; + border-top:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { + margin-left:0; + padding-left:0; + padding-bottom:15px; + border:none; + border-bottom:1px solid #9eadc0; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { + list-style:none; + border-bottom:none; + padding-bottom:0; +} +table tr td dl, table tr td dl dt, table tr td dl dd { + margin-top:0; + margin-bottom:1px; +} +/* +Table styles +*/ +.contentContainer table, .classUseContainer table, .constantValuesContainer table { + border-bottom:1px solid #9eadc0; + width:100%; +} +.contentContainer ul li table, .classUseContainer ul li table, .constantValuesContainer ul li table { + width:100%; +} +.contentContainer .description table, .contentContainer .details table { + border-bottom:none; +} +.contentContainer ul li table th.colOne, .contentContainer ul li table th.colFirst, .contentContainer ul li table th.colLast, .classUseContainer ul li table th, .constantValuesContainer ul li table th, .contentContainer ul li table td.colOne, .contentContainer ul li table td.colFirst, .contentContainer ul li table td.colLast, .classUseContainer ul li table td, .constantValuesContainer ul li table td{ + vertical-align:top; + padding-right:20px; +} +.contentContainer ul li table th.colLast, .classUseContainer ul li table th.colLast,.constantValuesContainer ul li table th.colLast, +.contentContainer ul li table td.colLast, .classUseContainer ul li table td.colLast,.constantValuesContainer ul li table td.colLast, +.contentContainer ul li table th.colOne, .classUseContainer ul li table th.colOne, +.contentContainer ul li table td.colOne, .classUseContainer ul li table td.colOne { + padding-right:3px; +} +.overviewSummary caption, .packageSummary caption, .contentContainer ul.blockList li.blockList caption, .summary caption, .classUseContainer caption, .constantValuesContainer caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#FFFFFF; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0px; + margin:0px; +} +caption a:link, caption a:hover, caption a:active, caption a:visited { + color:#FFFFFF; +} +.overviewSummary caption span, .packageSummary caption span, .contentContainer ul.blockList li.blockList caption span, .summary caption span, .classUseContainer caption span, .constantValuesContainer caption span { + white-space:nowrap; + padding-top:8px; + padding-left:8px; + display:block; + float:left; + height:18px; +} +.overviewSummary .tabEnd, .packageSummary .tabEnd, .contentContainer ul.blockList li.blockList .tabEnd, .summary .tabEnd, .classUseContainer .tabEnd, .constantValuesContainer .tabEnd { + width:10px; + background-repeat:no-repeat; + background-position:top right; + position:relative; + float:left; +} +ul.blockList ul.blockList li.blockList table { + margin:0 0 12px 0px; + width:100%; +} +.tableSubHeadingColor { + background-color: #EEEEFF; +} +.altColor { + background-color:#eeeeef; +} +.rowColor { + background-color:#ffffff; +} +.overviewSummary td, .packageSummary td, .contentContainer ul.blockList li.blockList td, .summary td, .classUseContainer td, .constantValuesContainer td { + text-align:left; + padding:3px 3px 3px 7px; +} +th.colFirst, th.colLast, th.colOne, .constantValuesContainer th { + background:#dee3e9; + border-top:1px solid #9eadc0; + border-bottom:1px solid #9eadc0; + text-align:left; + padding:3px 3px 3px 7px; +} +td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { + font-weight:bold; +} +td.colFirst, th.colFirst { + border-left:1px solid #9eadc0; + white-space:nowrap; +} +td.colLast, th.colLast { + border-right:1px solid #9eadc0; +} +td.colOne, th.colOne { + border-right:1px solid #9eadc0; + border-left:1px solid #9eadc0; +} +table.overviewSummary { + padding:0px; + margin-left:0px; +} +table.overviewSummary td.colFirst, table.overviewSummary th.colFirst, +table.overviewSummary td.colOne, table.overviewSummary th.colOne { + width:25%; + vertical-align:middle; +} +table.packageSummary td.colFirst, table.overviewSummary th.colFirst { + width:25%; + vertical-align:middle; +} +/* +Content styles +*/ +.description pre { + margin-top:0; +} +.deprecatedContent { + margin:0; + padding:10px 0; +} +.docSummary { + padding:0; +} +/* +Formatting effect styles +*/ +.sourceLineNo { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:.9em; +} +.block { + display:block; + margin:3px 0 0 0; +} +.strong { + font-weight:bold; +} + +/* + Fixes for a number of issues with the default stylesheet. + */ + + /* Fixes huge font size in <pre>{@code} blocks. */ + pre code { + font-size:inherit; + } + +/* + Fixes issue with no blank line before <pre> in class-level Javadoc + when the <pre> is preceded by a block of text with no <p>. + */ + .description .block pre { + margin-top:1em; + } \ No newline at end of file diff --git a/dev/android/sweetblue/docs/api/help-doc.html b/dev/android/sweetblue/docs/api/help-doc.html new file mode 100644 index 0000000000000000000000000000000000000000..bdf4aeb510ef3d0c525560f2369f6929156d7d5b --- /dev/null +++ b/dev/android/sweetblue/docs/api/help-doc.html @@ -0,0 +1,223 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>API Help (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="doc_style.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="API Help (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="overview-summary.html">Overview</a></li> +<li>Package</li> +<li>Class</li> +<li><a href="overview-tree.html">Tree</a></li> +<li><a href="deprecated-list.html">Deprecated</a></li> +<li><a href="index-all.html">Index</a></li> +<li class="navBarCell1Rev">Help</li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev</li> +<li>Next</li> +</ul> +<ul class="navList"> +<li><a href="index.html?help-doc.html" target="_top">Frames</a></li> +<li><a href="help-doc.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 class="title">How This API Document Is Organized</h1> +<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div> +</div> +<div class="contentContainer"> +<ul class="blockList"> +<li class="blockList"> +<h2>Overview</h2> +<p>The <a href="overview-summary.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.</p> +</li> +<li class="blockList"> +<h2>Package</h2> +<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:</p> +<ul> +<li>Interfaces (italic)</li> +<li>Classes</li> +<li>Enums</li> +<li>Exceptions</li> +<li>Errors</li> +<li>Annotation Types</li> +</ul> +</li> +<li class="blockList"> +<h2>Class/Interface</h2> +<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p> +<ul> +<li>Class inheritance diagram</li> +<li>Direct Subclasses</li> +<li>All Known Subinterfaces</li> +<li>All Known Implementing Classes</li> +<li>Class/interface declaration</li> +<li>Class/interface description</li> +</ul> +<ul> +<li>Nested Class Summary</li> +<li>Field Summary</li> +<li>Constructor Summary</li> +<li>Method Summary</li> +</ul> +<ul> +<li>Field Detail</li> +<li>Constructor Detail</li> +<li>Method Detail</li> +</ul> +<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p> +</li> +<li class="blockList"> +<h2>Annotation Type</h2> +<p>Each annotation type has its own separate page with the following sections:</p> +<ul> +<li>Annotation Type declaration</li> +<li>Annotation Type description</li> +<li>Required Element Summary</li> +<li>Optional Element Summary</li> +<li>Element Detail</li> +</ul> +</li> +<li class="blockList"> +<h2>Enum</h2> +<p>Each enum has its own separate page with the following sections:</p> +<ul> +<li>Enum declaration</li> +<li>Enum description</li> +<li>Enum Constant Summary</li> +<li>Enum Constant Detail</li> +</ul> +</li> +<li class="blockList"> +<h2>Tree (Class Hierarchy)</h2> +<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.</p> +<ul> +<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li> +<li>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</li> +</ul> +</li> +<li class="blockList"> +<h2>Deprecated API</h2> +<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p> +</li> +<li class="blockList"> +<h2>Index</h2> +<p>The <a href="index-all.html">Index</a> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</p> +</li> +<li class="blockList"> +<h2>Prev/Next</h2> +<p>These links take you to the next or previous class, interface, package, or related page.</p> +</li> +<li class="blockList"> +<h2>Frames/No Frames</h2> +<p>These links show and hide the HTML frames. All pages are available with or without frames.</p> +</li> +<li class="blockList"> +<h2>All Classes</h2> +<p>The <a href="allclasses-noframe.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p> +</li> +<li class="blockList"> +<h2>Serialized Form</h2> +<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p> +</li> +<li class="blockList"> +<h2>Constant Field Values</h2> +<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p> +</li> +</ul> +<span class="emphasizedPhrase">This help file applies to API documentation generated using the standard doclet.</span></div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="overview-summary.html">Overview</a></li> +<li>Package</li> +<li>Class</li> +<li><a href="overview-tree.html">Tree</a></li> +<li><a href="deprecated-list.html">Deprecated</a></li> +<li><a href="index-all.html">Index</a></li> +<li class="navBarCell1Rev">Help</li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev</li> +<li>Next</li> +</ul> +<ul class="navList"> +<li><a href="index.html?help-doc.html" target="_top">Frames</a></li> +<li><a href="help-doc.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/index-all.html b/dev/android/sweetblue/docs/api/index-all.html new file mode 100644 index 0000000000000000000000000000000000000000..67aebc0393966bbc5749a486ba89b680880c46b5 --- /dev/null +++ b/dev/android/sweetblue/docs/api/index-all.html @@ -0,0 +1,7780 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>Index (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="doc_style.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Index (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="overview-summary.html">Overview</a></li> +<li>Package</li> +<li>Class</li> +<li><a href="overview-tree.html">Tree</a></li> +<li><a href="deprecated-list.html">Deprecated</a></li> +<li class="navBarCell1Rev">Index</li> +<li><a href="help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev</li> +<li>Next</li> +</ul> +<ul class="navList"> +<li><a href="index.html?index-all.html" target="_top">Frames</a></li> +<li><a href="index-all.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="contentContainer"><a href="#I:A">A</a> <a href="#I:B">B</a> <a href="#I:C">C</a> <a href="#I:D">D</a> <a href="#I:E">E</a> <a href="#I:F">F</a> <a href="#I:G">G</a> <a href="#I:H">H</a> <a href="#I:I">I</a> <a href="#I:K">K</a> <a href="#I:L">L</a> <a href="#I:M">M</a> <a href="#I:N">N</a> <a href="#I:O">O</a> <a href="#I:P">P</a> <a href="#I:Q">Q</a> <a href="#I:R">R</a> <a href="#I:S">S</a> <a href="#I:T">T</a> <a href="#I:U">U</a> <a href="#I:V">V</a> <a href="#I:W">W</a> <a href="#I:Z">Z</a> <a name="I:A"> +<!-- --> +</a> +<h2 class="title">A</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/compat/K_Util.html#abortReliableWrite-com.idevicesinc.sweetblue.BleDevice-">abortReliableWrite(BleDevice)</a></span> - Static method in class com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/K_Util.html" title="class in com.idevicesinc.sweetblue.compat">K_Util</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/P_StringHandler.html#ACCEPT">ACCEPT</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue">P_StringHandler</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge--">acknowledge()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></dt> +<dd> +<div class="block">Return this from <a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"><code>BleManagerConfig.ScanFilter.onEvent(ScanEvent)</code></a> to acknowledge the discovery.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge-com.idevicesinc.sweetblue.BleDeviceConfig-">acknowledge(BleDeviceConfig)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge--"><code>BleManagerConfig.ScanFilter.Please.acknowledge()</code></a> but allows you to pass a <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> + instance to the <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> that's about to be created.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledgeIf-boolean-">acknowledgeIf(boolean)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></dt> +<dd> +<div class="block">Returns <a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge--"><code>BleManagerConfig.ScanFilter.Please.acknowledge()</code></a> if the given condition holds <code>true</code>, <a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#ignore--"><code>BleManagerConfig.ScanFilter.Please.ignore()</code></a> otherwise.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledgeIf-boolean-com.idevicesinc.sweetblue.BleDeviceConfig-">acknowledgeIf(boolean, BleDeviceConfig)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledgeIf-boolean-"><code>BleManagerConfig.ScanFilter.Please.acknowledgeIf(boolean)</code></a> but lets you pass a <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> as well.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#activity--">activity()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a></dt> +<dd> +<div class="block">Returns the <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app"><code>Activity</code></a> associated with the Event</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleWriteTransaction.html#add-com.idevicesinc.sweetblue.BleDevice.WriteBuilder-">add(BleDevice.WriteBuilder)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a></dt> +<dd> +<div class="block">Add an <a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.WriteBuilder</code></a> to the write queue.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleWriteTransaction.html#add-java.util.UUID-byte:A-">add(UUID, byte[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a></dt> +<dd> +<div class="block">Add a write to the write queue.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleWriteTransaction.html#add-java.util.UUID-java.util.UUID-byte:A-">add(UUID, UUID, byte[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a></dt> +<dd> +<div class="block">Add a write to the write queue.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html#add-java.lang.String-java.lang.String-">add(String, String)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils">BasicUuidNameMap</a></dt> +<dd> +<div class="block">Add a <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>-to-debug name entry.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EventQueue.html#add-com.idevicesinc.sweetblue.utils.GenericListener_Void-T_Event-">add(GenericListener_Void<T_Event>, T_Event)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EventQueue.html" title="class in com.idevicesinc.sweetblue.utils">EventQueue</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#add_multiple-java.util.Iterator-int-long-">add_multiple(Iterator<HistoricalData>, int, long)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#add_multiple-com.idevicesinc.sweetblue.utils.ForEach_Returning-int-long-">add_multiple(ForEach_Returning<HistoricalData>, int, long)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#add_multiple-java.util.Iterator-int-long-">add_multiple(Iterator<HistoricalData>, int, long)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#add_multiple-com.idevicesinc.sweetblue.utils.ForEach_Returning-int-long-">add_multiple(ForEach_Returning<HistoricalData>, int, long)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#add_multiple_end--">add_multiple_end()</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#add_multiple_end--">add_multiple_end()</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#add_multiple_next-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.HistoricalData-">add_multiple_next(String, UUID, HistoricalData)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#add_multiple_next-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.HistoricalData-">add_multiple_next(String, UUID, HistoricalData)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#add_multiple_start--">add_multiple_start()</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#add_multiple_start--">add_multiple_start()</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#add_single-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.HistoricalData-long-">add_single(String, UUID, HistoricalData, long)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#add_single-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.HistoricalData-long-">add_single(String, UUID, HistoricalData, long)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#add_single-com.idevicesinc.sweetblue.utils.HistoricalData-int-long-">add_single(HistoricalData, int, long)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#add_single-com.idevicesinc.sweetblue.utils.HistoricalData-int-long-">add_single(HistoricalData, int, long)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleWriteTransaction.html#addAll-java.util.Collection-">addAll(Collection<BleDevice.WriteBuilder>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a></dt> +<dd> +<div class="block">Add a Collection of writes to the write queue.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-">addHistoricalData(UUID, byte[], EpochTime)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Manual way to add data to the historical data list managed by this device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTime-byte:A-">addHistoricalData(UUID, EpochTime, byte[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Just an overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>BleDevice.addHistoricalData(UUID, byte[], EpochTime)</code></a> with the data and epochTime parameters switched around.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-">addHistoricalData(UUID, byte[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>BleDevice.addHistoricalData(UUID, byte[], EpochTime)</code></a> but uses <a href="http://d.android.com/reference/java/lang/System.html?is-external=true#currentTimeMillis--" title="class or interface in java.lang"><code>System.currentTimeMillis()</code></a> for the timestamp.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.utils.HistoricalData-">addHistoricalData(UUID, HistoricalData)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>BleDevice.addHistoricalData(UUID, byte[], EpochTime)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-java.util.Iterator-">addHistoricalData(UUID, Iterator<HistoricalData>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>BleDevice.addHistoricalData(UUID, byte[], EpochTime)</code></a> but for large datasets this is more efficient when writing to disk.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-java.util.List-">addHistoricalData(UUID, List<HistoricalData>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>BleDevice.addHistoricalData(UUID, byte[], EpochTime)</code></a> but for large datasets this is more efficient when writing to disk.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Returning-">addHistoricalData(UUID, ForEach_Returning<HistoricalData>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>BleDevice.addHistoricalData(UUID, byte[], EpochTime)</code></a> but for large datasets this is more efficient when writing to disk.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-">addService(BleService)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>BleServer.addService(BleService, ServiceAddListener)</code></a> without the listener.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-">addService(BleService, BleServer.ServiceAddListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Starts the process of adding a service to this server.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html#addTime-double-">addTime(double)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils">TimeEstimator</a></dt> +<dd> +<div class="block">Adds the time it took for a just-completed operation to finish + and updates the running average time.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/annotations/Advanced.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Advanced</span></a> - Annotation Type in <a href="com/idevicesinc/sweetblue/annotations/package-summary.html">com.idevicesinc.sweetblue.annotations</a></dt> +<dd> +<div class="block">This annotation is used to tag certain classes or methods that + someone new to the library can most-likely safely ignore.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#ADVERTISE_ANDROID_VERSION_NOT_SUPPORTED">ADVERTISE_ANDROID_VERSION_NOT_SUPPORTED</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> +<div class="block">Status code for (@link BleServer.AdvertiseListener.AdvertisingEvent#status} when trying to advertise on + a device which isn't running an android OS of Lollipop or higher.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#ADVERTISE_SUCCESS">ADVERTISE_SUCCESS</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> +<div class="block">Status code used for <a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html#status--"><code>BleServer.AdvertisingListener.AdvertisingEvent.status()</code></a> when advertising has been + successfully started.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#advertisedServices--">advertisedServices()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></dt> +<dd> +<div class="block">A list of <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>s parsed from <a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#scanRecord--"><code>BleManagerConfig.ScanFilter.ScanEvent.scanRecord()</code></a> as a convenience.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#advertisingFlags--">advertisingFlags()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></dt> +<dd> +<div class="block">Returns the advertising flags, if any, parsed from <a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#scanRecord--"><code>BleManagerConfig.ScanFilter.ScanEvent.scanRecord()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.html#allowCallsFromAllThreads">allowCallsFromAllThreads</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dt> +<dd> +<div class="block">Default is <code>false</code> - SweetBlue, for the sake of performance, stability, and simplicity, requires all back and forth to take place on the main thread, + with <a href="com/idevicesinc/sweetblue/utils/WrongThreadError.html" title="class in com.idevicesinc.sweetblue.utils"><code>WrongThreadError</code></a> thrown if not.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#allowDuplicatePollEntries">allowDuplicatePollEntries</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <code>false</code> - if <code>true</code> and you call <a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(UUID, Interval, BleDevice.ReadWriteListener)</code></a> + or <a href="com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startChangeTrackingPoll(UUID, Interval, BleDevice.ReadWriteListener)()</code></a> with identical + parameters then two identical polls would run which would probably be wasteful and unintentional.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#allowsRetry--">allowsRetry()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a></dt> +<dd> +<div class="block">Whether this status honors a <a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#isRetry--"><code>BleNode.ConnectionFailListener.Please.isRetry()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#allowsRetry--">allowsRetry()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a></dt> +<dd> +<div class="block">Whether this reason honors a <a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#isRetry--"><code>BleNode.ConnectionFailListener.Please.isRetry()</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/annotations/Alpha.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Alpha</span></a> - Annotation Type in <a href="com/idevicesinc/sweetblue/annotations/package-summary.html">com.idevicesinc.sweetblue.annotations</a></dt> +<dd> +<div class="block">This annotation is used to tag certain classes or methods that are considered "alpha" level quality.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.html#alwaysUseAutoConnect">alwaysUseAutoConnect</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dt> +<dd> +<div class="block">Default is <code>false</code> - see the <code>boolean autoConnect</code> parameters of + <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#connectGatt-android.content.Context-boolean-android.bluetooth.BluetoothGattCallback-" title="class or interface in android.bluetooth"><code>BluetoothDevice.connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)</code></a> + and <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#connect-android.bluetooth.BluetoothDevice-boolean-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.connect(BluetoothDevice, boolean)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#andAmendData-byte:A-">andAmendData(byte[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></dt> +<dd> +<div class="block">Last chance to amend or replace <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.data()</code></a> before it's written to the log.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#andAmendEpochTime-com.idevicesinc.sweetblue.utils.EpochTime-">andAmendEpochTime(EpochTime)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></dt> +<dd> +<div class="block">Last chance to amend or replace <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#epochTime--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.epochTime()</code></a> before it's written to the log.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#andLimitLogTo-long-">andLimitLogTo(long)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></dt> +<dd> +<div class="block">Calling this will crop the log to the given limit <i>before></i> <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.data()</code></a> is written.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/P_StringHandler.html#APP_NEEDS_PERMISSION">APP_NEEDS_PERMISSION</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue">P_StringHandler</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#appData">appData</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Field for app to associate any data it wants with the singleton instance of this class + instead of having to subclass or manage associative hash maps or something.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#appData">appData</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Field for app to associate any data it wants with instances of this class + instead of having to subclass or manage associative hash maps or something.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#appData--">appData()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Convenience method that casts <a href="com/idevicesinc/sweetblue/BleNode.html#appData"><code>BleNode.appData</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#appData--">appData()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a></dt> +<dd> +<div class="block">Returns the arbitrary app-specific data passed to BluetoothEnabler.BluetoothEnablerFilter.Please#withAppData(Object), or <code>null</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#ASSERT-boolean-">ASSERT(boolean)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Fires a callback to <a href="com/idevicesinc/sweetblue/BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleManager.AssertListener</code></a> if condition is false.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#ASSERT-boolean-java.lang.String-">ASSERT(boolean, String)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#ASSERT-boolean-"><code>BleManager.ASSERT(boolean)</code></a> but with an added message.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#attemptTime_latest--">attemptTime_latest()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">How long the last connection attempt took before failing.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#attemptTime_total--">attemptTime_total()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">How long it's been since <a href="com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> (or overloads) were initially called.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTransaction.Auth.html#Auth--">Auth()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Auth</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#autoConnectUsage--">autoConnectUsage()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">Whether <code>autoConnect=true</code> was passed to <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#connectGatt-android.content.Context-boolean-android.bluetooth.BluetoothGattCallback-" title="class or interface in android.bluetooth"><code>BluetoothDevice.connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#autoEnableNotifiesOnReconnect">autoEnableNotifiesOnReconnect</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <code>true</code> - whether to automatically enable notifications that were enabled via a call to any of the enableNotify() methods + in <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> upon device reconnection.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#autoGetServices">autoGetServices</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <code>true</code> - whether to automatically get services immediately after a <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> is + <a href="com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#autoPauseResumeDetection">autoPauseResumeDetection</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <code>true</code> - Controls whether <a href="com/idevicesinc/sweetblue/BleManager.html#onResume--"><code>BleManager.onResume()</code></a> and <a href="com/idevicesinc/sweetblue/BleManager.html#onPause--"><code>BleManager.onPause()</code></a> will get called + automatically by using <a href="http://d.android.com/reference/android/app/Application.ActivityLifecycleCallbacks.html?is-external=true" title="class or interface in android.app"><code>Application.ActivityLifecycleCallbacks</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#autoReconnectDeviceWhenBleTurnsBackOn">autoReconnectDeviceWhenBleTurnsBackOn</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <code>true</code> - if devices are kept in memory for a <a href="com/idevicesinc/sweetblue/BleManager.html#turnOff--"><code>BleManager.turnOff()</code></a>/<a href="com/idevicesinc/sweetblue/BleManager.html#turnOn--"><code>BleManager.turnOn()</code></a> cycle + (or a <a href="com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a>) because <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#retainDeviceWhenBleTurnsOff"><code>BleDeviceConfig.retainDeviceWhenBleTurnsOff</code></a> is <code>true</code>, then a <a href="com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> + will be attempted for any devices that were previously <a href="com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime">autoScanActiveTime</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a> - Length of time in seconds that the library will automatically scan for devices.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanDelayAfterBleTurnsOn">autoScanDelayAfterBleTurnsOn</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanDelayAfterResume">autoScanDelayAfterResume</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_AUTO_SCAN_DELAY_AFTER_RESUME">0.5</a> seconds - Unless <a href="com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a>, + this option will kick off a scan for <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime"><code>BleManagerConfig.autoScanActiveTime</code></a> seconds + <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanDelayAfterResume"><code>BleManagerConfig.autoScanDelayAfterResume</code></a> seconds after <a href="com/idevicesinc/sweetblue/BleManager.html#onResume--"><code>BleManager.onResume()</code></a> is called.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanDuringOta">autoScanDuringOta</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <code>false</code> - set this to allow or disallow autoscanning while any + <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> is <a href="com/idevicesinc/sweetblue/BleDeviceState.html#PERFORMING_OTA"><code>BleDeviceState.PERFORMING_OTA</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseInterval">autoScanPauseInterval</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_AUTO_SCAN_PAUSE_TIME">3.0</a> seconds - Length of time in seconds between automatic scan pulses defined by <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime"><code>BleManagerConfig.autoScanActiveTime</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseTimeWhileAppIsBackgrounded">autoScanPauseTimeWhileAppIsBackgrounded</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/utils/Interval.html#DISABLED"><code>Interval.DISABLED</code></a> - Same as <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseInterval"><code>BleManagerConfig.autoScanPauseInterval</code></a> except this value is used while the app is paused.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#autoUpdateRate">autoUpdateRate</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_AUTO_UPDATE_RATE">0.0202</a> seconds - The rate at which the library's internal update loop ticks.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#avg-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-">avg(HistoricalDataColumn)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsSelectColumn</a></dt> +<dd> </dd> +</dl> +<a name="I:B"> +<!-- --> +</a> +<h2 class="title">B</h2> +<dl> +<dt><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Backend_HistoricalDatabase</span></a> - Interface in <a href="com/idevicesinc/sweetblue/backend/historical/package-summary.html">com.idevicesinc.sweetblue.backend.historical</a></dt> +<dd> +<div class="block">Defines a specification for an interface over a disk-persisted database (probably SQL-based but not necessarily) + storing arbitrary historical data for each MAC-address/UUID combination provided.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Backend_HistoricalDatabase_Default</span></a> - Class in <a href="com/idevicesinc/sweetblue/backend/historical/package-summary.html">com.idevicesinc.sweetblue.backend.historical</a></dt> +<dd> +<div class="block">Defines a specification for an interface over a disk-persisted database (probably SQL-based but not necessarily) + storing arbitrary historical data for each MAC-address/UUID combination provided.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#Backend_HistoricalDatabase_Default-android.content.Context-">Backend_HistoricalDatabase_Default(Context)</a></span> - Constructor for class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#Backend_HistoricalDatabase_Default--">Backend_HistoricalDatabase_Default()</a></span> - Constructor for class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Backend_HistoricalDataList</span></a> - Interface in <a href="com/idevicesinc/sweetblue/backend/historical/package-summary.html">com.idevicesinc.sweetblue.backend.historical</a></dt> +<dd> +<div class="block">Defines a specification for an interface over an in-memory list of historical data that optionally syncs to/from + disk using an implementation of <a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><code>Backend_HistoricalDatabase</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Backend_HistoricalDataList.AsyncLoadCallback</span></a> - Interface in <a href="com/idevicesinc/sweetblue/backend/historical/package-summary.html">com.idevicesinc.sweetblue.backend.historical</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Backend_HistoricalDataList_Default</span></a> - Class in <a href="com/idevicesinc/sweetblue/backend/historical/package-summary.html">com.idevicesinc.sweetblue.backend.historical</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#Backend_HistoricalDataList_Default--">Backend_HistoricalDataList_Default()</a></span> - Constructor for class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/backend/Backend_Modules.html" title="class in com.idevicesinc.sweetblue.backend"><span class="typeNameLink">Backend_Modules</span></a> - Class in <a href="com/idevicesinc/sweetblue/backend/package-summary.html">com.idevicesinc.sweetblue.backend</a></dt> +<dd> +<div class="block">A collection of <a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang"><code>Class</code></a> instances used through <a href="http://d.android.com/reference/java/lang/Class.html?is-external=true#newInstance--" title="class or interface in java.lang"><code>Class.newInstance()</code></a> to create instances of backend modules.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/Backend_Modules.html#Backend_Modules--">Backend_Modules()</a></span> - Constructor for class com.idevicesinc.sweetblue.backend.<a href="com/idevicesinc/sweetblue/backend/Backend_Modules.html" title="class in com.idevicesinc.sweetblue.backend">Backend_Modules</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BasicUuidNameMap</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Manual convenience implementation of <a href="com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UuidNameMap</code></a> that's basically just a <a href="http://d.android.com/reference/java/util/HashMap.html?is-external=true" title="class or interface in java.util"><code>HashMap</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html#BasicUuidNameMap--">BasicUuidNameMap()</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils">BasicUuidNameMap</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#BATTERY_LEVEL">BATTERY_LEVEL</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#BATTERY_SERVICE_UUID">BATTERY_SERVICE_UUID</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html#between-com.idevicesinc.sweetblue.utils.EpochTimeRange-">between(EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_ClauseColumn</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#bit--">bit()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleCharacteristicPermission.html#bit--">bit()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleCharacteristicProperty.html#bit--">bit()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDescriptorPermission.html#bit--">bit()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceState.html#bit--">bit()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerState.html#bit--">bit()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServerState.html#bit--">bit()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--">bit()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></dt> +<dd> +<div class="block">Returns the bit (0x1, 0x2, 0x4, etc.) this enum represents based on the <a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--"><code>BitwiseEnum.ordinal()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#bits--">bits()</a></span> - Method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BitwiseEnum</span></a> - Interface in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Contract to force <code>enum</code> implementors to comply to common bitwise operations.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleAdvertisingPacket</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Class to used for advertising Bluetooth services, used with <a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-">BleAdvertisingPacket(UUID[], Map<UUID, byte[]>, int, int, byte[])</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Base constructor which all other constructors in this class overload.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-">BleAdvertisingPacket(UUID)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket(UUID, BleAdvertisingPacket.Option...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-int-">BleAdvertisingPacket(UUID, int)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-int-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket(UUID, int, BleAdvertisingPacket.Option...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-int-byte:A-">BleAdvertisingPacket(UUID, int, byte[])</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-int-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket(UUID, int, byte[], BleAdvertisingPacket.Option...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-">BleAdvertisingPacket(UUID[])</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket(UUID[], BleAdvertisingPacket.Option...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-int-">BleAdvertisingPacket(UUID[], int)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-int-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket(UUID[], int, BleAdvertisingPacket.Option...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-int-byte:A-">BleAdvertisingPacket(UUID[], int, byte[])</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-int-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket(UUID[], int, byte[], BleAdvertisingPacket.Option...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-java.util.UUID-byte:A-">BleAdvertisingPacket(UUID, UUID, byte[])</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket(UUID, UUID, byte[], BleAdvertisingPacket.Option...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.UUID-byte:A-">BleAdvertisingPacket(UUID[], UUID, byte[])</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket(UUID[], UUID, byte[], BleAdvertisingPacket.Option...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-java.util.Map-">BleAdvertisingPacket(UUID, Map<UUID, byte[]>)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-java.util.Map-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket(UUID, Map<UUID, byte[]>, BleAdvertisingPacket.Option...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-java.util.Map-int-byte:A-">BleAdvertisingPacket(UUID, Map<UUID, byte[]>, int, byte[])</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-java.util.Map-int-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket(UUID, Map<UUID, byte[]>, int, byte[], BleAdvertisingPacket.Option...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-byte:A-">BleAdvertisingPacket(UUID, byte[])</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket(UUID, byte[], BleAdvertisingPacket.Option...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-byte:A-int-byte:A-">BleAdvertisingPacket(UUID, byte[], int, byte[])</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a>, which sets the <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#CONNECTABLE"><code>BleAdvertisingPacket.Option.CONNECTABLE</code></a>, + and <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#INCLUDE_NAME"><code>BleAdvertisingPacket.Option.INCLUDE_NAME</code></a> flags.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID-byte:A-int-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">BleAdvertisingPacket(UUID, byte[], int, byte[], BleAdvertisingPacket.Option...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#BleAdvertisingPacket-java.util.UUID:A-java.util.Map-int-int-byte:A-"><code>BleAdvertisingPacket.BleAdvertisingPacket(UUID[], Map, int, int, byte[])</code></a></div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleAdvertisingPacket.Option</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Enumeration for advertising options</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleAdvertisingSettings</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Class used specify Ble Advertising settings.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-com.idevicesinc.sweetblue.utils.Interval-">BleAdvertisingSettings(BleAdvertisingSettings.BleAdvertisingMode, BleAdvertisingSettings.BleTransmissionPower, Interval)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingSettings</a></dt> +<dd> +<div class="block">Base constructor which sets all relevant Ble advertising settings</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings--">BleAdvertisingSettings()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingSettings</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-com.idevicesinc.sweetblue.utils.Interval-"><code>BleAdvertisingSettings.BleAdvertisingSettings(BleAdvertisingMode, BleTransmissionPower, Interval)</code></a>, which sets + the <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleAdvertisingMode</code></a> to <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#AUTO"><code>BleAdvertisingSettings.BleAdvertisingMode.AUTO</code></a>, + <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleTransmissionPower</code></a> to <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html#MEDIUM"><code>BleAdvertisingSettings.BleTransmissionPower.MEDIUM</code></a>, + and the timeout to <a href="com/idevicesinc/sweetblue/utils/Interval.html#ZERO"><code>Interval.ZERO</code></a> (no timeout).</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-com.idevicesinc.sweetblue.utils.Interval-">BleAdvertisingSettings(BleAdvertisingSettings.BleTransmissionPower, Interval)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingSettings</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-com.idevicesinc.sweetblue.utils.Interval-"><code>BleAdvertisingSettings.BleAdvertisingSettings(BleAdvertisingMode, BleTransmissionPower, Interval)</code></a>, which sets the + <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleAdvertisingMode</code></a> to <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#AUTO"><code>BleAdvertisingSettings.BleAdvertisingMode.AUTO</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-">BleAdvertisingSettings(BleAdvertisingSettings.BleTransmissionPower)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingSettings</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-com.idevicesinc.sweetblue.utils.Interval-"><code>BleAdvertisingSettings.BleAdvertisingSettings(BleAdvertisingMode, BleTransmissionPower, Interval)</code></a>, which sets the + <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleAdvertisingMode</code></a> to <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#AUTO"><code>BleAdvertisingSettings.BleAdvertisingMode.AUTO</code></a>, + and the timeout to <a href="com/idevicesinc/sweetblue/utils/Interval.html#ZERO"><code>Interval.ZERO</code></a> (no timeout).</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.utils.Interval-">BleAdvertisingSettings(Interval)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingSettings</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html#BleAdvertisingSettings-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode-com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower-com.idevicesinc.sweetblue.utils.Interval-"><code>BleAdvertisingSettings.BleAdvertisingSettings(BleAdvertisingMode, BleTransmissionPower, Interval)</code></a>, which sets the + <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleAdvertisingMode</code></a> to <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#AUTO"><code>BleAdvertisingSettings.BleAdvertisingMode.AUTO</code></a>, and + <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleTransmissionPower</code></a> to <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html#MEDIUM"><code>BleAdvertisingSettings.BleTransmissionPower.MEDIUM</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleAdvertisingSettings.BleAdvertisingMode</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Type-safe parallel of static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleAdvertisingSettings.BleTransmissionPower</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Type-safe parallel of static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleCharacteristic.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleCharacteristic</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Proxy of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic</code></a> to force stricter compile-time checks and order of operations + when creating characteristics for <a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleCharacteristic.html#BleCharacteristic-java.util.UUID-com.idevicesinc.sweetblue.BleCharacteristicProperty-com.idevicesinc.sweetblue.BleCharacteristicPermission-com.idevicesinc.sweetblue.BleDescriptor...-">BleCharacteristic(UUID, BleCharacteristicProperty, BleCharacteristicPermission, BleDescriptor...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristic.html" title="class in com.idevicesinc.sweetblue">BleCharacteristic</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleCharacteristic.html#BleCharacteristic-java.util.UUID-com.idevicesinc.sweetblue.BleDescriptor-com.idevicesinc.sweetblue.BleCharacteristicPermission-com.idevicesinc.sweetblue.BleCharacteristicProperty...-">BleCharacteristic(UUID, BleDescriptor, BleCharacteristicPermission, BleCharacteristicProperty...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristic.html" title="class in com.idevicesinc.sweetblue">BleCharacteristic</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleCharacteristic.html#BleCharacteristic-java.util.UUID-com.idevicesinc.sweetblue.BleDescriptor-com.idevicesinc.sweetblue.BleCharacteristicProperty-com.idevicesinc.sweetblue.BleCharacteristicPermission...-">BleCharacteristic(UUID, BleDescriptor, BleCharacteristicProperty, BleCharacteristicPermission...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristic.html" title="class in com.idevicesinc.sweetblue">BleCharacteristic</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleCharacteristic.html#BleCharacteristic-java.util.UUID-com.idevicesinc.sweetblue.BleCharacteristicPermission-com.idevicesinc.sweetblue.BleCharacteristicProperty-com.idevicesinc.sweetblue.BleDescriptor...-">BleCharacteristic(UUID, BleCharacteristicPermission, BleCharacteristicProperty, BleDescriptor...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristic.html" title="class in com.idevicesinc.sweetblue">BleCharacteristic</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleCharacteristic.html#BleCharacteristic-java.util.UUID-com.idevicesinc.sweetblue.BleCharacteristicProperty:A-com.idevicesinc.sweetblue.BleCharacteristicPermission:A-com.idevicesinc.sweetblue.BleDescriptor...-">BleCharacteristic(UUID, BleCharacteristicProperty[], BleCharacteristicPermission[], BleDescriptor...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristic.html" title="class in com.idevicesinc.sweetblue">BleCharacteristic</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleCharacteristicPermission</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">This enum enforces compile-time constraints over various public static int PERMISSION_ members + of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleCharacteristicProperty</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">This enum enforces compile-time constraints over various public static int PROPERTY_ members + of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleConnectionPriority</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">This enum enforces compile-time constraints over various public static int CONNECTION_PRIORITY_* members + of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGatt</code></a> and is passed to <a href="com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setConnectionPriority(BleConnectionPriority, BleDevice.ReadWriteListener)</code></a> + and returned from <a href="com/idevicesinc/sweetblue/BleDevice.html#getConnectionPriority--"><code>BleDevice.getConnectionPriority()</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDescriptor</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Proxy of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor</code></a> to force stricter compile-time checks and order of operations + when creating descriptors for <a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDescriptor.html#BleDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDescriptorPermission-">BleDescriptor(UUID, BleDescriptorPermission)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue">BleDescriptor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDescriptor.html#BleDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDescriptorPermission...-">BleDescriptor(UUID, BleDescriptorPermission...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue">BleDescriptor</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDescriptorPermission</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">This enum enforces compile-time constraints over various public static int PERMISSION_ members + of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattDescriptor.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattDescriptor</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">This is the one other class you will use the most besides <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.BondListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Pass an instance of this listener to <a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_Bond-com.idevicesinc.sweetblue.BleDevice.BondListener-"><code>BleDevice.setListener_Bond(BondListener)</code></a> or <a href="com/idevicesinc/sweetblue/BleDevice.html#bond-com.idevicesinc.sweetblue.BleDevice.BondListener-"><code>BleDevice.bond(BondListener)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.BondListener.BondEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Struct passed to <a href="com/idevicesinc/sweetblue/BleDevice.BondListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.BondListener.BondEvent-"><code>BleDevice.BondListener.onEvent(BondEvent)</code></a> to provide more information about a <a href="com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>BleDevice.bond()</code></a> attempt.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.BondListener.Status</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Used on <a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#status--"><code>BleDevice.BondListener.BondEvent.status()</code></a> to roughly enumerate success or failure.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ConnectionFailListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provide an implementation of this callback to <a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>BleDevice.setListener_ConnectionFail(ConnectionFailListener)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ConnectionFailListener.ConnectionFailEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Structure passed to <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(ConnectionFailEvent)</code></a> to provide more info about how/why the connection failed.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ConnectionFailListener.Status</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">The reason for the connection failure.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ConnectionFailListener.Timing</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">For <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#NATIVE_CONNECTION_FAILED"><code>BleDevice.ConnectionFailListener.Status.NATIVE_CONNECTION_FAILED</code></a>, <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#DISCOVERING_SERVICES_FAILED"><code>BleDevice.ConnectionFailListener.Status.DISCOVERING_SERVICES_FAILED</code></a>, and + <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#BONDING_FAILED"><code>BleDevice.ConnectionFailListener.Status.BONDING_FAILED</code></a>, gives further timing information on when the failure took place.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.DefaultConnectionFailListener</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Default implementation of <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener</code></a> that attempts a certain number of retries.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ReadWriteListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provide an implementation of this callback to various methods like <a href="com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(UUID, ReadWriteListener)</code></a>, + <a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.write(UUID, byte[], ReadWriteListener)</code></a>, <a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(UUID, Interval, ReadWriteListener)</code></a>, + <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a>, <a href="com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.readRssi(ReadWriteListener)</code></a>, etc.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ReadWriteListener.ReadWriteEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provides a bunch of information about a completed read, write, or notification.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ReadWriteListener.Status</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">A value returned to <a href="com/idevicesinc/sweetblue/utils/GenericListener_Void.html#onEvent-T_Event-"><code>GenericListener_Void.onEvent(Event)</code></a> + by way of <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#status--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.status()</code></a> that indicates success of the + operation or the reason for its failure.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ReadWriteListener.Target</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">The type of GATT "object", provided by <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.target()</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ReadWriteListener.Type</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">The type of operation for a <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> - read, write, poll, etc.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.StateListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provide an implementation to <a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleDevice.setListener_State(StateListener)</code></a> and/or + <a href="com/idevicesinc/sweetblue/BleManager.html#setListener_DeviceState-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleManager.setListener_DeviceState(BleDevice.StateListener)</code></a> to receive state change events.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.StateListener.StateEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Subclass that adds the device field.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.WriteBuilder</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Builder class for sending a write over BLE.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provides a number of options to (optionally) pass to <a href="com/idevicesinc/sweetblue/BleDevice.html#setConfig-com.idevicesinc.sweetblue.BleDeviceConfig-"><code>BleDevice.setConfig(BleDeviceConfig)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#BleDeviceConfig--">BleDeviceConfig()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Creates a <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> with all default options set.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig.BondFilter</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">As of now there are two main default uses for this class...</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig.BondFilter.CharacteristicEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Struct passed to <a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html#onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.CharacteristicEvent-"><code>BleDeviceConfig.BondFilter.onEvent(CharacteristicEvent)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig.BondFilter.CharacteristicEventType</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">An enumeration of the type of characteristic operation for a <a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig.BondFilter.CharacteristicEvent</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig.BondFilter.Please</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Return value for the various interface methods of <a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleDeviceConfig.BondFilter</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig.BondFilter.StateChangeEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Just a dummy subclass of <a href="com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.StateListener.StateEvent</code></a> so that this gets auto-imported for implementations of <a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleDeviceConfig.BondFilter</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig.DefaultBondFilter</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Default implementation of <a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleDeviceConfig.BondFilter</code></a> that unbonds for certain phone models upon discovery and disconnects.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceIterator</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Implementation of <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util"><code>Iterator</code></a> for <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> instances, returned from <a href="com/idevicesinc/sweetblue/BleManager.html#getDevices--"><code>BleManager.getDevices()</code></a> and its overloads.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceIterator.html#BleDeviceIterator-java.util.List-">BleDeviceIterator(List<BleDevice>)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue">BleDeviceIterator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceIterator.html#BleDeviceIterator-java.util.List-int-">BleDeviceIterator(List<BleDevice>, int)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue">BleDeviceIterator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceIterator.html#BleDeviceIterator-java.util.List-java.lang.Object...-">BleDeviceIterator(List<BleDevice>, Object...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue">BleDeviceIterator</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceOrigin</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Enumeration signifying how a <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> instance was created.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceState</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">An enumeration of the various states that a <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> can be in.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">The entry point to the library.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#bleManager--">bleManager()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.AssertListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Mostly only for SweetBlue library developers.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.AssertListener.AssertEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Struct passed to <a href="com/idevicesinc/sweetblue/BleManager.AssertListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.AssertListener.AssertEvent-"><code>BleManager.AssertListener.onEvent(BleManager.AssertListener.AssertEvent)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.DiscoveryListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provide an implementation to <a href="com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>BleManager.setListener_Discovery(BleManager.DiscoveryListener)</code></a> to receive + callbacks when a device is newly discovered, rediscovered, or undiscovered after calling various <a href="com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a> + or <a href="com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>BleManager.startPeriodicScan(Interval, Interval)</code></a> methods.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.DiscoveryListener.DiscoveryEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Struct passed to <a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"><code>BleManager.DiscoveryListener.onEvent(BleManager.DiscoveryListener.DiscoveryEvent)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.DiscoveryListener.LifeCycle</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Enumerates changes in the "discovered" state of a device.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManager.NativeStateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.NativeStateListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provide an implementation to <a href="com/idevicesinc/sweetblue/BleManager.html#setListener_NativeState-com.idevicesinc.sweetblue.BleManager.NativeStateListener-"><code>BleManager.setListener_NativeState(BleManager.NativeStateListener)</code></a> to receive callbacks + when the <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> undergoes a *native* <a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> change.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.NativeStateListener.NativeStateEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Class declared here to be make it implicitly imported for overrides.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManager.ResetListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.ResetListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provide an implementation to <a href="com/idevicesinc/sweetblue/BleManager.html#reset-com.idevicesinc.sweetblue.BleManager.ResetListener-"><code>BleManager.reset(BleManager.ResetListener)</code></a> + to be notified when a reset operation is complete.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.ResetListener.Progress</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Enumeration of the progress of the reset.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.ResetListener.ResetEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Struct passed to <a href="com/idevicesinc/sweetblue/BleManager.ResetListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.ResetListener.ResetEvent-"><code>BleManager.ResetListener.onEvent(BleManager.ResetListener.ResetEvent)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.StateListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provide an implementation to <a href="com/idevicesinc/sweetblue/BleManager.html#setListener_State-com.idevicesinc.sweetblue.BleManager.StateListener-"><code>BleManager.setListener_State(BleManager.StateListener)</code></a> to receive callbacks + when the <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> undergoes a <a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> change.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.StateListener.StateEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Subclass that adds the manager field.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.UhOhListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provide an implementation to <a href="com/idevicesinc/sweetblue/BleManager.html#setListener_UhOh-com.idevicesinc.sweetblue.BleManager.UhOhListener-"><code>BleManager.setListener_UhOh(BleManager.UhOhListener)</code></a> + to receive a callback when an <a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a> occurs.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.UhOhListener.Remedy</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">The suggested remedy for each <a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.UhOhListener.UhOh</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">An UhOh is a warning about an exceptional (in the bad sense) and unfixable problem with the underlying stack that + the app can warn its user about.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.UhOhListener.UhOhEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Struct passed to <a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOhEvent-"><code>BleManager.UhOhListener.onEvent(BleManager.UhOhListener.UhOhEvent)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerConfig</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provides a number of options to pass to the <a href="com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(Context, BleManagerConfig)</code></a> + singleton getter or <a href="com/idevicesinc/sweetblue/BleManager.html#setConfig-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.setConfig(BleManagerConfig)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#BleManagerConfig--">BleManagerConfig()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Creates a <a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> with all default options set.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#BleManagerConfig-boolean-">BleManagerConfig(boolean)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Convenience constructor that populates <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#uuidNameMaps"><code>BleManagerConfig.uuidNameMaps</code></a> with <a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><code>Uuids</code></a> + using <a href="com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><code>ReflectionUuidNameMap</code></a> if logging is enabled.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerConfig.DefaultScanFilter</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Convenience implementation of <a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleManagerConfig.ScanFilter</code></a> which filters using + a whitelist of known primary advertising <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>s passed in to the constructor.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerConfig.DeviceNameComparator</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Default sorter class for sorting the list of devices in <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerConfig.ScanFilter</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">An optional whitelisting mechanism for scanning.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerConfig.ScanFilter.Please</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Small struct passed back from <a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"><code>BleManagerConfig.ScanFilter.onEvent(ScanEvent)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerConfig.ScanFilter.ScanEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Instances of this class are passed to <a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"><code>BleManagerConfig.ScanFilter.onEvent(ScanEvent)</code></a> to aid in making a decision.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerState</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">An enumeration of the various states that a <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> can be in.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Abstract base class for <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> and <a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>, mostly just to statically tie their APIs together + wherever possible.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#BleNode-com.idevicesinc.sweetblue.BleManager-">BleNode(BleManager)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.ConnectionFailListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Base interface for <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener</code></a> and <a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.ConnectionFailListener.AutoConnectUsage</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Describes usage of the <code>autoConnect</code> parameter for either <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#connectGatt-android.content.Context-boolean-android.bluetooth.BluetoothGattCallback-" title="class or interface in android.bluetooth"><code>BluetoothDevice.connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)</code></a> + or <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattServer.html?is-external=true#connect-android.bluetooth.BluetoothDevice-boolean-" title="class or interface in android.bluetooth"><code>BluetoothGattServer.connect(BluetoothDevice, boolean)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.ConnectionFailListener.ConnectionFailEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Abstract base class for structures passed to <a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"><code>BleServer.ConnectionFailListener.onEvent(BleServer.ConnectionFailListener.ConnectionFailEvent)</code></a> + and <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)</code></a> to provide more info about how/why a connection failed.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.ConnectionFailListener.Please</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Return value for <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)</code></a> + and <a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"><code>BleServer.ConnectionFailListener.onEvent(BleServer.ConnectionFailListener.ConnectionFailEvent)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.HistoricalDataLoadListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">A callback that is used by various overloads of <a href="com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> that accept instances hereof.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Event struct passed to <a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html#onEvent-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent-"><code>BleNode.HistoricalDataLoadListener.onEvent(HistoricalDataLoadEvent)</code></a> that provides + further information about the status of a historical data load to memory using <a href="com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> + (or overloads).</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.HistoricalDataLoadListener.Status</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Enumerates the status codes for operations kicked off from <a href="com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> (or overloads).</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.HistoricalDataQueryListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">A callback that is used by <a href="com/idevicesinc/sweetblue/BleNode.html#select--"><code>BleNode.select()</code></a> to listen for when a database query is done processing.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Event struct passed to <a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html#onEvent-com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent-"><code>BleNode.HistoricalDataQueryListener.onEvent(HistoricalDataQueryEvent)</code></a> that provides + further information about the status of a historical data load to memory using <a href="com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> + (or overloads).</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.HistoricalDataQueryListener.Status</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Enumerates the status codes for operations kicked off from <a href="com/idevicesinc/sweetblue/BleNode.html#select--"><code>BleNode.select()</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provides a number of options to (optionally) pass to <a href="com/idevicesinc/sweetblue/BleServer.html#setConfig-com.idevicesinc.sweetblue.BleNodeConfig-"><code>BleServer.setConfig(BleNodeConfig)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.html#BleNodeConfig--">BleNodeConfig()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dt> +<dd> +<div class="block">Creates a <a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig</code></a> with all default options set.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.DefaultHistoricalDataLogFilter</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Default implementation of <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter</code></a> set on <a href="com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataLogFilter"><code>BleNodeConfig.historicalDataLogFilter</code></a> + that logs the most recent data reading to memory only, flushing the previous one.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.DefaultReconnectFilter</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Default implementation of <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.ReconnectFilter</code></a> that uses <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#retryInstantly--"><code>BleNodeConfig.ReconnectFilter.Please.retryInstantly()</code></a> for the + first reconnect attempt, and from then on uses the <a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> rate passed to the constructor</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.DefaultTaskTimeoutRequestFilter</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Default implementation of <a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleNodeConfig.TaskTimeoutRequestFilter</code></a> that simply sets the timeout + for all <a href="com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> instances to <a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html#DEFAULT_TASK_TIMEOUT"><code>BleNodeConfig.DefaultTaskTimeoutRequestFilter.DEFAULT_TASK_TIMEOUT</code></a> seconds.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.HistoricalDataFactory</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provide an instance to <a href="com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataFactory"><code>BleNodeConfig.historicalDataFactory</code></a> to return custom subclasses + of <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> if you would like.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.HistoricalDataLogFilter</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provide an instance of this class to <a href="com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataLogFilter"><code>BleNodeConfig.historicalDataLogFilter</code></a> to control + how/if historical data from BLE operations is logged.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Event passed to <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent-"><code>BleNodeConfig.HistoricalDataLogFilter.onEvent(HistoricalDataLogEvent)</code></a> that provides + information you can use to determine whether or not <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.data()</code></a> should be logged.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.HistoricalDataLogFilter.Please</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Special value returned from <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent-"><code>BleNodeConfig.HistoricalDataLogFilter.onEvent(HistoricalDataLogEvent)</code></a> + that determines if/how <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.data()</code></a> will get logged.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.HistoricalDataLogFilter.Source</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Signifies where the data came from, usually from a BLE read or notification.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.ReconnectFilter</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">An optional interface you can implement on <a href="com/idevicesinc/sweetblue/BleNodeConfig.html#reconnectFilter"><code>BleNodeConfig.reconnectFilter</code></a> to control reconnection behavior.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.ReconnectFilter.Please</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Return value for <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(ReconnectEvent)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.ReconnectFilter.ReconnectEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Struct passed to <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)</code></a> to aid in making a decision.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.ReconnectFilter.Type</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">An enum provided through <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#type--"><code>BleNodeConfig.ReconnectFilter.ReconnectEvent.type()</code></a> that describes what reconnect stage we're at.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.TaskTimeoutRequestFilter</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provides a way to control timeout behavior for various <a href="com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> instances.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.TaskTimeoutRequestFilter.Please</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Use static constructor methods to create instances to return from <a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent-"><code>BleNodeConfig.TaskTimeoutRequestFilter.onEvent(TaskTimeoutRequestEvent)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Event passed to <a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent-"><code>BleNodeConfig.TaskTimeoutRequestFilter.onEvent(TaskTimeoutRequestEvent)</code></a> that provides + information about the <a href="com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> that will soon be executed.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BleScanInfo</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html#BleScanInfo--">BleScanInfo()</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html#BleScanInfo-com.idevicesinc.sweetblue.utils.Pointer-com.idevicesinc.sweetblue.utils.Pointer-java.util.List-int-byte:A-java.util.Map-java.lang.String-">BleScanInfo(Pointer<Integer>, Pointer<Integer>, List<UUID>, int, byte[], Map<UUID, byte[]>, String)</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleScanMode</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Type-safe parallel of various static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>ScanSettings</code></a> and a way to + force pre-Lollipop scanning mode.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#bleScanner">bleScanner</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Allows overriding of Ble scanning behaviour in SweetBlue.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleScanPower</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Type-safe parallel of various static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>ScanSettings</code></a> for setting the scanning power + when using the Lollipop scanning API.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Get an instance from <a href="com/idevicesinc/sweetblue/BleManager.html#getServer--"><code>BleManager.getServer()</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.AdvertisingListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provide an implementation to <a href="com/idevicesinc/sweetblue/BleServer.html#setListener_Advertising-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>BleServer.setListener_Advertising(BleServer.AdvertisingListener)</code></a>, and + <a href="com/idevicesinc/sweetblue/BleManager.html#setListener_Advertising-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>BleManager.setListener_Advertising(BleServer.AdvertisingListener)</code></a> to receive a callback + when using <a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.AdvertisingListener.AdvertisingEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Sub class representing the Advertising Event</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.AdvertisingListener.Status</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Enumeration describing the m_status of calling <a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ConnectionFailListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provide an implementation of this callback to <a href="com/idevicesinc/sweetblue/BleServer.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>BleServer.setListener_ConnectionFail(ConnectionFailListener)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ConnectionFailListener.ConnectionFailEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Structure passed to <a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"><code>BleServer.ConnectionFailListener.onEvent(ConnectionFailEvent)</code></a> to provide more info about how/why the connection failed.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ConnectionFailListener.Status</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">The reason for the connection failure.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.DefaultConnectionFailListener</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Default implementation of <a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener</code></a> that attempts a certain number of retries.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ExchangeListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Tagging interface, not to be implemented directly as this is just the base interface to statically tie together + <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener</code></a> and <a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.OutgoingListener</code></a> with common enums/structures.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ExchangeListener.ExchangeEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Like <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener</code></a>, this class should not be used directly as this is just a base class to statically tie together + <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener.IncomingEvent</code></a> and <a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.OutgoingListener.OutgoingEvent</code></a> with a common API.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ExchangeListener.Target</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">The type of GATT object, provided by <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#target--"><code>BleServer.ExchangeListener.ExchangeEvent.target()</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ExchangeListener.Type</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">The type of exchange being executed, read, write, or notify.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.IncomingListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provide an instance through <a href="com/idevicesinc/sweetblue/BleServer.html#setListener_Incoming-com.idevicesinc.sweetblue.BleServer.IncomingListener-"><code>BleServer.setListener_Incoming(IncomingListener)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.IncomingListener.IncomingEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Struct passed to <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>BleServer.IncomingListener.onEvent(BleServer.IncomingListener.IncomingEvent)</code></a>} that provides details about the client and what it wants from us, the server.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.IncomingListener.Please</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Struct returned from <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>BleServer.IncomingListener.onEvent(IncomingEvent)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.OutgoingListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provide an instance to various static methods of <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener.Please</code></a> such as + <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.IncomingListener.Please.respondWithSuccess(BleServer.OutgoingListener)</code></a>, or <a href="com/idevicesinc/sweetblue/BleServer.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.setListener_Outgoing(OutgoingListener)</code></a>, + or <a href="com/idevicesinc/sweetblue/BleManager.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleManager.setListener_Outgoing(BleServer.OutgoingListener)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.OutgoingListener.OutgoingEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Struct passed to <a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.OutgoingListener.OutgoingEvent-"><code>BleServer.OutgoingListener.onEvent(BleServer.OutgoingListener.OutgoingEvent)</code></a> + that provides details of what was sent to the client and if it succeeded.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.OutgoingListener.Status</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Enumeration of the various success and error statuses possible for an outgoing message.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ServiceAddListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provide an implementation of this callback to <a href="com/idevicesinc/sweetblue/BleServer.html#setListener_ServiceAdd-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>BleServer.setListener_ServiceAdd(ServiceAddListener)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ServiceAddListener.ServiceAddEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Event struct passed to <a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ServiceAddListener.ServiceAddEvent-"><code>BleServer.ServiceAddListener.onEvent(ServiceAddEvent)</code></a> to give you information about the success + of a service addition or the reason(s) for its failure.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ServiceAddListener.Status</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Enumeration of the different ways that service addition can fail (and one way for it to succeed), + provided through <a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#status--"><code>BleServer.OutgoingListener.OutgoingEvent.status()</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.StateListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Provide an implementation to <a href="com/idevicesinc/sweetblue/BleServer.html#setListener_State-com.idevicesinc.sweetblue.BleServer.StateListener-"><code>BleServer.setListener_State(StateListener)</code></a> and/or + <a href="com/idevicesinc/sweetblue/BleManager.html#setListener_ServerState-com.idevicesinc.sweetblue.BleServer.StateListener-"><code>BleManager.setListener_ServerState(BleServer.StateListener)</code></a> to receive state change events.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.StateListener.StateEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Subclass that adds the <a href="com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#server--"><code>BleServer.StateListener.StateEvent.server()</code></a>, <a href="com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#macAddress--"><code>BleServer.StateListener.StateEvent.macAddress()</code></a>, and <a href="com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#gattStatus--"><code>BleServer.StateListener.StateEvent.gattStatus()</code></a> fields.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServerState</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">An enumeration of the various states that a <a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> can be in on a per-client (mac address) basis.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleService.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleService</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Proxy of <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattService</code></a> to force stricter compile-time checks and order of operations + when creating services for <a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleService.html#BleService-java.util.UUID-com.idevicesinc.sweetblue.BleCharacteristic...-">BleService(UUID, BleCharacteristic...)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleService.html" title="class in com.idevicesinc.sweetblue">BleService</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/BleServices.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServices</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Static-only class with some common BLE services for <a href="com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-"><code>BleServer.addService(BleService)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleStatuses</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">A collection of various BLE status codes that for whatever reason are not exposed through Android's + public BLE layer - this can be because they are <code>public</code> but use the @hide annotation, + or they are not <code>public</code> in the first place, or they can only be found by Googling + for native C/C++ library code.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#BleStatuses--">BleStatuses()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#bleStatusHelper">bleStatusHelper</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Allows overriding of Ble Status's.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleTask</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Under the hood, SweetBlue uses a priority task queue to serialize all interaction with the native BLE stack.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleTransaction</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Abstract base class for transactions passed to various methods of <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTransaction.html#BleTransaction--">BleTransaction()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleTransaction.Auth</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Tagging subclass to force type-discrepancy for various <a href="com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> overloads.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleTransaction.EndReason</span></a> - Enum in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Values are passed to <a href="com/idevicesinc/sweetblue/BleTransaction.html#onEnd-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleTransaction.EndReason-"><code>BleTransaction.onEnd(BleDevice, EndReason)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleTransaction.Init</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Tagging subclass to force type-discrepancy for various <a href="com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> overloads.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleTransaction.Ota</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Tagging subclass to force type-correctness for <a href="com/idevicesinc/sweetblue/BleDevice.html#performOta-com.idevicesinc.sweetblue.BleTransaction.Ota-"><code>BleDevice.performOta(BleTransaction.Ota)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleWriteTransaction</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleWriteTransaction.html#BleWriteTransaction--">BleWriteTransaction()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a></dt> +<dd> +<div class="block">Use this constructor if you don't plan on setting a <a href="com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleWriteTransaction.FailListener</code></a> to listen for + write fails in the queue.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleWriteTransaction.html#BleWriteTransaction-com.idevicesinc.sweetblue.BleWriteTransaction.FailListener-">BleWriteTransaction(BleWriteTransaction.FailListener)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleWriteTransaction.html#BleWriteTransaction-com.idevicesinc.sweetblue.BleWriteTransaction.WriteQueueListener-com.idevicesinc.sweetblue.BleWriteTransaction.FailListener-"><code>BleWriteTransaction.BleWriteTransaction(WriteQueueListener, FailListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleWriteTransaction.html#BleWriteTransaction-com.idevicesinc.sweetblue.BleWriteTransaction.WriteQueueListener-com.idevicesinc.sweetblue.BleWriteTransaction.FailListener-">BleWriteTransaction(BleWriteTransaction.WriteQueueListener, BleWriteTransaction.FailListener)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a></dt> +<dd> +<div class="block">Instantiate a new <a href="com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleWriteTransaction</code></a> with a <a href="com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleWriteTransaction.WriteQueueListener</code></a>, which + allows you to perform operations between each write in the queue, and a <a href="com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleWriteTransaction.FailListener</code></a> to + tell the Transaction what to do on a write failure.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleWriteTransaction.FailListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Interface for handling failures when writing.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleWriteTransaction.FailListener.Please</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Class used to dictate what should happen if a write fail happens.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleWriteTransaction.WriteQueueListener</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Interface for listening between each write made in the queue.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleWriteTransaction.WriteQueueListener.Please</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">Class used to tell this <a href="com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleWriteTransaction</code></a> to either proceed to the next write, + or cancel this transaction.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#BLUETOOTH_CONNECTED_HASH">BLUETOOTH_CONNECTED_HASH</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">This class is used to handle the new hairy logic for getting bluetooth low-energy scan results that is introduced with <a href="http://d.android.com/reference/android/os/Build.VERSION_CODES.html?is-external=true#M" title="class or interface in android.os"><code>Build.VERSION_CODES.M</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler.BluetoothEnablerFilter</span></a> - Interface in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Provide an implementation to <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#BluetoothEnabler-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-"><code>BluetoothEnabler.BluetoothEnabler(Activity, BluetoothEnablerFilter)</code></a> to receive callbacks or simply use the provided class + <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.DefaultBluetoothEnablerFilter</code></a> by calling <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-"><code>BluetoothEnabler.start(Activity)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Events passed to <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html#onEvent-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent-"><code>BluetoothEnabler.BluetoothEnablerFilter.onEvent(BluetoothEnablerEvent)</code></a> so that the programmer can assign logic to the user's decision to + enable or disable certain required permissions and settings.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler.BluetoothEnablerFilter.Please</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Return value for the interface method <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html#onEvent-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent-"><code>BluetoothEnabler.BluetoothEnablerFilter.onEvent(BluetoothEnablerEvent)</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler.BluetoothEnablerFilter.Stage</span></a> - Enum in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Enumerates changes in the "enabling" stage before a + Bluetooth LE scan is started.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler.BluetoothEnablerFilter.Status</span></a> - Enum in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">The Status of the current <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a></div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler.DefaultBluetoothEnablerFilter</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">A default implementation of BluetoothEnablerListener used in <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-"><code>BluetoothEnabler.start(Activity)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#bond-com.idevicesinc.sweetblue.BleDevice.BondListener-">bond(BleDevice.BondListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>BleDevice.bond()</code></a> but you can pass a listener to be notified of the details behind success or failure.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#bond--">bond()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Attempts to create a bond.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bond--">bond()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></dt> +<dd> +<div class="block">Device should be bonded if it isn't already.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bond-com.idevicesinc.sweetblue.BleDevice.BondListener-">bond(BleDevice.BondListener)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bond--"><code>BleDeviceConfig.BondFilter.Please.bond()</code></a> but lets you pass a <a href="com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.BondListener</code></a> as well.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#BOND_FAIL_REASON_NOT_APPLICABLE">BOND_FAIL_REASON_NOT_APPLICABLE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> +<div class="block">Used on <a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#failReason--"><code>BleDevice.BondListener.BondEvent.failReason()</code></a> when <a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#status--"><code>BleDevice.BondListener.BondEvent.status()</code></a> + isn't applicable, for example <a href="com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#SUCCESS"><code>BleDevice.BondListener.Status.SUCCESS</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#BOND_FAIL_REASON_NOT_AVAILABLE">BOND_FAIL_REASON_NOT_AVAILABLE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> +<div class="block">Used when attempting to bond on a device whose API level is less than 19, or does not have access to android's + <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#createBond--" title="class or interface in android.bluetooth"><code>BluetoothDevice.createBond()</code></a> method.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#BOND_SUCCESS">BOND_SUCCESS</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> +<div class="block">A bond attempt succeeded.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#bondFailReason--">bondFailReason()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">See <a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#failReason--"><code>BleDevice.BondListener.BondEvent.failReason()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#bondFilter">bondFilter</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is instance of <a href="com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig.DefaultBondFilter</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bondIf-boolean-">bondIf(boolean)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></dt> +<dd> +<div class="block">Returns <a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bond--"><code>BleDeviceConfig.BondFilter.Please.bond()</code></a> if the given condition holds <code>true</code>, <a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#doNothing--"><code>BleDeviceConfig.BondFilter.Please.doNothing()</code></a> otherwise.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bondIf-boolean-com.idevicesinc.sweetblue.BleDevice.BondListener-">bondIf(boolean, BleDevice.BondListener)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bondIf-boolean-"><code>BleDeviceConfig.BondFilter.Please.bondIf(boolean)</code></a> but lets you pass a <a href="com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.BondListener</code></a> as well.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#bondingFailFailsConnection">bondingFailFailsConnection</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <code>true</code> - controls whether <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#BONDING_FAILED"><code>BleDevice.ConnectionFailListener.Status.BONDING_FAILED</code></a> is capable of + inducing <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent)</code></a> + while a device is <a href="com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING_OVERALL"><code>BleDeviceState.CONNECTING_OVERALL</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#boolToByte-boolean-">boolToByte(boolean)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#bytesToInt-byte:A-">bytesToInt(byte[])</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#bytesToLong-byte:A-">bytesToLong(byte[])</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_String.html#bytesToMacAddress-byte:A-">bytesToMacAddress(byte[])</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils">Utils_String</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#bytesToShort-byte:A-">bytesToShort(byte[])</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +</dl> +<a name="I:C"> +<!-- --> +</a> +<h2 class="title">C</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#cacheDeviceOnUndiscovery">cacheDeviceOnUndiscovery</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <code>true</code> - controls whether a <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> is placed into an in-memory cache when it becomes <a href="com/idevicesinc/sweetblue/BleDeviceState.html#UNDISCOVERED"><code>BleDeviceState.UNDISCOVERED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Reflection.html#callBooleanReturnMethod-java.lang.Object-java.lang.String-boolean-">callBooleanReturnMethod(Object, String, boolean)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Reflection.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Reflection</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Reflection.html#callBooleanReturnMethod-java.lang.Object-java.lang.String-java.lang.Class:A-boolean-java.lang.Object...-">callBooleanReturnMethod(Object, String, Class[], boolean, Object...)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Reflection.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Reflection</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html#cancel--">cancel()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.WriteQueueListener.Please</a></dt> +<dd> +<div class="block">Cancels this <a href="com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue"><code>BleWriteTransaction</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#cast--">cast()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Just some sugar for casting to subclasses.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#cast-java.lang.Class-">cast(Class<T>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Safer version of <a href="com/idevicesinc/sweetblue/BleNode.html#cast--"><code>BleNode.cast()</code></a> that will return <a href="com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> or <a href="com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a> + if the cast cannot be made.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#ChangeEvent-int-int-int-">ChangeEvent(int, int, int)</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#characteristic--">characteristic()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Forwards <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristic-java.util.UUID-java.util.UUID-"><code>BleNode.getNativeCharacteristic(UUID, UUID)</code></a>, which will be nonnull + if <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.target()</code></a> is <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#CHARACTERISTIC"><code>BleDevice.ReadWriteListener.Target.CHARACTERISTIC</code></a> or <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#DESCRIPTOR"><code>BleDevice.ReadWriteListener.Target.DESCRIPTOR</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#CHARACTERISTIC_PRESENTATION_FORMAT_DESCRIPTOR_UUID">CHARACTERISTIC_PRESENTATION_FORMAT_DESCRIPTOR_UUID</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#CHARACTERISTIC_USER_DESCRIPTION_DESCRIPTOR_UUID">CHARACTERISTIC_USER_DESCRIPTION_DESCRIPTOR_UUID</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#charUuid--">charUuid()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the characteristic associated with this <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html#charUuid--">charUuid()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEvent</a></dt> +<dd> +<div class="block">Returns the <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the characteristic in question.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#charUuid--">charUuid()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a></dt> +<dd> +<div class="block">The characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> associated with <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.data()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#charUuid--">charUuid()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a></dt> +<dd> +<div class="block">The ble characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> associated with the task if <a href="com/idevicesinc/sweetblue/BleTask.html#usesCharUuid--"><code>BleTask.usesCharUuid()</code></a> + returns <code>true</code>, or <a href="com/idevicesinc/sweetblue/utils/Uuids.html#INVALID"><code>Uuids.INVALID</code></a> otherwise.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#charUuid--">charUuid()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></dt> +<dd> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the characteristic associated with this <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Percent.html#clamp--">clamp()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></dt> +<dd> +<div class="block">Returns a new instance clamped between 0% and 100%.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearAllData--">clearAllData()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">One method to remove absolutely all "metadata" related to this device that is stored on disk and/or cached in memory in any way.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData--">clearHistoricalData()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Clears all <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-long-">clearHistoricalData(long)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Clears the first <code>count</code> number of <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-com.idevicesinc.sweetblue.utils.EpochTimeRange-">clearHistoricalData(EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Clears all <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device within the given range.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">clearHistoricalData(EpochTimeRange, long)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Clears the first <code>count</code> number of <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device within the given range.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-java.util.UUID-">clearHistoricalData(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Clears all <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-java.util.UUID...-">clearHistoricalData(UUID...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-java.util.UUID-"><code>BleDevice.clearHistoricalData(UUID)</code></a> that just calls that method multiple times.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-java.util.UUID-long-">clearHistoricalData(UUID, long)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Clears the first <code>count</code> number of <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">clearHistoricalData(UUID, EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Clears all <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> within the given range.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">clearHistoricalData(UUID, EpochTimeRange, long)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Clears the first <code>count</code> number of <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> within the given range.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData_memoryOnly--">clearHistoricalData_memoryOnly()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Clears all <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData_memoryOnly-long-">clearHistoricalData_memoryOnly(long)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Clears the first <code>count</code> number of <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData_memoryOnly-com.idevicesinc.sweetblue.utils.EpochTimeRange-">clearHistoricalData_memoryOnly(EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Clears all <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device within the given range.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData_memoryOnly-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">clearHistoricalData_memoryOnly(EpochTimeRange, long)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Clears the first <code>count</code> number of <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device within the given range.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData_memoryOnly-java.util.UUID-">clearHistoricalData_memoryOnly(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Clears all <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData_memoryOnly-java.util.UUID-long-">clearHistoricalData_memoryOnly(UUID, long)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Clears the first <code>count</code> number of <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData_memoryOnly-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">clearHistoricalData_memoryOnly(UUID, EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Clears all <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> within the given range.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearHistoricalData_memoryOnly-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">clearHistoricalData_memoryOnly(UUID, EpochTimeRange, long)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Clears the first <code>count</code> number of <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> tracked by this device for a particular + characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> within the given range.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearName--">clearName()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Clears any name previously provided through <a href="com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-"><code>BleDevice.setName(String)</code></a> or overloads.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#clearQueue--">clearQueue()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">This method will clear the task queue of all tasks.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html#clearServiceData--">clearServiceData()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html#clearServiceUUIDs--">clearServiceUUIDs()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#clearSharedPreferences--">clearSharedPreferences()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Convenience forwarding of <a href="com/idevicesinc/sweetblue/BleManager.html#clearSharedPreferences-java.lang.String-"><code>BleManager.clearSharedPreferences(String)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#clearSharedPreferences-com.idevicesinc.sweetblue.BleDevice-">clearSharedPreferences(BleDevice)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Convenience forwarding of <a href="com/idevicesinc/sweetblue/BleManager.html#clearSharedPreferences-java.lang.String-"><code>BleManager.clearSharedPreferences(String)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#clearSharedPreferences-java.lang.String-">clearSharedPreferences(String)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Clears all data currently being held in <a href="http://d.android.com/reference/android/content/SharedPreferences.html?is-external=true" title="class or interface in android.content"><code>SharedPreferences</code></a> for a particular device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#clearSharedPreferences--">clearSharedPreferences()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Clears all data currently being held in <a href="http://d.android.com/reference/android/content/SharedPreferences.html?is-external=true" title="class or interface in android.content"><code>SharedPreferences</code></a> for all devices.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID">CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#clone--">clone()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#clone--">clone()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.html#clone--">clone()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#close--">close()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#close--">close()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></dt> +<dd> +<div class="block">Closes the Cursor, releasing all of its resources and making it completely invalid.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a> - package com.idevicesinc.sweetblue</dt> +<dd> +<div class="block">Contains the core public-facing classes <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> and <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> + and most of the internal guts for SweetBlue, the easiest way to do BLE on Android.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/annotations/package-summary.html">com.idevicesinc.sweetblue.annotations</a> - package com.idevicesinc.sweetblue.annotations</dt> +<dd> +<div class="block">Contains <a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation"><code>Annotation</code></a> declarations used throughout the library.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/backend/package-summary.html">com.idevicesinc.sweetblue.backend</a> - package com.idevicesinc.sweetblue.backend</dt> +<dd> +<div class="block">Contains specification and default implementation of "backend" modules for SweetBlue.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/backend/historical/package-summary.html">com.idevicesinc.sweetblue.backend.historical</a> - package com.idevicesinc.sweetblue.backend.historical</dt> +<dd> +<div class="block">Contains specification and default implementation of a "backend" for instances of <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> + that stores and manages historical data.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/compat/package-summary.html">com.idevicesinc.sweetblue.compat</a> - package com.idevicesinc.sweetblue.compat</dt> +<dd> +<div class="block">Contains utility classes for hiding away newer API calls.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a> - package com.idevicesinc.sweetblue.utils</dt> +<dd> +<div class="block">Contains a few optional utilities that you may find useful, but nothing in here is a core part of the library as far as the library user is concerned.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html#compare-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDevice-">compare(BleDevice, BleDevice)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.DeviceNameComparator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTime.html#compareTo-com.idevicesinc.sweetblue.utils.EpochTime-">compareTo(EpochTime)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#connect--">connect()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Starts a connection process, or does nothing if already <a href="com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a> or <a href="com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTING"><code>BleDeviceState.CONNECTING</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleDevice.StateListener-">connect(BleDevice.StateListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> but calls <a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleDevice.setListener_State(StateListener)</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-">connect(BleDevice.ConnectionFailListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> but calls <a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>BleDevice.setListener_ConnectionFail(ConnectionFailListener)</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-">connect(BleDevice.StateListener, BleDevice.ConnectionFailListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> but calls <a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleDevice.setListener_State(StateListener)</code></a> and + <a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>BleDevice.setListener_ConnectionFail(ConnectionFailListener)</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-com.idevicesinc.sweetblue.BleDevice.StateListener-">connect(BleDevice.ConnectionFailListener, BleDevice.StateListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>BleDevice.connect(BleDevice.StateListener, BleDevice.ConnectionFailListener)</code></a> + with reversed arguments.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-">connect(BleTransaction.Auth)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> but provides a hook for the app to do some kind of authentication handshake if it wishes.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleDevice.StateListener-">connect(BleTransaction.Auth, BleDevice.StateListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>BleDevice.connect(BleTransaction.Auth)</code></a> but calls <a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleDevice.setListener_State(StateListener)</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-">connect(BleTransaction.Auth, BleDevice.StateListener, BleDevice.ConnectionFailListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>BleDevice.connect(BleTransaction.Auth)</code></a> but calls + <a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleDevice.setListener_State(StateListener)</code></a> and + <a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>BleDevice.setListener_ConnectionFail(ConnectionFailListener)</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-">connect(BleTransaction.Init)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> but provides a hook for the app to do some kind of initialization before it's considered fully + <a href="com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZED"><code>BleDeviceState.INITIALIZED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-">connect(BleTransaction.Init, BleDevice.StateListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Init)</code></a> but calls <a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleDevice.setListener_State(StateListener)</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-">connect(BleTransaction.Auth, BleDevice.ConnectionFailListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Yet another overload.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-">connect(BleTransaction.Init, BleDevice.StateListener, BleDevice.ConnectionFailListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Init)</code></a> but calls <a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleDevice.setListener_State(StateListener)</code></a> and + <a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>BleDevice.setListener_ConnectionFail(ConnectionFailListener)</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-">connect(BleTransaction.Auth, BleTransaction.Init)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Combination of <a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-"><code>BleDevice.connect(BleTransaction.Auth)</code></a> and <a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Init)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-">connect(BleTransaction.Auth, BleTransaction.Init, BleDevice.StateListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Auth, BleTransaction.Init)</code></a> but calls <a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleDevice.setListener_State(StateListener)</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-com.idevicesinc.sweetblue.BleDevice.StateListener-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-">connect(BleTransaction.Auth, BleTransaction.Init, BleDevice.StateListener, BleDevice.ConnectionFailListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#connect-com.idevicesinc.sweetblue.BleTransaction.Auth-com.idevicesinc.sweetblue.BleTransaction.Init-"><code>BleDevice.connect(BleTransaction.Auth, BleTransaction.Init)</code></a> but calls <a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-"><code>BleDevice.setListener_State(StateListener)</code></a> and + <a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-"><code>BleDevice.setListener_ConnectionFail(ConnectionFailListener)</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-">connect(String)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-com.idevicesinc.sweetblue.BleServer.StateListener-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>BleServer.connect(String, StateListener, ConnectionFailListener)</code></a> with no listeners.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-com.idevicesinc.sweetblue.BleServer.StateListener-">connect(String, BleServer.StateListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-com.idevicesinc.sweetblue.BleServer.StateListener-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>BleServer.connect(String, StateListener, ConnectionFailListener)</code></a> with only one listener.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-">connect(String, BleServer.ConnectionFailListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-com.idevicesinc.sweetblue.BleServer.StateListener-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>BleServer.connect(String, StateListener, ConnectionFailListener)</code></a> with only one listener.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#connect-java.lang.String-com.idevicesinc.sweetblue.BleServer.StateListener-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-">connect(String, BleServer.StateListener, BleServer.ConnectionFailListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Connect to the given client mac address and provided listeners that are shorthand for calling <a href="com/idevicesinc/sweetblue/BleServer.html#setListener_State-com.idevicesinc.sweetblue.BleServer.StateListener-"><code>BleServer.setListener_State(StateListener)</code></a> + <a href="com/idevicesinc/sweetblue/BleServer.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-"><code>BleServer.setListener_ConnectionFail(ConnectionFailListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/compat/M_Util.html#connect-android.bluetooth.BluetoothDevice-android.content.Context-android.bluetooth.BluetoothGattCallback-">connect(BluetoothDevice, Context, BluetoothGattCallback)</a></span> - Static method in class com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/M_Util.html" title="class in com.idevicesinc.sweetblue.compat">M_Util</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#connectionFailEvent--">connectionFailEvent()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a></dt> +<dd> +<div class="block">Returns the more detailed information about why the connection failed.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#connectionPriority--">connectionPriority()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">This value gets set as a result of a <a href="com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setConnectionPriority(BleConnectionPriority, ReadWriteListener)</code></a> call.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#contains-java.lang.Object:A-java.lang.Object-">contains(Object[], Object)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#copyStringToBuffer-int-android.database.CharArrayBuffer-">copyStringToBuffer(int, CharArrayBuffer)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/compat/K_Util.html#createBond-com.idevicesinc.sweetblue.BleDevice-">createBond(BleDevice)</a></span> - Static method in class com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/K_Util.html" title="class in com.idevicesinc.sweetblue.compat">K_Util</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#CURRENT_TIME_SERVICE">CURRENT_TIME_SERVICE</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#CURRENT_TIME_SERVICE__CURRENT_TIME">CURRENT_TIME_SERVICE__CURRENT_TIME</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#CURRENT_TIME_SERVICE__LOCAL_TIME_INFO">CURRENT_TIME_SERVICE__LOCAL_TIME_INFO</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServices.html#currentTime--">currentTime()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServices.html" title="class in com.idevicesinc.sweetblue">BleServices</a></dt> +<dd> +<div class="block">Returns a new service conforming to the "Current Time Service" specification.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#cursor--">cursor()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a></dt> +<dd> +<div class="block">The resulting <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database"><code>Cursor</code></a> from the database query.</div> +</dd> +</dl> +<a name="I:D"> +<!-- --> +</a> +<h2 class="title">D</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--">data()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">The data sent to the peripheral if <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#type--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.type()</code></a> <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isWrite--"><code>BleDevice.ReadWriteListener.Type.isWrite()</code></a>, otherwise the data received from the + peripheral if <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#type--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.type()</code></a> <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isRead--"><code>BleDevice.ReadWriteListener.Type.isRead()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#data--">data()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a></dt> +<dd> +<div class="block">The data to be written.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#data--">data()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsSelectColumn</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data_byte--">data_byte()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Returns the first byte from <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.data()</code></a>, or 0x0 if not available.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data_int-boolean-">data_int(boolean)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Convenience method that attempts to parse <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.data()</code></a> as an int.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data_long-boolean-">data_long(boolean)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Convenience method that attempts to parse <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.data()</code></a> as a long.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#data_received--">data_received()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></dt> +<dd> +<div class="block">The data received from the client if <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>BleServer.ExchangeListener.ExchangeEvent.type()</code></a> is <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isWrite--"><code>BleServer.ExchangeListener.Type.isWrite()</code></a>, otherwise an empty byte array.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#data_sent--">data_sent()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></dt> +<dd> +<div class="block">The data that was attempted to be sent back to the client if <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>BleServer.ExchangeListener.ExchangeEvent.type()</code></a> <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isRead--"><code>BleServer.ExchangeListener.Type.isRead()</code></a> is <code>true</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data_short-boolean-">data_short(boolean)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Convenience method that attempts to parse <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.data()</code></a> as a short.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data_string--">data_string()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Best effort parsing of <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.data()</code></a> as a <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data_string-java.lang.String-">data_string(String)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Convenience method that attempts to parse <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.data()</code></a> as a <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> with the given charset, for example <code>"UTF-8"</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#data_utf8--">data_utf8()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Convenience method that attempts to parse the data as a UTF-8 string.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#deactivate--">deactivate()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">DebugLogger</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Logger class which prints SweetBlue logs to Android's logcat.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/DebugLogger.html#DebugLogger--">DebugLogger()</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils">DebugLogger</a></dt> +<dd> +<div class="block">Default constructor which sets the max log size of <a href="com/idevicesinc/sweetblue/utils/DebugLogger.html#DEFAULT_MAX_SIZE"><code>DebugLogger.DEFAULT_MAX_SIZE</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/DebugLogger.html#DebugLogger-int-">DebugLogger(int)</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils">DebugLogger</a></dt> +<dd> +<div class="block">Constructor which allows you to set a custom max log count size.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_AUTO_SCAN_DELAY_AFTER_RESUME">DEFAULT_AUTO_SCAN_DELAY_AFTER_RESUME</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default value for <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanDelayAfterResume"><code>BleManagerConfig.autoScanDelayAfterResume</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_AUTO_SCAN_PAUSE_TIME">DEFAULT_AUTO_SCAN_PAUSE_TIME</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default value for <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseInterval"><code>BleManagerConfig.autoScanPauseInterval</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_AUTO_UPDATE_RATE">DEFAULT_AUTO_UPDATE_RATE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default value for <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#autoUpdateRate"><code>BleManagerConfig.autoUpdateRate</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html#DEFAULT_CONNECTION_FAIL_RETRY_COUNT">DEFAULT_CONNECTION_FAIL_RETRY_COUNT</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleDevice.DefaultConnectionFailListener</a></dt> +<dd> +<div class="block">The default retry count provided to <a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.DefaultConnectionFailListener</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html#DEFAULT_CONNECTION_FAIL_RETRY_COUNT">DEFAULT_CONNECTION_FAIL_RETRY_COUNT</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleServer.DefaultConnectionFailListener</a></dt> +<dd> +<div class="block">The default retry count provided to <a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.DefaultConnectionFailListener</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html#DEFAULT_CRASH_RESOLVER_TIMEOUT">DEFAULT_CRASH_RESOLVER_TIMEOUT</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultTaskTimeoutRequestFilter</a></dt> +<dd> +<div class="block">Value used for crash resolver process because this can take a bit longer.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html#DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT">DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleDevice.DefaultConnectionFailListener</a></dt> +<dd> +<div class="block">The default connection fail limit past which <a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.DefaultConnectionFailListener</code></a> will start returning <a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retryWithAutoConnectTrue--"><code>BleNode.ConnectionFailListener.Please.retryWithAutoConnectTrue()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html#DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT">DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleServer.DefaultConnectionFailListener</a></dt> +<dd> +<div class="block">The default connection fail limit past which <a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.DefaultConnectionFailListener</code></a> will start returning <a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retryWithAutoConnectTrue--"><code>BleNode.ConnectionFailListener.Please.retryWithAutoConnectTrue()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html#DEFAULT_INITIAL_RECONNECT_DELAY">DEFAULT_INITIAL_RECONNECT_DELAY</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultReconnectFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/DebugLogger.html#DEFAULT_MAX_SIZE">DEFAULT_MAX_SIZE</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils">DebugLogger</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_MINIMUM_SCAN_TIME">DEFAULT_MINIMUM_SCAN_TIME</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default value for <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#minScanTimeNeededForUndiscovery"><code>BleDeviceConfig.minScanTimeNeededForUndiscovery</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.html#DEFAULT_MTU_SIZE">DEFAULT_MTU_SIZE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dt> +<dd> +<div class="block">The default MTU size in bytes for gatt reads/writes/notifies/etc.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_AUTO_POLL_RATE">DEFAULT_RSSI_AUTO_POLL_RATE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default value for <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#rssiAutoPollRate"><code>BleDeviceConfig.rssiAutoPollRate</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_MAX">DEFAULT_RSSI_MAX</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default fallback value for <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#rssi_max"><code>BleDeviceConfig.rssi_max</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_MIN">DEFAULT_RSSI_MIN</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default fallback value for <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#rssi_min"><code>BleDeviceConfig.rssi_min</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RUNNING_AVERAGE_N">DEFAULT_RUNNING_AVERAGE_N</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default value for <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningReadTime"><code>BleDeviceConfig.nForAverageRunningReadTime</code></a> and <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningWriteTime"><code>BleDeviceConfig.nForAverageRunningWriteTime</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_SCAN_KEEP_ALIVE">DEFAULT_SCAN_KEEP_ALIVE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">This is a good default value for <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#undiscoveryKeepAlive"><code>BleDeviceConfig.undiscoveryKeepAlive</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_SCAN_REPORT_DELAY">DEFAULT_SCAN_REPORT_DELAY</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default value for <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#scanReportDelay"><code>BleManagerConfig.scanReportDelay</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html#DEFAULT_TASK_TIMEOUT">DEFAULT_TASK_TIMEOUT</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultTaskTimeoutRequestFilter</a></dt> +<dd> +<div class="block">Default value for all tasks.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_TX_POWER">DEFAULT_TX_POWER</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default value for <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#defaultTxPower"><code>BleDeviceConfig.defaultTxPower</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_UH_OH_CALLBACK_THROTTLE">DEFAULT_UH_OH_CALLBACK_THROTTLE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default value for <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#uhOhCallbackThrottle"><code>BleManagerConfig.uhOhCallbackThrottle</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#defaultAuthTransaction">defaultAuthTransaction</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Set a default <a href="com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue"><code>BleTransaction.Auth</code></a> which will be used when + auto connecting.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html#DefaultBluetoothEnablerFilter--">DefaultBluetoothEnablerFilter()</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.DefaultBluetoothEnablerFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html#DefaultBondFilter--">DefaultBondFilter()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.DefaultBondFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html#DefaultConnectionFailListener--">DefaultConnectionFailListener()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleDevice.DefaultConnectionFailListener</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html#DefaultConnectionFailListener-int-int-">DefaultConnectionFailListener(int, int)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleDevice.DefaultConnectionFailListener</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html#DefaultConnectionFailListener--">DefaultConnectionFailListener()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleServer.DefaultConnectionFailListener</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html#DefaultConnectionFailListener-int-int-">DefaultConnectionFailListener(int, int)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleServer.DefaultConnectionFailListener</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#defaultDiscoveryListener">defaultDiscoveryListener</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <code>null</code> - can also be set post-construction with <a href="com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>BleManager.setListener_Discovery(DiscoveryListener)</code></a>, + which will override the implementation provided here.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html#DefaultHistoricalDataLogFilter--">DefaultHistoricalDataLogFilter()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultHistoricalDataLogFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#defaultInitTransaction">defaultInitTransaction</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Set a default <a href="com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue"><code>BleTransaction.Init</code></a> which will be used when + auto connecting.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#defaultListComparator">defaultListComparator</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig.DeviceNameComparator</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/DefaultLogger.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">DefaultLogger</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/DefaultLogger.html#DefaultLogger--">DefaultLogger()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/DefaultLogger.html" title="class in com.idevicesinc.sweetblue">DefaultLogger</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html#DefaultReconnectFilter--">DefaultReconnectFilter()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultReconnectFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html#DefaultReconnectFilter-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-">DefaultReconnectFilter(Interval, Interval, Interval, Interval)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultReconnectFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#defaultScanFilter">defaultScanFilter</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <code>null</code>, meaning no filtering - all discovered devices will + be piped through your <a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleManager.DiscoveryListener</code></a> instance + and added to the internal list of <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html#DefaultScanFilter-java.util.Collection-">DefaultScanFilter(Collection<UUID>)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.DefaultScanFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html#DefaultScanFilter-java.util.UUID-">DefaultScanFilter(UUID)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.DefaultScanFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html#DefaultTaskTimeoutRequestFilter--">DefaultTaskTimeoutRequestFilter()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultTaskTimeoutRequestFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#defaultTxPower">defaultTxPower</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_TX_POWER"><code>BleDeviceConfig.DEFAULT_TX_POWER</code></a> - this value is used if we can't establish a device's calibrated transmission power from the device itself, + either through its scan record or by reading the standard characteristic.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html#DefaultUpdateLoopFactory--">DefaultUpdateLoopFactory()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" title="class in com.idevicesinc.sweetblue">PI_UpdateLoop.DefaultUpdateLoopFactory</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#delete_fromMemoryAndDatabase-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_fromMemoryAndDatabase(EpochTimeRange, long)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#delete_fromMemoryAndDatabase-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_fromMemoryAndDatabase(EpochTimeRange, long)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#delete_fromMemoryOnly-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_fromMemoryOnly(EpochTimeRange, long)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#delete_fromMemoryOnly-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_fromMemoryOnly(EpochTimeRange, long)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#delete_fromMemoryOnlyForNowButDatabaseSoon-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_fromMemoryOnlyForNowButDatabaseSoon(EpochTimeRange, long)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#delete_fromMemoryOnlyForNowButDatabaseSoon-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_fromMemoryOnlyForNowButDatabaseSoon(EpochTimeRange, long)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#delete_multipleUuids-java.lang.String:A-java.util.UUID:A-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_multipleUuids(String[], UUID[], EpochTimeRange, long)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#delete_multipleUuids-java.lang.String:A-java.util.UUID:A-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_multipleUuids(String[], UUID[], EpochTimeRange, long)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#delete_singleUuid_all-java.lang.String-java.util.UUID-">delete_singleUuid_all(String, UUID)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#delete_singleUuid_all-java.lang.String-java.util.UUID-">delete_singleUuid_all(String, UUID)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#delete_singleUuid_inRange-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_singleUuid_inRange(String, UUID, EpochTimeRange, long)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#delete_singleUuid_inRange-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-long-">delete_singleUuid_inRange(String, UUID, EpochTimeRange, long)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#delete_singleUuid_singleDate-java.lang.String-java.util.UUID-long-">delete_singleUuid_singleDate(String, UUID, long)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#delete_singleUuid_singleDate-java.lang.String-java.util.UUID-long-">delete_singleUuid_singleDate(String, UUID, long)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#delta-long-long-">delta(long, long)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> +<div class="block">Returns a new <a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> representing the delta between the two epoch times.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#denull-com.idevicesinc.sweetblue.utils.EpochTimeRange-">denull(EpochTimeRange)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#denull-com.idevicesinc.sweetblue.utils.HistoricalData-">denull(HistoricalData)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/P_StringHandler.html#DENY">DENY</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue">P_StringHandler</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/P_StringHandler.html#DENYING_LOCATION_ACCESS">DENYING_LOCATION_ACCESS</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue">P_StringHandler</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#descriptor--">descriptor()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Forwards <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor_inChar-java.util.UUID-java.util.UUID-"><code>BleNode.getNativeDescriptor_inChar(UUID, UUID)</code></a>, which will be nonnull + if <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.target()</code></a> is <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#DESCRIPTOR"><code>BleDevice.ReadWriteListener.Target.DESCRIPTOR</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#descUuid--">descUuid()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the descriptor associated with this <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#descUuid--">descUuid()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a></dt> +<dd> +<div class="block">The ble descriptor <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> associated with the task, or <a href="com/idevicesinc/sweetblue/utils/Uuids.html#INVALID"><code>Uuids.INVALID</code></a> otherwise.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#descUuid--">descUuid()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></dt> +<dd> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the descriptor associated with this <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#device--">device()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a></dt> +<dd> +<div class="block">The <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> that attempted to <a href="com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>BleDevice.bond()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#device--">device()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">The <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> this <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent</code></a> is for.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#device--">device()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">The <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> this <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> is for.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html#device--">device()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.StateListener.StateEvent</a></dt> +<dd> +<div class="block">The device undergoing the state change.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html#device--">device()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEvent</a></dt> +<dd> +<div class="block">Returns the <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> in question.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#device--">device()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.DiscoveryEvent</a></dt> +<dd> +<div class="block">The device in question.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#device--">device()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a></dt> +<dd> +<div class="block">Tries to cast <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#node--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.node()</code></a> to a <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>, otherwise returns <a href="com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#device--">device()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a></dt> +<dd> +<div class="block">Tries to cast <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#node--"><code>BleNodeConfig.ReconnectFilter.ReconnectEvent.node()</code></a> to a <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>, otherwise returns <a href="com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#device--">device()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a></dt> +<dd> +<div class="block">The <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> associated with the <a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#task--"><code>BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.task()</code></a>, or <a href="com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> if + <a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#task--"><code>BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.task()</code></a> <a href="com/idevicesinc/sweetblue/BleTask.html#isDeviceSpecific--"><code>BleTask.isDeviceSpecific()</code></a> does not return <code>true</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#DEVICE_INFORMATION_SERVICE_UUID">DEVICE_INFORMATION_SERVICE_UUID</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#DEVICE_INFORMATION_UUIDS">DEVICE_INFORMATION_UUIDS</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#DEVICE_NAME">DEVICE_NAME</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html#DeviceNameComparator--">DeviceNameComparator()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.DeviceNameComparator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceState.html#didEnter-int-int-">didEnter(int, int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerState.html#didEnter-int-int-">didEnter(int, int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServerState.html#didEnter-int-int-">didEnter(int, int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnter-T_State-">didEnter(T_State)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></dt> +<dd> +<div class="block">Convenience forwarding of <a href="com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-"><code>State.didEnter(int, int)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-">didEnter(int, int)</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></dt> +<dd> +<div class="block">Given an old and new state mask, for example from <a href="com/idevicesinc/sweetblue/BleDevice.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent-"><code>BleDevice.StateListener.onEvent(com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent)</code></a> + or <a href="com/idevicesinc/sweetblue/BleManager.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent-"><code>BleManager.StateListener.onEvent(com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent)</code></a>, this method tells you whether the + the 'this' state was appended.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAll-T_State...-">didEnterAll(T_State...)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></dt> +<dd> +<div class="block">Convenience to return <code>true</code> if <a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnter-T_State-"><code>State.ChangeEvent.didEnter(State)</code></a> returns <code>true</code> for all the <a href="com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><code>State</code></a> instances given.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAny-T_State...-">didEnterAny(T_State...)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></dt> +<dd> +<div class="block">Convenience to return <code>true</code> if <a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnter-T_State-"><code>State.ChangeEvent.didEnter(State)</code></a> returns <code>true</code> on any of the <a href="com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><code>State</code></a> instances given.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceState.html#didExit-int-int-">didExit(int, int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerState.html#didExit-int-int-">didExit(int, int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServerState.html#didExit-int-int-">didExit(int, int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExit-T_State-">didExit(T_State)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></dt> +<dd> +<div class="block">Convenience forwarding of <a href="com/idevicesinc/sweetblue/utils/State.html#didExit-int-int-"><code>State.didExit(int, int)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.html#didExit-int-int-">didExit(int, int)</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></dt> +<dd> +<div class="block">Reverse of <a href="com/idevicesinc/sweetblue/utils/State.html#didEnter-int-int-"><code>State.didEnter(int, int)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAll-T_State...-">didExitAll(T_State...)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></dt> +<dd> +<div class="block">Convenience to return <code>true</code> if <a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExit-T_State-"><code>State.ChangeEvent.didExit(State)</code></a> returns <code>true</code> for all the <a href="com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><code>State</code></a> instances given.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAny-T_State...-">didExitAny(T_State...)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></dt> +<dd> +<div class="block">Convenience to return <code>true</code> if <a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExit-T_State-"><code>State.ChangeEvent.didExit(State)</code></a> returns <code>true</code> on any of the <a href="com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><code>State</code></a> instances given.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#DISABLED">DISABLED</a></span> - Static variable in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></dt> +<dd> +<div class="block">Special value you can use in place of Java's built-in <code>null</code>, just for code readability.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#DISABLED">DISABLED</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> +<div class="block">Use this special value to disable options in <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> and <a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">disableNotify(UUID, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Disables all notifications enabled by <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a> or + <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, Interval, ReadWriteListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">disableNotify(UUID, Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.disableNotify(UUID, ReadWriteListener)</code></a> but filters on the given <a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-">disableNotify(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.disableNotify(java.util.UUID, BleDevice.ReadWriteListener)</code></a> but you can use this if you don't care about the result.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-">disableNotify(UUID, Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.disableNotify(UUID, ReadWriteListener)</code></a> but filters on the given <a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> without a listener.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">disableNotify(UUID, UUID, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.disableNotify(UUID, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">disableNotify(UUID, UUID, Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.disableNotify(UUID, Interval, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-java.util.UUID-">disableNotify(UUID, UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-"><code>BleDevice.disableNotify(UUID)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-">disableNotify(UUID, UUID, Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>BleDevice.disableNotify(UUID, Interval)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">disableNotify(UUID[], BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload for <a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.disableNotify(UUID, ReadWriteListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID:A-">disableNotify(UUID[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload for <a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-"><code>BleDevice.disableNotify(UUID)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-">disableNotify(UUID[], Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload for <a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>BleDevice.disableNotify(UUID, Interval)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">disableNotify(UUID[], Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload for <a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.disableNotify(UUID, Interval, BleDevice.ReadWriteListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.lang.Iterable-">disableNotify(Iterable<UUID>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload for <a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-"><code>BleDevice.disableNotify(UUID)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.lang.Iterable-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">disableNotify(Iterable<UUID>, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload for <a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.disableNotify(UUID, ReadWriteListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-">disableNotify(Iterable<UUID>, Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload for <a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>BleDevice.disableNotify(UUID, Interval)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">disableNotify(Iterable<UUID>, Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload for <a href="com/idevicesinc/sweetblue/BleDevice.html#disableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.disableNotify(UUID, Interval, ReadWriteListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#disconnect--">disconnect()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Disconnects from a connected device or does nothing if already <a href="com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#disconnect-java.lang.String-">disconnect(String)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#disconnect--">disconnect()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Disconnects this server completely, disconnecting all connected clients and shutting things down.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#disconnect_remote--">disconnect_remote()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#disconnect--"><code>BleDevice.disconnect()</code></a> but this call roughly simulates the disconnect as if it's because of the remote device going down, going out of range, etc.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#disconnectAll--">disconnectAll()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Disconnects all devices that are <a href="com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#disconnectAll_remote--">disconnectAll_remote()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#disconnectAll--"><code>BleManager.disconnectAll()</code></a> but drills down to <a href="com/idevicesinc/sweetblue/BleDevice.html#disconnect_remote--"><code>BleDevice.disconnect_remote()</code></a> instead.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.html#disconnectIsCancellable">disconnectIsCancellable</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dt> +<dd> +<div class="block">Default is <code>true</code> - controls whether the library is allowed to optimize fast disconnect/reconnect cycles + by actually not disconnecting in the native stack at all.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EventQueue.html#dispatch--">dispatch()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EventQueue.html" title="class in com.idevicesinc.sweetblue.utils">EventQueue</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Distance</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Wrapper for a positive-only physical distance supporting various units of measurement.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Rssi.html#distance-int-int-">distance(int, int)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Rssi.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Rssi</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Rssi.html#distance-int-int-double-double-double-">distance(int, int, double, double, double)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Rssi.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Rssi</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Unit.html#dividedBy-com.idevicesinc.sweetblue.utils.Unit-">dividedBy(Unit<T>)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></dt> +<dd> +<div class="block">Returns a new instance that is the result of doing <code>this / other</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html#doBreak--">doBreak()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils">ForEach_Breakable.Please</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html#doContinue--">doContinue()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils">ForEach_Breakable.Please</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#doesDataExist-java.lang.String-java.util.UUID-">doesDataExist(String, UUID)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#doesDataExist-java.lang.String-java.util.UUID-">doesDataExist(String, UUID)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#doForEach-com.idevicesinc.sweetblue.utils.EpochTimeRange-java.lang.Object-">doForEach(EpochTimeRange, Object)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#doForEach-com.idevicesinc.sweetblue.utils.EpochTimeRange-java.lang.Object-">doForEach(EpochTimeRange, Object)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#doForEach_break-java.lang.Object-java.util.List-">doForEach_break(Object, List<T>)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#doForEach_break-java.lang.Object-java.lang.Object-">doForEach_break(Object, Object)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#doNext--">doNext()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></dt> +<dd> +<div class="block">Perform the next <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#doNothing--">doNothing()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></dt> +<dd> +<div class="block">Device's bond state should not be affected.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#doNotLog--">doNotLog()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></dt> +<dd> +<div class="block">Will not log the data.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#doNotRespond--">doNotRespond()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></dt> +<dd> +<div class="block">Use this as the return value of <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>BleServer.IncomingListener.onEvent(IncomingEvent)</code></a> + when <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#responseNeeded--"><code>BleServer.ExchangeListener.ExchangeEvent.responseNeeded()</code></a> is <code>true</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#doNotRespond-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">doNotRespond(BleServer.OutgoingListener)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#doNotRespond--"><code>BleServer.IncomingListener.Please.doNotRespond()</code></a> but allows you to provide a listener specific to this (non-)response.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#doNotRetry--">doNotRetry()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></dt> +<dd> +<div class="block">Return this to stop the connection fail retry loop.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#doNotRetryIf-boolean-">doNotRetryIf(boolean)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></dt> +<dd> +<div class="block">Returns <a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#doNotRetry--"><code>BleNode.ConnectionFailListener.Please.doNotRetry()</code></a> if the given condition holds <code>true</code>, <a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retry--"><code>BleNode.ConnectionFailListener.Please.retry()</code></a> otherwise.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html#doNotUseTimeout--">doNotUseTimeout()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.Please</a></dt> +<dd> +<div class="block">Tells SweetBlue to not timeout the task at all.</div> +</dd> +</dl> +<a name="I:E"> +<!-- --> +</a> +<h2 class="title">E</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/FutureData.html#EMPTY">EMPTY</a></span> - Static variable in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a></dt> +<dd> +<div class="block">Convenience constant implementation that just returns an empty byte array.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#EMPTY_LIST">EMPTY_LIST</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#EMPTY_UUID_ARRAY">EMPTY_UUID_ARRAY</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">EmptyCursor</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">An implementation of <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database"><code>Cursor</code></a> used for error conditions and things like that where we don't want to return null.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#EmptyCursor--">EmptyCursor()</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">EmptyIterator</span></a><<a href="com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="type parameter in EmptyIterator">T</a>> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Convenience class for implementing an <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util"><code>Iterator</code></a> with no elements.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyIterator.html#EmptyIterator--">EmptyIterator()</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="class in com.idevicesinc.sweetblue.utils">EmptyIterator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#enableCrashResolver">enableCrashResolver</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <code>false</code> - this option may help mitigate crashes with "Unfortunately, + Bluetooth Share has stopped" error messages.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#enableCrashResolverForReset">enableCrashResolverForReset</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <code>true</code> - this option gates whether the "crash resolver" described in <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#enableCrashResolver"><code>BleManagerConfig.enableCrashResolver</code></a> + is invoked during a <a href="com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a> operation to forcefully clear the memory that causes the crash.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID:A-">enableNotify(UUID[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload for <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-"><code>BleDevice.enableNotify(UUID)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">enableNotify(UUID[], BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload for <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-">enableNotify(UUID[], Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload for <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>BleDevice.enableNotify(UUID, Interval)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">enableNotify(UUID[], Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload for <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, Interval, ReadWriteListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.lang.Iterable-">enableNotify(Iterable<UUID>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload for <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-"><code>BleDevice.enableNotify(UUID)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.lang.Iterable-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">enableNotify(Iterable<UUID>, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload for <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-">enableNotify(Iterable<UUID>, Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload for <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>BleDevice.enableNotify(UUID, Interval)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">enableNotify(Iterable<UUID>, Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload for <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, Interval, ReadWriteListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-">enableNotify(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(java.util.UUID, BleDevice.ReadWriteListener)</code></a> but you can use + this if you don't need a callback.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">enableNotify(UUID, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Enables notification on the given characteristic.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-">enableNotify(UUID, Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> but you can use + this if you don't need a callback.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">enableNotify(UUID, Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a> but forces a read after a given amount of time.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-java.util.UUID-">enableNotify(UUID, UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-"><code>BleDevice.enableNotify(UUID)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">enableNotify(UUID, UUID, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-">enableNotify(UUID, UUID, Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>BleDevice.enableNotify(UUID, Interval)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">enableNotify(UUID, UUID, Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, Interval, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#enabler--">enabler()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a></dt> +<dd> +<div class="block">Returns the <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler</code></a> associated with the Event.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#enforceMainThread-java.lang.String-">enforceMainThread(String)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#enterMask--">enterMask()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></dt> +<dd> +<div class="block">Returns all the states that were entered as a bit mask.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#epochTime--">epochTime()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a></dt> +<dd> +<div class="block">Timestamp of when the data was obtained.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">EpochTime</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">A class fulfilling a similar role to Java's built-in <a href="http://d.android.com/reference/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a>, i.e.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTime.html#EpochTime-java.util.Date-">EpochTime(Date)</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></dt> +<dd> +<div class="block">Converts from Java's built-in date.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTime.html#EpochTime-long-">EpochTime(long)</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></dt> +<dd> +<div class="block">Constructs a new instance using milliseconds since 1970.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTime.html#EpochTime--">EpochTime()</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></dt> +<dd> +<div class="block">Constructs a new instance using <a href="http://d.android.com/reference/java/lang/System.html?is-external=true#currentTimeMillis--" title="class or interface in java.lang"><code>System.currentTimeMillis()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#epochTime--">epochTime()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsSelectColumn</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html#epochTime--">epochTime()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_Where</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">EpochTimeRange</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Class representing a range of time between two instances of <a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils"><code>EpochTime</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#EpochTimeRange-com.idevicesinc.sweetblue.utils.EpochTime-com.idevicesinc.sweetblue.utils.EpochTime-">EpochTimeRange(EpochTime, EpochTime)</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">Returns a new instance representing the time range between the given epoch times.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#EpochTimeRange-long-long-">EpochTimeRange(long, long)</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">Returns a new instance representing the time range between the given epoch times as primitive longs.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#equals-com.idevicesinc.sweetblue.BleDevice-">equals(BleDevice)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">First checks referential equality and if <code>false</code> checks + equality of <a href="com/idevicesinc/sweetblue/BleDevice.html#getMacAddress--"><code>BleDevice.getMacAddress()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns <a href="com/idevicesinc/sweetblue/BleDevice.html#equals-com.idevicesinc.sweetblue.BleDevice-"><code>BleDevice.equals(BleDevice)</code></a> if object is an instance of <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#equals-com.idevicesinc.sweetblue.BleServer-">equals(BleServer)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Does a referential equality check on the two servers.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Returns <a href="com/idevicesinc/sweetblue/BleServer.html#equals-com.idevicesinc.sweetblue.BleServer-"><code>BleServer.equals(BleServer)</code></a> if object is an instance of <a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Unit.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></dt> +<dd> +<div class="block">Returns <code>==</code> using <a href="com/idevicesinc/sweetblue/utils/Unit.html#getRawValue--"><code>Unit.getRawValue()</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Event</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Abstract base class for all events in SweetBlue, e.g.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Event.html#Event--">Event()</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/EventQueue.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">EventQueue</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EventQueue.html#EventQueue--">EventQueue()</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EventQueue.html" title="class in com.idevicesinc.sweetblue.utils">EventQueue</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#execute--">execute()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_Task_BatteryLevel.html" title="class in com.idevicesinc.sweetblue">P_Task_BatteryLevel</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#exitMask--">exitMask()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></dt> +<dd> +<div class="block">Returns all the states that were exited as a bit mask.</div> +</dd> +</dl> +<a name="I:F"> +<!-- --> +</a> +<h2 class="title">F</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTransaction.html#fail--">fail()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></dt> +<dd> +<div class="block">Call this from subclasses to indicate that the transaction has failed.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#failReason--">failReason()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a></dt> +<dd> +<div class="block">If <a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#status--"><code>BleDevice.BondListener.BondEvent.status()</code></a> is <a href="com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#FAILED_EVENTUALLY"><code>BleDevice.BondListener.Status.FAILED_EVENTUALLY</code></a>, this integer will + be one of the values enumerated in <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothDevice</code></a> that start with <code>UNBOND_REASON</code> such as + <a href="com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_AUTH_FAILED"><code>BleStatuses.UNBOND_REASON_AUTH_FAILED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#failureCount--">failureCount()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a></dt> +<dd> +<div class="block">The number of times a reconnect attempt has failed so far.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#failureCountSoFar--">failureCountSoFar()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">The failure count so far.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Distance.html#feet--">feet()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></dt> +<dd> +<div class="block">Returns the value of this distance in feet.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Distance.html#feet-double-">feet(double)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></dt> +<dd> +<div class="block">Creates a new value in feet.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Distance.html#FEET_PER_METER">FEET_PER_METER</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Reflection.html#fieldStringValue-java.lang.reflect.Field-">fieldStringValue(Field)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Reflection.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Reflection</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#fileToBinaryDataList-android.content.Context-java.lang.String-int-">fileToBinaryDataList(Context, String, int)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#FIRMWARE_REVISION">FIRMWARE_REVISION</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#FIVE_SECONDS">FIVE_SECONDS</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#FIVE_SECS">FIVE_SECS</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> +<div class="block">Convenience value representing five seconds.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#forceBondDialog">forceBondDialog</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <code>false</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html#forcePost-java.lang.Runnable-">forcePost(Runnable)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html#forcePost-java.lang.Runnable-">forcePost(Runnable)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#forcePreLollipopScan">forcePreLollipopScan</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block"><span class="deprecatedLabel">Deprecated.</span> +<div class="block"><span class="deprecationComment">Use <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#scanMode"><code>BleManagerConfig.scanMode</code></a> with <a href="com/idevicesinc/sweetblue/BleScanMode.html#PRE_LOLLIPOP"><code>BleScanMode.PRE_LOLLIPOP</code></a> instead.</span></div> +</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">ForEach_Breakable</span></a><<a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="type parameter in ForEach_Breakable">T</a>> - Interface in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">ForEach_Breakable.Please</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">ForEach_Returning</span></a><<a href="com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="type parameter in ForEach_Returning">T</a>> - Interface in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">ForEach_Void</span></a><<a href="com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="type parameter in ForEach_Void">T</a>> - Interface in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#from--">from()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">Returns the "from" date passed into the constructor, + or <a href="com/idevicesinc/sweetblue/utils/EpochTime.html#NULL"><code>EpochTime.NULL</code></a> if <code>null</code> + was originally passed in.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html#from-java.util.UUID-">from(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsFrom</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html#from-java.lang.String-java.util.UUID-">from(String, UUID)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsFrom</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#from1970_toGiven-com.idevicesinc.sweetblue.utils.EpochTime-">from1970_toGiven(EpochTime)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">Returns a new instance representing the time range from 1970 to the given value.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#from1970_toNow--">from1970_toNow()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">Returns a new instance representing the time range from 1970 to now.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#FROM_1970_TO_MAX">FROM_1970_TO_MAX</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#FROM_MIN_TO_1970">FROM_MIN_TO_1970</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#FROM_MIN_TO_MAX">FROM_MIN_TO_MAX</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleScanPower.html#fromBleScanMode-com.idevicesinc.sweetblue.BleScanMode-">fromBleScanMode(BleScanMode)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#fromCursor-android.database.Cursor-">fromCursor(Cursor)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#fromDiskValue-int-">fromDiskValue(int)</a></span> - Static method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a></dt> +<dd> +<div class="block">Transforms <a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#toDiskValue--"><code>State.ChangeIntent.toDiskValue()</code></a> back to the enum.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Percent.html#fromDouble-double-">fromDouble(double)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></dt> +<dd> +<div class="block">Returns a new instance using the given <code>double</code> value.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Percent.html#fromDouble_clamped-double-">fromDouble_clamped(double)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></dt> +<dd> +<div class="block">Returns a new instance clamped between 0% and 100%, regardless of input value.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#fromGiven_toGiven-com.idevicesinc.sweetblue.utils.EpochTime-com.idevicesinc.sweetblue.utils.EpochTime-">fromGiven_toGiven(EpochTime, EpochTime)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">Basically just a more readable overload for the normal constructor <a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#EpochTimeRange-com.idevicesinc.sweetblue.utils.EpochTime-com.idevicesinc.sweetblue.utils.EpochTime-"><code>EpochTimeRange.EpochTimeRange(EpochTime, EpochTime)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#fromGiven_toMax-com.idevicesinc.sweetblue.utils.EpochTime-">fromGiven_toMax(EpochTime)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">Returns a new instance representing the time range from the given value to <a href="http://d.android.com/reference/java/lang/Long.html?is-external=true#MAX_VALUE" title="class or interface in java.lang"><code>Long.MAX_VALUE</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#fromGiven_toNow-com.idevicesinc.sweetblue.utils.EpochTime-">fromGiven_toNow(EpochTime)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">Returns a new instance representing the time range from the given value to now.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Percent.html#fromInt-int-">fromInt(int)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></dt> +<dd> +<div class="block">Returns a new instance using the given <code>int</code> value.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromInt-int-">fromInt(int)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromInt-int-java.lang.String-">fromInt(int, String)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> +<div class="block">Convenience overload of <a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromInt-java.lang.String-java.lang.String-"><code>Uuids.fromInt(String, String)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromInt-java.lang.String-">fromInt(String)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> +<div class="block">Convenience overload of <a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromInt-java.lang.String-java.lang.String-"><code>Uuids.fromInt(String, String)</code></a> that uses <a href="com/idevicesinc/sweetblue/utils/Uuids.html#STANDARD_UUID_TEMPLATE"><code>Uuids.STANDARD_UUID_TEMPLATE</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromInt-java.lang.String-java.lang.String-">fromInt(String, String)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> +<div class="block">Replaces the characters at indices 0-7 (inclusive) of <code>uuidTemplate</code> with the + <code>assignedNumber</code> parameter and returns the resulting <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> using <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true#fromString-java.lang.String-" title="class or interface in java.util"><code>UUID.fromString(String)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Percent.html#fromInt_clamped-int-">fromInt_clamped(int)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></dt> +<dd> +<div class="block">Returns a new instance clamped between 0% and 100%, regardless of input value.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#fromMin_toGiven-com.idevicesinc.sweetblue.utils.EpochTime-">fromMin_toGiven(EpochTime)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">Returns a new instance representing the time range from <a href="http://d.android.com/reference/java/lang/Long.html?is-external=true#MIN_VALUE" title="class or interface in java.lang"><code>Long.MIN_VALUE</code></a> to the given value.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#fromNativeStatus-int-">fromNativeStatus(int)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-java.lang.String-">fromShort(String)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> +<div class="block">Convenience overload of <a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-java.lang.String-java.lang.String-"><code>Uuids.fromShort(String, String)</code></a> that uses <a href="com/idevicesinc/sweetblue/utils/Uuids.html#STANDARD_UUID_TEMPLATE"><code>Uuids.STANDARD_UUID_TEMPLATE</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-short-">fromShort(short)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> +<div class="block">Convenience overload of <a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-short-java.lang.String-"><code>Uuids.fromShort(short, String)</code></a> that uses <a href="com/idevicesinc/sweetblue/utils/Uuids.html#STANDARD_UUID_TEMPLATE"><code>Uuids.STANDARD_UUID_TEMPLATE</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-int-">fromShort(int)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-short-"><code>Uuids.fromShort(short)</code></a> so you don't have to downcast hardcoded integers yourself.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-short-java.lang.String-">fromShort(short, String)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> +<div class="block">Convenience overload of <a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-java.lang.String-java.lang.String-"><code>Uuids.fromShort(String, String)</code></a> that converts the given + short to a <a href="http://d.android.com/reference/java/lang/String.html?is-external=true" title="class or interface in java.lang"><code>String</code></a> hex representation.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-int-java.lang.String-">fromShort(int, String)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> +<div class="block">Convenience overload of <a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-short-java.lang.String-"><code>Uuids.fromShort(short, String)</code></a> so you don't + have to downcast hardcoded integers yourself.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-java.lang.String-java.lang.String-">fromShort(String, String)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> +<div class="block">Replaces the characters at indices 4, 5, 6, and 7 of <code>uuidTemplate</code> with the + <code>assignedNumber</code> parameter and returns the resulting <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> using <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true#fromString-java.lang.String-" title="class or interface in java.util"><code>UUID.fromString(String)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromString-java.lang.String-">fromString(String)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> +<div class="block">Convenience forwarding of <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true#fromString-java.lang.String-" title="class or interface in java.util"><code>UUID.fromString(String)</code></a>, <a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-java.lang.String-"><code>Uuids.fromShort(String)</code></a>, or <a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromInt-java.lang.String-"><code>Uuids.fromInt(String)</code></a> depending on the length of string given.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceState.html#FULL_MASK">FULL_MASK</a></span> - Static variable in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a></dt> +<dd> +<div class="block">Full bitwise mask made by ORing all <a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> instances together.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerState.html#FULL_MASK">FULL_MASK</a></span> - Static variable in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a></dt> +<dd> +<div class="block">Full bitwise mask made by ORing all <a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> instances together.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServerState.html#FULL_MASK">FULL_MASK</a></span> - Static variable in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a></dt> +<dd> +<div class="block">Full bitwise mask made by ORing all <a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleServerState</code></a> instances together.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">FutureData</span></a> - Interface in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">A simple interface whose implementations should be passed to methods like <a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-"><code>BleDevice.write(UUID, FutureData)</code></a> + so you can provide time-sensitive data at the last possible moment.</div> +</dd> +</dl> +<a name="I:G"> +<!-- --> +</a> +<h2 class="title">G</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_AUTH_FAIL">GATT_AUTH_FAIL</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_BUSY">GATT_BUSY</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_CMD_STARTED">GATT_CMD_STARTED</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_CMD_WRITE">GATT_CMD_WRITE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_CONN_UNKNOWN">GATT_CONN_UNKNOWN</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_DB_FULL">GATT_DB_FULL</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_ENCRYPED_MITM">GATT_ENCRYPED_MITM</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_ENCRYPED_NO_MITM">GATT_ENCRYPED_NO_MITM</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_ERR_UNLIKELY">GATT_ERR_UNLIKELY</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_ERROR">GATT_ERROR</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_HANDLE_VALUE_CONF">GATT_HANDLE_VALUE_CONF</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_HANDLE_VALUE_IND">GATT_HANDLE_VALUE_IND</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_HANDLE_VALUE_NOTIF">GATT_HANDLE_VALUE_NOTIF</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_ILLEGAL_PARAMETER">GATT_ILLEGAL_PARAMETER</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INSUF_AUTHENTICATION">GATT_INSUF_AUTHENTICATION</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INSUF_AUTHORIZATION">GATT_INSUF_AUTHORIZATION</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INSUF_ENCRYPTION">GATT_INSUF_ENCRYPTION</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INSUF_KEY_SIZE">GATT_INSUF_KEY_SIZE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INSUF_RESOURCE">GATT_INSUF_RESOURCE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INTERNAL_ERROR">GATT_INTERNAL_ERROR</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INVALID_ATTR_LEN">GATT_INVALID_ATTR_LEN</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INVALID_CFG">GATT_INVALID_CFG</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INVALID_HANDLE">GATT_INVALID_HANDLE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INVALID_OFFSET">GATT_INVALID_OFFSET</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_INVALID_PDU">GATT_INVALID_PDU</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_MORE">GATT_MORE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.html#GATT_MTU_OVERHEAD">GATT_MTU_OVERHEAD</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dt> +<dd> +<div class="block">The overhead in bytes that is subtracted from the total mtu size (e.g.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_NO_RESOURCES">GATT_NO_RESOURCES</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_NOT_ENCRYPTED">GATT_NOT_ENCRYPTED</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_NOT_FOUND">GATT_NOT_FOUND</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_NOT_LONG">GATT_NOT_LONG</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_OP_CODE_MAX">GATT_OP_CODE_MAX</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_PENDING">GATT_PENDING</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_PREPARE_Q_FULL">GATT_PREPARE_Q_FULL</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_READ_NOT_PERMIT">GATT_READ_NOT_PERMIT</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_EXEC_WRITE">GATT_REQ_EXEC_WRITE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_FIND_INFO">GATT_REQ_FIND_INFO</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_FIND_TYPE_VALUE">GATT_REQ_FIND_TYPE_VALUE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_MTU">GATT_REQ_MTU</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_NOT_SUPPORTED">GATT_REQ_NOT_SUPPORTED</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_PREPARE_WRITE">GATT_REQ_PREPARE_WRITE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_READ">GATT_REQ_READ</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_READ_BLOB">GATT_REQ_READ_BLOB</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_READ_BY_GRP_TYPE">GATT_REQ_READ_BY_GRP_TYPE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_READ_BY_TYPE">GATT_REQ_READ_BY_TYPE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_READ_MULTI">GATT_REQ_READ_MULTI</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_REQ_WRITE">GATT_REQ_WRITE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_ERROR">GATT_RSP_ERROR</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_EXEC_WRITE">GATT_RSP_EXEC_WRITE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_FIND_INFO">GATT_RSP_FIND_INFO</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_FIND_TYPE_VALUE">GATT_RSP_FIND_TYPE_VALUE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_MTU">GATT_RSP_MTU</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_PREPARE_WRITE">GATT_RSP_PREPARE_WRITE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_READ">GATT_RSP_READ</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_READ_BLOB">GATT_RSP_READ_BLOB</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_READ_BY_GRP_TYPE">GATT_RSP_READ_BY_GRP_TYPE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_READ_BY_TYPE">GATT_RSP_READ_BY_TYPE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_READ_MULTI">GATT_RSP_READ_MULTI</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_RSP_WRITE">GATT_RSP_WRITE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_SERVICE_STARTED">GATT_SERVICE_STARTED</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_SIGN_CMD_WRITE">GATT_SIGN_CMD_WRITE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_STATUS_NOT_APPLICABLE">GATT_STATUS_NOT_APPLICABLE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> +<div class="block">Status code used for <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#gattStatus--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.gattStatus()</code></a> when the operation failed at a point where a + gatt status from the underlying stack isn't provided or applicable.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_SUCCESS">GATT_SUCCESS</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_UNSUPPORT_GRP_TYPE">GATT_UNSUPPORT_GRP_TYPE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_WRITE_NOT_PERMIT">GATT_WRITE_NOT_PERMIT</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_WRONG_STATE">GATT_WRONG_STATE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#gattStatus--">gattStatus()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">The native gatt status returned from the stack, if applicable.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html#gattStatus--">gattStatus()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.StateListener.StateEvent</a></dt> +<dd> +<div class="block">The change in gattStatus that may have precipitated the state change, or <a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_STATUS_NOT_APPLICABLE"><code>BleStatuses.GATT_STATUS_NOT_APPLICABLE</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html#gattStatus--">gattStatus()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">The gattStatus returned, if applicable, from native callbacks like <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCallback.html?is-external=true#onConnectionStateChange-android.bluetooth.BluetoothGatt-int-int-" title="class or interface in android.bluetooth"><code>BluetoothGattCallback.onConnectionStateChange(BluetoothGatt, int, int)</code></a> + or <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCallback.html?is-external=true#onServicesDiscovered-android.bluetooth.BluetoothGatt-int-" title="class or interface in android.bluetooth"><code>BluetoothGattCallback.onServicesDiscovered(BluetoothGatt, int)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#gattStatus--">gattStatus()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.ServiceAddEvent</a></dt> +<dd> +<div class="block">Should only be relevant if <a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#status--"><code>BleServer.ServiceAddListener.ServiceAddEvent.status()</code></a> is <a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#FAILED_EVENTUALLY"><code>BleServer.ServiceAddListener.Status.FAILED_EVENTUALLY</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#gattStatus--">gattStatus()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.StateListener.StateEvent</a></dt> +<dd> +<div class="block">The change in gattStatus that may have precipitated the state change, or <a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_STATUS_NOT_APPLICABLE"><code>BleStatuses.GATT_STATUS_NOT_APPLICABLE</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#gattStatus_received--">gattStatus_received()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></dt> +<dd> +<div class="block">The gattStatus received from an attempted communication with the client.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#gattStatus_sent--">gattStatus_sent()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></dt> +<dd> +<div class="block">The gattStatus sent to the client, provided to static methods of <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener.Please</code></a> + if <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>BleServer.ExchangeListener.ExchangeEvent.type()</code></a> is <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#READ"><code>BleServer.ExchangeListener.Type.READ</code></a> or <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#WRITE"><code>BleServer.ExchangeListener.Type.WRITE</code></a> - otherwise this will equal <a href="com/idevicesinc/sweetblue/BleStatuses.html#GATT_STATUS_NOT_APPLICABLE"><code>BleStatuses.GATT_STATUS_NOT_APPLICABLE</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#GENERIC_ACCESS_SERVICE_UUID">GENERIC_ACCESS_SERVICE_UUID</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#GENERIC_ATTRIBUTES_SERVICE_UUID">GENERIC_ATTRIBUTES_SERVICE_UUID</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">GenericListener_Void</span></a><<a href="com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="type parameter in GenericListener_Void">T_Event</a> extends <a href="com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a>> - Interface in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#get-com.idevicesinc.sweetblue.utils.EpochTimeRange-int-">get(EpochTimeRange, int)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#get-com.idevicesinc.sweetblue.utils.EpochTimeRange-int-">get(EpochTimeRange, int)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-">get(Context)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Create the singleton instance or retrieve the already-created singleton instance with default configuration options set.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-">get(Context, BleManagerConfig)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Create the singleton instance or retrieve the already-created singleton instance with custom configuration options set.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getAdvertisedServiceData--">getAdvertisedServiceData()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the manufacturer data, if any, parsed from <a href="com/idevicesinc/sweetblue/BleDevice.html#getScanRecord--"><code>BleDevice.getScanRecord()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getAdvertisedServices--">getAdvertisedServices()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the advertised services, if any, parsed from <a href="com/idevicesinc/sweetblue/BleDevice.html#getScanRecord--"><code>BleDevice.getScanRecord()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getAdvertisingFlags--">getAdvertisingFlags()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the advertising flags, if any, parse from <a href="com/idevicesinc/sweetblue/BleDevice.html#getScanRecord--"><code>BleDevice.getScanRecord()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html#getAdvertisingMode--">getAdvertisingMode()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingSettings</a></dt> +<dd> +<div class="block">Returns the advertising mode specified with <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleAdvertisingMode</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html#getAdvFlags--">getAdvFlags()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#getAmendedData--">getAmendedData()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></dt> +<dd> +<div class="block">Returns the amended data provided through <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#andAmendData-byte:A-"><code>BleNodeConfig.HistoricalDataLogFilter.Please.andAmendData(byte[])</code></a>, or <code>null</code> if not applicable.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#getAmendedEpochTime--">getAmendedEpochTime()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></dt> +<dd> +<div class="block">Returns the amended epoch time provided through <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#andAmendEpochTime-com.idevicesinc.sweetblue.utils.EpochTime-"><code>BleNodeConfig.HistoricalDataLogFilter.Please.andAmendEpochTime(EpochTime)</code></a>, or <a href="com/idevicesinc/sweetblue/utils/EpochTime.html#NULL"><code>EpochTime.NULL</code></a> if not applicable.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getApplicationContext--">getApplicationContext()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns the <a href="http://d.android.com/reference/android/app/Application.html?is-external=true" title="class or interface in android.app"><code>Application</code></a> provided to the constructor.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getAverageReadTime--">getAverageReadTime()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">See similar explanation for <a href="com/idevicesinc/sweetblue/BleDevice.html#getAverageWriteTime--"><code>BleDevice.getAverageWriteTime()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getAverageWriteTime--">getAverageWriteTime()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the average round trip time in seconds for all write operations started with <a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>BleDevice.write(UUID, byte[])</code></a> or + <a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.write(UUID, byte[], ReadWriteListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#getBlob-int-">getBlob(int)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#getBlob--">getBlob()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></dt> +<dd> +<div class="block">Returns the data instance (WARNING: not cloned) passed into the constructor.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#getBlob--">getBlob()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></dt> +<dd> +<div class="block">Returns the BLOB of the historical data as a <code>byte[]</code>, equivalent to <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#getBlob--"><code>HistoricalData.getBlob()</code></a> + but a raw <code>byte[]</code> is used for performance reasons.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#getBlob_string--">getBlob_string()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></dt> +<dd> +<div class="block">Attempts to parse <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#getBlob--"><code>HistoricalData.getBlob()</code></a> as a UTF-8 string.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getClientCount--">getClientCount()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Returns the total number of clients this server is connecting or connected to (or previously so).</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getClientCount-com.idevicesinc.sweetblue.BleServerState-">getClientCount(BleServerState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Returns the number of clients that are in the current state.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getClientCount-com.idevicesinc.sweetblue.BleServerState...-">getClientCount(BleServerState...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Returns the number of clients that are in any of the given states.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-">getClients(ForEach_Void<String>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Offers a more "functional" means of iterating through the internal list of clients instead of + using <a href="com/idevicesinc/sweetblue/BleServer.html#getClients--"><code>BleServer.getClients()</code></a> or <a href="com/idevicesinc/sweetblue/BleServer.html#getClients_List--"><code>BleServer.getClients_List()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-com.idevicesinc.sweetblue.BleServerState-">getClients(ForEach_Void<String>, BleServerState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-"><code>BleServer.getClients(ForEach_Void)</code></a> but will only return clients + in the given state provided.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-com.idevicesinc.sweetblue.BleServerState...-">getClients(ForEach_Void<String>, BleServerState...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-"><code>BleServer.getClients(ForEach_Void)</code></a> but will only return clients + in any of the given states provided.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getClients(ForEach_Breakable<String>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-"><code>BleServer.getClients(ForEach_Void)</code></a> + if you need to break out of the iteration at any point.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Breakable-com.idevicesinc.sweetblue.BleServerState-">getClients(ForEach_Breakable<String>, BleServerState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Void-com.idevicesinc.sweetblue.BleServerState-"><code>BleServer.getClients(ForEach_Void, BleServerState)</code></a> + if you need to break out of the iteration at any point.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Breakable-com.idevicesinc.sweetblue.BleServerState...-">getClients(ForEach_Breakable<String>, BleServerState...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.utils.ForEach_Breakable-"><code>BleServer.getClients(ForEach_Breakable)</code></a> but will only return clients + in any of the given states provided.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getClients--">getClients()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Returns all the clients connected or connecting (or previously so) to this server.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.BleServerState-">getClients(BleServerState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Returns all the clients connected or connecting (or previously so) to this server.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.BleServerState...-">getClients(BleServerState...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Returns all the clients connected or connecting (or previously so) to this server.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getClients_List--">getClients_List()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#getClients--"><code>BleServer.getClients()</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getClients_List-com.idevicesinc.sweetblue.BleServerState-">getClients_List(BleServerState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.BleServerState-"><code>BleServer.getClients(BleServerState)</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getClients_List-com.idevicesinc.sweetblue.BleServerState...-">getClients_List(BleServerState...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#getClients-com.idevicesinc.sweetblue.BleServerState...-"><code>BleServer.getClients(BleServerState[])</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#getColumnCount--">getColumnCount()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#getColumnIndex-java.lang.String-">getColumnIndex(String)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html#getColumnIndex--">getColumnIndex()</a></span> - Method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a></dt> +<dd> +<div class="block">Gets the name of this database column - you can use this for example to help navigate the <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database"><code>Cursor</code></a> + returned by <a href="com/idevicesinc/sweetblue/BleNode.html#queryHistoricalData-java.lang.String-"><code>BleNode.queryHistoricalData(String)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#getColumnIndexOrThrow-java.lang.String-">getColumnIndexOrThrow(String)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#getColumnName-int-">getColumnName(int)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html#getColumnName--">getColumnName()</a></span> - Method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a></dt> +<dd> +<div class="block">Gets the name of this database column - you can use this for example to do raw queries through <a href="com/idevicesinc/sweetblue/BleNode.html#queryHistoricalData-java.lang.String-"><code>BleNode.queryHistoricalData(String)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#getColumnNames--">getColumnNames()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getConnectionPriority--">getConnectionPriority()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the connection priority value set by <a href="com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setConnectionPriority(BleConnectionPriority, ReadWriteListener)</code></a>, or <a href="com/idevicesinc/sweetblue/BleNodeConfig.html#DEFAULT_MTU_SIZE"><code>BleNodeConfig.DEFAULT_MTU_SIZE</code></a> if + it was never set explicitly.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getConnectionRetryCount--">getConnectionRetryCount()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the connection failure retry count during a retry loop.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#getCount-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCount(String, UUID, EpochTimeRange)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#getCount-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCount(String, UUID, EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#getCount-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCount(EpochTimeRange)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#getCount-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCount(EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#getCount--">getCount()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#getCount--">getCount()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></dt> +<dd> +<div class="block">Returns the numbers of rows in the cursor.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Time.html#getCurrentTime--">getCurrentTime()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Time.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Time</a></dt> +<dd> +<div class="block">Returns the current time as a byte array, useful for implementing <a href="com/idevicesinc/sweetblue/BleServices.html#currentTime--"><code>BleServices.currentTime()</code></a> for example.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#getCursor-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCursor(String, UUID, EpochTimeRange)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#getCursor-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCursor(String, UUID, EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#getCursor-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCursor(EpochTimeRange)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#getCursor-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getCursor(EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/FutureData.html#getData--">getData()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a></dt> +<dd> +<div class="block">Return the data that should (for example) be sent to a peripheral through <a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-"><code>BleDevice.write(UUID, FutureData)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/PresentData.html#getData--">getData()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/PresentData.html" title="class in com.idevicesinc.sweetblue.utils">PresentData</a></dt> +<dd> +<div class="block">Returns the data sent into the constructor <a href="com/idevicesinc/sweetblue/utils/PresentData.html#PresentData-byte:A-"><code>PresentData.PresentData(byte[])</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#getDelta--">getDelta()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">Returns the raw milliseconds between <a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#from--"><code>EpochTimeRange.from()</code></a> and <a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#to--"><code>EpochTimeRange.to()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevice-java.lang.String-">getDevice(String)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Gets a known <a href="com/idevicesinc/sweetblue/BleDeviceState.html#DISCOVERED"><code>BleDeviceState.DISCOVERED</code></a> device by MAC address, or <a href="com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> if there is no such device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevice-com.idevicesinc.sweetblue.BleDeviceState-">getDevice(BleDeviceState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns the first device that is in the given state, or <a href="com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> if no match is found.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevice--">getDevice()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Forwards <a href="com/idevicesinc/sweetblue/BleManager.html#getDeviceAt-int-"><code>BleManager.getDeviceAt(int)</code></a> with index of 0.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevice-java.lang.Object...-">getDevice(Object...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns the first device that matches the query, or <a href="com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> if no match is found.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevice-int-">getDevice(int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns the first device which returns <code>true</code> for <a href="com/idevicesinc/sweetblue/BleDevice.html#isAny-int-"><code>BleDevice.isAny(int)</code></a>, or <a href="com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a> if no such device is found.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTransaction.html#getDevice--">getDevice()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></dt> +<dd> +<div class="block">Returns the device this transaction is running on.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html#getDevice--">getDevice()</a></span> - Method in class com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat">L_Util.ScanResult</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-">getDevice_next(BleDevice)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleManager.getDevice_next(BleDevice, BleDeviceState)</code></a> but just returns the next device in the internal list + with no state checking.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-">getDevice_next(BleDevice, BleDeviceState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleManager.getDevice_previous(BleDevice, BleDeviceState)</code></a> but returns the next device in the internal list + with no state checking.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-java.lang.Object...-">getDevice_next(BleDevice, Object...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleManager.getDevice_next(BleDevice, BleDeviceState)</code></a> but allows you to pass a query.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-">getDevice_previous(BleDevice)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-">getDevice_previous(BleDevice, BleDeviceState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns the first device previous to the provided one in the internal list that is in the given state.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-java.lang.Object...-">getDevice_previous(BleDevice, Object...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleManager.getDevice_previous(BleDevice, BleDeviceState)</code></a> but allows you to pass a query.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDeviceAt-int-">getDeviceAt(int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Accessor into the underlying array used to store <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> instances.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDeviceCount--">getDeviceCount()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns the total number of devices this manager is...managing.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDeviceCount-com.idevicesinc.sweetblue.BleDeviceState-">getDeviceCount(BleDeviceState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns the number of devices that are in the current state.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDeviceCount-java.lang.Object...-">getDeviceCount(Object...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns the number of devices that match the given query.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDeviceIndex-com.idevicesinc.sweetblue.BleDevice-">getDeviceIndex(BleDevice)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns the index of this device in the internal list, or -1 if it's not found.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.utils.ForEach_Void-">getDevices(ForEach_Void<BleDevice>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Offers a more "functional" means of iterating through the internal list of devices instead of + using <a href="com/idevicesinc/sweetblue/BleManager.html#getDevices--"><code>BleManager.getDevices()</code></a> or <a href="com/idevicesinc/sweetblue/BleManager.html#getDevices_List--"><code>BleManager.getDevices_List()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.utils.ForEach_Void-com.idevicesinc.sweetblue.BleDeviceState-">getDevices(ForEach_Void<BleDevice>, BleDeviceState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.utils.ForEach_Void-"><code>BleManager.getDevices(ForEach_Void)</code></a> but will only return devices + in the given state provided.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getDevices(ForEach_Breakable<BleDevice>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.utils.ForEach_Void-"><code>BleManager.getDevices(ForEach_Void)</code></a> + if you need to break out of the iteration at any point.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.utils.ForEach_Breakable-com.idevicesinc.sweetblue.BleDeviceState-">getDevices(ForEach_Breakable<BleDevice>, BleDeviceState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.utils.ForEach_Void-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleManager.getDevices(ForEach_Void, BleDeviceState)</code></a> + if you need to break out of the iteration at any point.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices--">getDevices()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns all the devices managed by this class.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.BleDeviceState-">getDevices(BleDeviceState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#getDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleManager.getDevice(BleDeviceState)</code></a> except returns all matching devices.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices-java.lang.Object...-">getDevices(Object...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#getDevice-java.lang.Object...-"><code>BleManager.getDevice(Object...)</code></a> except returns all matching devices.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices-int-">getDevices(int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#getDevices--"><code>BleManager.getDevices()</code></a> except filters using <a href="com/idevicesinc/sweetblue/BleDevice.html#isAny-int-"><code>BleDevice.isAny(int)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices_bonded--">getDevices_bonded()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Convenience method to return a <a href="http://d.android.com/reference/java/util/Set.html?is-external=true" title="class or interface in java.util"><code>Set</code></a> of currently bonded devices.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices_List--">getDevices_List()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleManager.html#getDevices--"><code>BleManager.getDevices()</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices_List-com.idevicesinc.sweetblue.BleDeviceState-">getDevices_List(BleDeviceState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleManager.html#getDevices-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleManager.getDevices(BleDeviceState)</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices_List-java.lang.Object...-">getDevices_List(Object...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleManager.html#getDevices-java.lang.Object...-"><code>BleManager.getDevices(Object...)</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices_List-int-">getDevices_List(int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleManager.html#getDevices-int-"><code>BleManager.getDevices(int)</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices_List_sorted--">getDevices_List_sorted()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#getDevices_List--"><code>BleManager.getDevices_List()</code></a>, but sorts the list using <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#defaultListComparator"><code>BleManagerConfig.defaultListComparator</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices_List_sorted-com.idevicesinc.sweetblue.BleDeviceState-">getDevices_List_sorted(BleDeviceState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#getDevices_List-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleManager.getDevices_List(BleDeviceState)</code></a> except the list is sorted using <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#defaultListComparator"><code>BleManagerConfig.defaultListComparator</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices_List_sorted-java.lang.Object...-">getDevices_List_sorted(Object...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#getDevices_List-java.lang.Object...-"><code>BleManager.getDevices_List(Object...)</code></a> except the list is sorted using <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#defaultListComparator"><code>BleManagerConfig.defaultListComparator</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices_List_sorted-int-">getDevices_List_sorted(int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#getDevices_List-int-"><code>BleManager.getDevices_List(int)</code></a> except the list is sorted using <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#defaultListComparator"><code>BleManagerConfig.defaultListComparator</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices_previouslyConnected--">getDevices_previouslyConnected()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns the mac addresses of all devices that we know about from both current and previous + app sessions.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getDevices_sorted--">getDevices_sorted()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#getDevices--"><code>BleManager.getDevices()</code></a>, but with the devices sorted using <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#defaultListComparator"><code>BleManagerConfig.defaultListComparator</code></a>, which + by default sorts by <a href="com/idevicesinc/sweetblue/BleDevice.html#getName_debug--"><code>BleDevice.getName_debug()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getDistance--">getDistance()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the approximate distance in meters based on <a href="com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>BleDevice.getRssi()</code></a> and + <a href="com/idevicesinc/sweetblue/BleDevice.html#getTxPower--"><code>BleDevice.getTxPower()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#getDouble-int-">getDouble(int)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#getEpochTime--">getEpochTime()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></dt> +<dd> +<div class="block">Returns the timestamp passed into the constructor.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#getEpochTime--">getEpochTime()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></dt> +<dd> +<div class="block">Returns the epoch time of the historical data as a <code>long</code>, equivalent to + <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#getEpochTime--"><code>HistoricalData.getEpochTime()</code></a> but raw <code>long</code> is used for performance reasons.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#getEpochTime_date--">getEpochTime_date()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></dt> +<dd> +<div class="block">Convenience to return the timestamp as a <a href="http://d.android.com/reference/java/util/Date.html?is-external=true" title="class or interface in java.util"><code>Date</code></a> instance.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#getEpochTime_dateString-java.text.DateFormat-">getEpochTime_dateString(DateFormat)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></dt> +<dd> +<div class="block">Convenience to return the timestamp as a formatted string, for example pass <code>new SimpleDateFormat("MM/dd/yyyy HH:mm:ss")</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#getEpochTime_millis--">getEpochTime_millis()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></dt> +<dd> +<div class="block">Convenience to return the epoch time as milliseconds since 1970.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#getExtras--">getExtras()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#getFlags-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option:A-">getFlags(BleAdvertisingPacket.Option[])</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#getFloat-int-">getFloat(int)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Time.html#getFutureLocalTimeInfo--">getFutureLocalTimeInfo()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Time.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Time</a></dt> +<dd> +<div class="block"><a href="com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><code>FutureData</code></a> wrapper of <a href="com/idevicesinc/sweetblue/utils/Utils_Time.html#getLocalTimeInfo--"><code>Utils_Time.getLocalTimeInfo()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Time.html#getFutureTime--">getFutureTime()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Time.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Time</a></dt> +<dd> +<div class="block"><a href="com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><code>FutureData</code></a> wrapper of <a href="com/idevicesinc/sweetblue/utils/Utils_Time.html#getCurrentTime--"><code>Utils_Time.getCurrentTime()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html#getHandler--">getHandler()</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html#getHandler--">getHandler()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#getHistoricalData--">getHistoricalData()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></dt> +<dd> +<div class="block">Returns the historical data at the current position.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_atOffset-java.util.UUID-int-">getHistoricalData_atOffset(UUID, int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#addHistoricalData-java.util.UUID-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>BleDevice.addHistoricalData(UUID, byte[], EpochTime)</code></a> but returns the data from the chronological offset, i.e.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_atOffset-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-int-">getHistoricalData_atOffset(UUID, EpochTimeRange, int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_atOffset-java.util.UUID-int-"><code>BleDevice.getHistoricalData_atOffset(java.util.UUID, int)</code></a> but offset is relative to the time range provided.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_cursor-java.util.UUID-">getHistoricalData_cursor(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns a cursor capable of random access to the database-persisted historical data for this device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_cursor-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getHistoricalData_cursor(UUID, EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_cursor-java.util.UUID-"><code>BleDevice.getHistoricalData_cursor(UUID)</code></a> but constrains the results to the given time range.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_forEach-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-">getHistoricalData_forEach(UUID, ForEach_Void<HistoricalData>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Provides all historical data through the "for each" provided.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_forEach-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-com.idevicesinc.sweetblue.utils.ForEach_Void-">getHistoricalData_forEach(UUID, EpochTimeRange, ForEach_Void<HistoricalData>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Provides all historical data through the "for each" provided within the range provided.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_forEach-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getHistoricalData_forEach(UUID, ForEach_Breakable<HistoricalData>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Provides all historical data through the "for each" provided.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_forEach-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getHistoricalData_forEach(UUID, EpochTimeRange, ForEach_Breakable<HistoricalData>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Provides all historical data through the "for each" provided within the range provided.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_iterator-java.util.UUID-">getHistoricalData_iterator(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns an iterator that will iterate through all <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> entries.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_iterator-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getHistoricalData_iterator(UUID, EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns an iterator that will iterate through all <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> entries within the range provided.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_latest-java.util.UUID-">getHistoricalData_latest(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the cached data from the lastest successful read or notify received for a given uuid.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getHistoricalDataCount-java.util.UUID-">getHistoricalDataCount(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the number of historical data entries that have been logged for the device's given characteristic.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getHistoricalDataCount-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getHistoricalDataCount(UUID, EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the number of historical data entries that have been logged + for the device's given characteristic within the range provided.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getHistoricalDataTableName-java.util.UUID-">getHistoricalDataTableName(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the database table name for the underlying store of historical data for the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getIndex--">getIndex()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Convenience forwarding of <a href="com/idevicesinc/sweetblue/BleManager.html#getDeviceIndex-com.idevicesinc.sweetblue.BleDevice-"><code>BleManager.getDeviceIndex(BleDevice)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#getInt-int-">getInt(int)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#getInt-java.util.UUID-">getInt(UUID)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> +<div class="block">Parses the first 8 characters of the string representations of the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> as an integer hex string.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#getIntent-T_State-">getIntent(T_State)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></dt> +<dd> +<div class="block">Returns the intention behind the state change, or <a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#NULL"><code>State.ChangeIntent.NULL</code></a> if no state + change for the given state occurred.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#getIntValue-byte:A-">getIntValue(byte[])</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#getIterator-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getIterator(EpochTimeRange)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#getIterator-com.idevicesinc.sweetblue.utils.EpochTimeRange-">getIterator(EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getLastDisconnectIntent--">getLastDisconnectIntent()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">This enum gives you an indication of the last interaction with a device across app sessions or in-app BLE + <a href="com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>-><a href="com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a> cycles or undiscovery->rediscovery, which + basically means how it was last <a href="com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getLastDiscoveryTime--">getLastDiscoveryTime()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the last time the device was <a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#DISCOVERED"><code>BleManager.DiscoveryListener.LifeCycle.DISCOVERED</code></a> + or <a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#REDISCOVERED"><code>BleManager.DiscoveryListener.LifeCycle.REDISCOVERED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/DebugLogger.html#getLastLog--">getLastLog()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils">DebugLogger</a></dt> +<dd> +<div class="block">Returns the last log statement</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/DebugLogger.html#getLastLogs-int-">getLastLogs(int)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils">DebugLogger</a></dt> +<dd> +<div class="block">Return a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> with the last @param count of log statements.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#getLimit--">getLimit()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></dt> +<dd> +<div class="block">Returns the limit provided through <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#andLimitLogTo-long-"><code>BleNodeConfig.HistoricalDataLogFilter.Please.andLimitLogTo(long)</code></a>, or <a href="http://d.android.com/reference/java/lang/Long.html?is-external=true#MAX_VALUE" title="class or interface in java.lang"><code>Long.MAX_VALUE</code></a> if not applicable.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getListener_Advertise--">getListener_Advertise()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getListener_Discovery--">getListener_Discovery()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns the discovery listener set with <a href="com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>BleManager.setListener_Discovery(BleManager.DiscoveryListener)</code></a> or + <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#defaultDiscoveryListener"><code>BleManagerConfig.defaultDiscoveryListener</code></a>, or <code>null</code> if not set.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getListener_Incoming--">getListener_Incoming()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Returns the listener provided to <a href="com/idevicesinc/sweetblue/BleServer.html#setListener_Incoming-com.idevicesinc.sweetblue.BleServer.IncomingListener-"><code>BleServer.setListener_Incoming(IncomingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#getLoadState--">getLoadState()</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#getLoadState--">getLoadState()</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Time.html#getLocalTimeInfo--">getLocalTimeInfo()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Time.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Time</a></dt> +<dd> +<div class="block">Returns the local time info as a byte array, useful for implementing <a href="com/idevicesinc/sweetblue/BleServices.html#currentTime--"><code>BleServices.currentTime()</code></a> for example.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/DebugLogger.html#getLogList--">getLogList()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils">DebugLogger</a></dt> +<dd> +<div class="block">Returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> of log statements.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#getLong-int-">getLong(int)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#getMacAddress--">getMacAddress()</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#getMacAddress--">getMacAddress()</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getMacAddress--">getMacAddress()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the MAC address of this device, as retrieved from the native stack or provided through <a href="com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-"><code>BleManager.newDevice(String)</code></a> (or overloads thereof).</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getMacAddress--">getMacAddress()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Returns the MAC address of the remote <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> or local <a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getMacAddress--">getMacAddress()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Returns the local mac address provided by <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#getAddress--" title="class or interface in android.bluetooth"><code>BluetoothAdapter.getAddress()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getManager--">getManager()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Returns this endpoint's manager.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#getManufacturerData--">getManufacturerData()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Returns the manufacturer data</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getManufacturerData--">getManufacturerData()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the manufacturer data, if any, parsed from <a href="com/idevicesinc/sweetblue/BleDevice.html#getScanRecord--"><code>BleDevice.getScanRecord()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html#getManufacturerData--">getManufacturerData()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#getManufacturerId--">getManufacturerId()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Returns the manufacturer Id being used</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getManufacturerId--">getManufacturerId()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the manufacturer id, if any, parsed from <a href="com/idevicesinc/sweetblue/BleDevice.html#getScanRecord--"><code>BleDevice.getScanRecord()</code></a> }.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html#getManufacturerId--">getManufacturerId()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getMtu--">getMtu()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the "maximum transmission unit" value set by <a href="com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setMtu(int, ReadWriteListener)</code></a>, or <a href="com/idevicesinc/sweetblue/BleNodeConfig.html#DEFAULT_MTU_SIZE"><code>BleNodeConfig.DEFAULT_MTU_SIZE</code></a> if + it was never set explicitly.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html#getName--">getName()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getName_debug--">getName_debug()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns a name useful for logging and debugging.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getName_native--">getName_native()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the raw, unmodified device name retrieved from the stack.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getName_normalized--">getName_normalized()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">The name retrieved from <a href="com/idevicesinc/sweetblue/BleDevice.html#getName_native--"><code>BleDevice.getName_native()</code></a> can change arbitrarily, + like the last 4 of the MAC address can get appended sometimes, and spaces + might get changed to underscores or vice-versa, caps to lowercase, etc.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getName_override--">getName_override()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">By default returns the same value as <a href="com/idevicesinc/sweetblue/BleDevice.html#getName_native--"><code>BleDevice.getName_native()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getNative--">getNative()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Provides just-in-case lower-level access to the native device instance.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getNative--">getNative()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns the native manager.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getNative--">getNative()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Provides just-in-case lower-level access to the native server instance.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getNativeAdapter--">getNativeAdapter()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns the native bluetooth adapter.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristic-java.util.UUID-">getNativeCharacteristic(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Returns the native characteristic for the given UUID in case you need lower-level access.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristic-java.util.UUID-java.util.UUID-">getNativeCharacteristic(UUID, UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristic-java.util.UUID-"><code>BleNode.getNativeCharacteristic(UUID)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeCharacteristics(ForEach_Void<BluetoothGattCharacteristic>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics--"><code>BleNode.getNativeCharacteristics()</code></a> that uses a for each construct instead of returning an iterator.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeCharacteristics(ForEach_Breakable<BluetoothGattCharacteristic>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics--"><code>BleNode.getNativeCharacteristics()</code></a> that uses a for each construct instead of returning an iterator.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeCharacteristics(UUID, ForEach_Void<BluetoothGattCharacteristic>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-"><code>BleNode.getNativeCharacteristics(UUID)</code></a> that uses a for each construct instead of returning an iterator.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeCharacteristics(UUID, ForEach_Breakable<BluetoothGattCharacteristic>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-"><code>BleNode.getNativeCharacteristics(UUID)</code></a> that uses a for each construct instead of returning an iterator.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics--">getNativeCharacteristics()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Returns all <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattCharacteristic.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattCharacteristic</code></a> instances.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-">getNativeCharacteristics(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics--"><code>BleNode.getNativeCharacteristics()</code></a> but you can filter on the service <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics_List--">getNativeCharacteristics_List()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Convenience overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics--"><code>BleNode.getNativeCharacteristics()</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics_List-java.util.UUID-">getNativeCharacteristics_List(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Convenience overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeCharacteristics-java.util.UUID-"><code>BleNode.getNativeCharacteristics(UUID)</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerState.html#getNativeCode--">getNativeCode()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a></dt> +<dd> +<div class="block">Returns the analogous native code, if applicable.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor-java.util.UUID-">getNativeDescriptor(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-"><code>BleNode.getNativeDescriptor(UUID, UUID, UUID)</code></a> that will return the first descriptor we find + matching the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-">getNativeDescriptor(UUID, UUID, UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Returns the native descriptor for the given UUID in case you need lower-level access.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor_inChar-java.util.UUID-java.util.UUID-">getNativeDescriptor_inChar(UUID, UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-"><code>BleNode.getNativeDescriptor(UUID, UUID, UUID)</code></a> that will return the first descriptor we find + inside the given characteristic matching the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor_inService-java.util.UUID-java.util.UUID-">getNativeDescriptor_inService(UUID, UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-"><code>BleNode.getNativeDescriptor(UUID, UUID, UUID)</code></a> that will return the first descriptor we find + inside the given service matching the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors--">getNativeDescriptors()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Returns all descriptors on this node.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-java.util.UUID-java.util.UUID-">getNativeDescriptors(UUID, UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Returns all descriptors on this node in the given characteristic.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeDescriptors(ForEach_Void<BluetoothGattDescriptor>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors--"><code>BleNode.getNativeDescriptors()</code></a> using a for each construct.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeDescriptors(ForEach_Breakable<BluetoothGattDescriptor>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors--"><code>BleNode.getNativeDescriptors()</code></a> using a for each construct.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeDescriptors(UUID, UUID, ForEach_Void<BluetoothGattDescriptor>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-java.util.UUID-java.util.UUID-"><code>BleNode.getNativeDescriptors(UUID, UUID)</code></a> using a for each construct.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeDescriptors(UUID, UUID, ForEach_Breakable<BluetoothGattDescriptor>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors-java.util.UUID-java.util.UUID-"><code>BleNode.getNativeDescriptors(UUID, UUID)</code></a> using a for each construct.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar-java.util.UUID-">getNativeDescriptors_inChar(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Returns all descriptors on this node in the given characteristic.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeDescriptors_inChar(UUID, ForEach_Void<BluetoothGattDescriptor>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar-java.util.UUID-"><code>BleNode.getNativeDescriptors_inChar(UUID)</code></a> using a for each construct.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeDescriptors_inChar(UUID, ForEach_Breakable<BluetoothGattDescriptor>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar-java.util.UUID-"><code>BleNode.getNativeDescriptors_inChar(UUID)</code></a> using a for each construct.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inChar_List-java.util.UUID-">getNativeDescriptors_inChar_List(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Returns all descriptors on this node in the given characteristic as a list.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService-java.util.UUID-">getNativeDescriptors_inService(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Returns all descriptors on this node in the given service.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeDescriptors_inService(UUID, ForEach_Void<BluetoothGattDescriptor>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService-java.util.UUID-"><code>BleNode.getNativeDescriptors_inService(UUID)</code></a> using a for each construct.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService-java.util.UUID-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeDescriptors_inService(UUID, ForEach_Breakable<BluetoothGattDescriptor>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService-java.util.UUID-"><code>BleNode.getNativeDescriptors_inService(UUID)</code></a> using a for each construct.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_inService_List-java.util.UUID-">getNativeDescriptors_inService_List(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Returns all descriptors on this node in the given service as a list.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_List--">getNativeDescriptors_List()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Returns all descriptors on this node as a list.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeDescriptors_List-java.util.UUID-java.util.UUID-">getNativeDescriptors_List(UUID, UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Returns all descriptors on this node in the given characteristic as a list.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getNativeGatt--">getNativeGatt()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">See pertinent warning for <a href="com/idevicesinc/sweetblue/BleDevice.html#getNative--"><code>BleDevice.getNative()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#getNativeMode--">getNativeMode()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a></dt> +<dd> +<div class="block">Returns one of the static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings</code></a>, or -1 for <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#AUTO"><code>BleAdvertisingSettings.BleAdvertisingMode.AUTO</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html#getNativeMode--">getNativeMode()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a></dt> +<dd> +<div class="block">Returns one of the static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/AdvertiseSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>AdvertiseSettings</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleConnectionPriority.html#getNativeMode--">getNativeMode()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a></dt> +<dd> +<div class="block">Returns one of the static final int members of <a href="com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue"><code>BleConnectionPriority</code></a> whose name starts with CONNECTION_PRIORITY_.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleScanMode.html#getNativeMode--">getNativeMode()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a></dt> +<dd> +<div class="block">Returns one of the static final int members of <a href="http://d.android.com/reference/android/bluetooth/le/ScanSettings.html?is-external=true" title="class or interface in android.bluetooth.le"><code>ScanSettings</code></a>, or -1 for <a href="com/idevicesinc/sweetblue/BleScanMode.html#AUTO"><code>BleScanMode.AUTO</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleScanPower.html#getNativeMode--">getNativeMode()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeService-java.util.UUID-">getNativeService(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Returns the native service for the given UUID in case you need lower-level access.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeServices--">getNativeServices()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Returns all <a href="http://d.android.com/reference/android/bluetooth/BluetoothGattService.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothGattService</code></a> instances.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeServices-com.idevicesinc.sweetblue.utils.ForEach_Void-">getNativeServices(ForEach_Void<BluetoothGattService>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeServices--"><code>BleNode.getNativeServices()</code></a> that uses a for each construct instead of returning an iterator.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeServices-com.idevicesinc.sweetblue.utils.ForEach_Breakable-">getNativeServices(ForEach_Breakable<BluetoothGattService>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeServices--"><code>BleNode.getNativeServices()</code></a> that uses a for each construct instead of returning an iterator.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getNativeServices_List--">getNativeServices_List()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Convenience overload of <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeServices--"><code>BleNode.getNativeServices()</code></a> that returns a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getNativeStateMask--">getNativeStateMask()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the actual native state mask representation of the <a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> for this device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getNativeStateMask--">getNativeStateMask()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns the native bitwise state mask representation of <a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> for this device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#getNativeStatus--">getNativeStatus()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getNext--">getNext()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Convenience forwarding of <a href="com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-"><code>BleManager.getDevice_next(BleDevice)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getNext-com.idevicesinc.sweetblue.BleDeviceState-">getNext(BleDeviceState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Convenience forwarding of <a href="com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleManager.getDevice_next(BleDevice, BleDeviceState)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getNext-java.lang.Object...-">getNext(Object...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Convenience forwarding of <a href="com/idevicesinc/sweetblue/BleManager.html#getDevice_next-com.idevicesinc.sweetblue.BleDevice-java.lang.Object...-"><code>BleManager.getDevice_next(BleDevice, Object...)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#getNotificationUri--">getNotificationUri()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getOrigin--">getOrigin()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">How the device was originally created, either from scanning or explicit creation.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#getPosition--">getPosition()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#getPosition--">getPosition()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></dt> +<dd> +<div class="block">Returns the current position of the cursor in the row set.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getPrevious--">getPrevious()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Convenience forwarding of <a href="com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-"><code>BleManager.getDevice_previous(BleDevice)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getPrevious-com.idevicesinc.sweetblue.BleDeviceState-">getPrevious(BleDeviceState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Convenience forwarding of <a href="com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleManager.getDevice_previous(BleDevice, BleDeviceState)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getPrevious-java.lang.Object...-">getPrevious(Object...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Convenience forwarding of <a href="com/idevicesinc/sweetblue/BleManager.html#getDevice_previous-com.idevicesinc.sweetblue.BleDevice-java.lang.Object...-"><code>BleManager.getDevice_previous(BleDevice, Object...)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#getRange--">getRange()</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#getRange--">getRange()</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Distance.html#getRawValue--">getRawValue()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#getRawValue--">getRawValue()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Percent.html#getRawValue--">getRawValue()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Unit.html#getRawValue--">getRawValue()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></dt> +<dd> +<div class="block">Subclasses must implement this to return their raw <code>double</code> value.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html#getRecord--">getRecord()</a></span> - Method in class com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat">L_Util.ScanResult</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#getRemedy--">getRemedy()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a></dt> +<dd> +<div class="block">Returns the <a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.Remedy</code></a> for this <a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html#getRetryCount--">getRetryCount()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleDevice.DefaultConnectionFailListener</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html#getRetryCount--">getRetryCount()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleServer.DefaultConnectionFailListener</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getRssi--">getRssi()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the raw RSSI retrieved from when the device was discovered, + rediscovered, or when you call <a href="com/idevicesinc/sweetblue/BleDevice.html#readRssi--"><code>BleDevice.readRssi()</code></a> or <a href="com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-"><code>BleDevice.startRssiPoll(Interval)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html#getRssi--">getRssi()</a></span> - Method in class com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat">L_Util.ScanResult</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getRssiPercent--">getRssiPercent()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Raw RSSI from <a href="com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>BleDevice.getRssi()</code></a> is a little cryptic, so this gives you a friendly 0%-100% value for signal strength.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html#getRunningAverage--">getRunningAverage()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils">TimeEstimator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html#getRunningAverageN--">getRunningAverageN()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils">TimeEstimator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getScanRecord--">getScanRecord()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the scan record from when we discovered the device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getServer--">getServer()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleManager.html#getServer-com.idevicesinc.sweetblue.BleServer.IncomingListener-"><code>BleManager.getServer(BleServer.IncomingListener)</code></a> without any initial set-up parameters.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getServer-com.idevicesinc.sweetblue.BleServer.IncomingListener-">getServer(BleServer.IncomingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns a <a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> instance.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#getServiceData--">getServiceData()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Returns a Map of 16bit service UUIDs, along with the associated byte arrays.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html#getServiceData--">getServiceData()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#getServiceManager--">getServiceManager()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html#getServiceUUIDS--">getServiceUUIDS()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#getShort-int-">getShort(int)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#getStage--">getStage()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></dt> +<dd> +<div class="block">Returns the current <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> the enabler is on</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getStateMask--">getStateMask()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the bitwise state mask representation of <a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> for this device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getStateMask--">getStateMask()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns the abstracted bitwise state mask representation of <a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> for this device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#getStateMask-java.lang.String-">getStateMask(String)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Returns the bitwise state mask representation of <a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleServerState</code></a> for the given client mac address.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html#getStepsCompleted--">getStepsCompleted()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils">TimeEstimator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html#getStepsRemaining--">getStepsRemaining()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils">TimeEstimator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/P_StringHandler.html#getString-android.app.Activity-java.lang.String-">getString(Activity, String)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue">P_StringHandler</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#getString-int-">getString(int)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_String.html#getStringValue-byte:A-java.lang.String-">getStringValue(byte[], String)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils">Utils_String</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_String.html#getStringValue-byte:A-">getStringValue(byte[])</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils">Utils_String</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#getTableName-java.lang.String-java.util.UUID-">getTableName(String, UUID)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#getTableName-java.lang.String-java.util.UUID-">getTableName(String, UUID)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#getTaskType--">getTaskType()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_Task_BatteryLevel.html" title="class in com.idevicesinc.sweetblue">P_Task_BatteryLevel</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTransaction.html#getTime--">getTime()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></dt> +<dd> +<div class="block">Returns the total time that this transaction has been running.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html#getTimeElapsed--">getTimeElapsed()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils">TimeEstimator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getTimeInNativeState-com.idevicesinc.sweetblue.BleManagerState-">getTimeInNativeState(BleManagerState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">See similar comment for <a href="com/idevicesinc/sweetblue/BleDevice.html#getTimeInState-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleDevice.getTimeInState(BleDeviceState)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getTimeInState-com.idevicesinc.sweetblue.BleDeviceState-">getTimeInState(BleDeviceState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">If <a href="com/idevicesinc/sweetblue/BleDevice.html#is-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleDevice.is(BleDeviceState)</code></a> returns true for the given state (i.e.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getTimeInState-com.idevicesinc.sweetblue.BleManagerState-">getTimeInState(BleManagerState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">See similar comment for <a href="com/idevicesinc/sweetblue/BleDevice.html#getTimeInState-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleDevice.getTimeInState(BleDeviceState)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html#getTimeout--">getTimeout()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingSettings</a></dt> +<dd> +<div class="block">Returns the timeout period.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html#getTimeRemaining--">getTimeRemaining()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils">TimeEstimator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html#getTotalAverage--">getTotalAverage()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils">TimeEstimator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceState.html#getTransitoryConnectionState-int-">getTransitoryConnectionState(int)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a></dt> +<dd> +<div class="block">A convenience for UI purposes, this returns the "highest" connection state representing + a transition from one state to another, so something with "ING" in the name (except <a href="com/idevicesinc/sweetblue/BleDeviceState.html#PERFORMING_OTA"><code>BleDeviceState.PERFORMING_OTA</code></a>).</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html#getTransmissionPower--">getTransmissionPower()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingSettings</a></dt> +<dd> +<div class="block">Returns the advertising transmission power specified with <a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue"><code>BleAdvertisingSettings.BleTransmissionPower</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#getTxPower--">getTxPower()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the calibrated transmission power of the device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html#getTxPower--">getTxPower()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#getType-int-">getType(int)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#getUpdateLoop--">getUpdateLoop()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html#getUuidName-java.lang.String-">getUuidName(String)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils">BasicUuidNameMap</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html#getUuidName-java.lang.String-">getUuidName(String)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils">ReflectionUuidNameMap</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/UuidNameMap.html#getUuidName-java.lang.String-">getUuidName(String)</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a></dt> +<dd> +<div class="block">Returns the name of the <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> to be used for logging/debugging purposes, for example "BATTERY_LEVEL".</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html#getUuidName-java.lang.String-">getUuidName(String)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html" title="class in com.idevicesinc.sweetblue.utils">UuidNameMap_ListWrapper</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#getUuids--">getUuids()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Returns a HashSet of UUIDS that will be advertised</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#getWantsAllOnMoveCalls--">getWantsAllOnMoveCalls()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html#go--">go()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html#go-com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener-">go(BleNode.HistoricalDataQueryListener)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#gt-com.idevicesinc.sweetblue.utils.EpochTimeRange-">gt(EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">"greater than" comparison.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Unit.html#gt-com.idevicesinc.sweetblue.utils.Unit-">gt(Unit<T>)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></dt> +<dd> +<div class="block">"greater than" comparison.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Unit.html#gt-double-">gt(double)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></dt> +<dd> +<div class="block">"greater than" comparison.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#gte-com.idevicesinc.sweetblue.utils.EpochTimeRange-">gte(EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">"greater than or equal" comparison.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Unit.html#gte-com.idevicesinc.sweetblue.utils.Unit-">gte(Unit<T>)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></dt> +<dd> +<div class="block">"greater than or equal" comparison.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Unit.html#gte-double-">gte(double)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></dt> +<dd> +<div class="block">"greater than or equal" comparison.</div> +</dd> +</dl> +<a name="I:H"> +<!-- --> +</a> +<h2 class="title">H</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#HARDWARE_REVISION">HARDWARE_REVISION</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#hasClient-com.idevicesinc.sweetblue.BleServerState-">hasClient(BleServerState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Returns <code>true</code> if this server has any clients in the given state.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#hasClient-com.idevicesinc.sweetblue.BleServerState...-">hasClient(BleServerState...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Returns <code>true</code> if this server has any clients in any of the given states.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#hasClients--">hasClients()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Returns <code>true</code> if this server has any connected or connecting clients (or previously so).</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#hasDevice-java.lang.String-">hasDevice(String)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Shortcut for checking if <a href="com/idevicesinc/sweetblue/BleManager.html#getDevice-java.lang.String-"><code>BleManager.getDevice(String)</code></a> returns <a href="com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#hasDevice-com.idevicesinc.sweetblue.BleDevice-">hasDevice(BleDevice)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Calls <a href="com/idevicesinc/sweetblue/BleManager.html#hasDevice-java.lang.String-"><code>BleManager.hasDevice(String)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#hasDevice-com.idevicesinc.sweetblue.BleDeviceState-">hasDevice(BleDeviceState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns true if we have a device in the given state.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#hasDevice-java.lang.Object...-">hasDevice(Object...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns true if we have a device that matches the given query.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#hasDevice-int-">hasDevice(int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns <code>true</code> if there is any <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> for which <a href="com/idevicesinc/sweetblue/BleDevice.html#isAny-int-"><code>BleDevice.isAny(int)</code></a> with the given mask returns <code>true</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#hasDevices--">hasDevices()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns whether we have any devices.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Unit.html#hashCode--">hashCode()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></dt> +<dd> +<div class="block">Hashes <a href="com/idevicesinc/sweetblue/utils/Unit.html#getRawValue--"><code>Unit.getRawValue()</code></a> to an <code>int</code> using <a href="http://d.android.com/reference/java/lang/Double.html?is-external=true#hashCode--" title="class or interface in java.lang"><code>Double.hashCode()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#hasHistoricalData--">hasHistoricalData()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns <code>true</code> if there is any historical data at all for this device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#hasHistoricalData-com.idevicesinc.sweetblue.utils.EpochTimeRange-">hasHistoricalData(EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns <code>true</code> if there is any historical data at all for this device within the given range.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#hasHistoricalData-java.util.UUID-">hasHistoricalData(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns <code>true</code> if there is any historical data for the given uuid.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#hasHistoricalData-java.util.UUID:A-">hasHistoricalData(UUID[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns <code>true</code> if there is any historical data for any of the given uuids.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#hasHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-">hasHistoricalData(UUID, EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns <code>true</code> if there is any historical data for the given uuid within the given range.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#hasManifestPermission-android.content.Context-java.lang.String-">hasManifestPermission(Context, String)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceIterator.html#hasNext--">hasNext()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue">BleDeviceIterator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyIterator.html#hasNext--">hasNext()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="class in com.idevicesinc.sweetblue.utils">EmptyIterator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/SingleElementIterator.html#hasNext--">hasNext()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="class in com.idevicesinc.sweetblue.utils">SingleElementIterator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#hasPermission-android.content.Context-java.lang.String-">hasPermission(Context, String)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#hasUuid-java.util.UUID-">hasUuid(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Returns true if this advertising packet contains the uuid given.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#haveMatchingIds-java.util.List-java.util.Collection-">haveMatchingIds(List<UUID>, Collection<UUID>)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#hexStringToBytes-java.lang.String-">hexStringToBytes(String)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#highestStateReached_latest--">highestStateReached_latest()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">The highest state reached by the latest connection attempt.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#highestStateReached_total--">highestStateReached_total()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">The highest state reached during the whole connection attempt cycle.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/Backend_Modules.html#HISTORICAL_DATA_LIST">HISTORICAL_DATA_LIST</a></span> - Static variable in class com.idevicesinc.sweetblue.backend.<a href="com/idevicesinc/sweetblue/backend/Backend_Modules.html" title="class in com.idevicesinc.sweetblue.backend">Backend_Modules</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/Backend_Modules.html#HISTORICAL_DATABASE">HISTORICAL_DATABASE</a></span> - Static variable in class com.idevicesinc.sweetblue.backend.<a href="com/idevicesinc/sweetblue/backend/Backend_Modules.html" title="class in com.idevicesinc.sweetblue.backend">Backend_Modules</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalData</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Simple struct wrapping arbitrary blob data as a byte array along with an epoch timestamp + marking when the blob was originally created/collected.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#HistoricalData-long-byte:A-">HistoricalData(long, byte[])</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#HistoricalData-com.idevicesinc.sweetblue.utils.EpochTime-byte:A-">HistoricalData(EpochTime, byte[])</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#HistoricalData-byte:A-long-">HistoricalData(byte[], long)</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#HistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-">HistoricalData(byte[], EpochTime)</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#HistoricalData-byte:A-">HistoricalData(byte[])</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataColumn</span></a> - Enum in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Enumeration/abstraction of database columns used to persist <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataCursor</span></a> - Interface in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">This interface defines a wrapper around a database cursor (similar to <a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database"><code>Cursor</code></a>) + specific to a database representing a series of <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> serializations.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataFactory">historicalDataFactory</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dt> +<dd> +<div class="block">Implement this to override the default behavior, which is simply to return an instance created with + the constructor <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#HistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>HistoricalData.HistoricalData(byte[], com.idevicesinc.sweetblue.utils.EpochTime)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataLogFilter">historicalDataLogFilter</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dt> +<dd> +<div class="block">Default is an instance of <a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultHistoricalDataLogFilter</code></a> - + set an implementation here to control how/if data is logged.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Class used to construct queries for <a href="com/idevicesinc/sweetblue/BleNode.html#select--"><code>BleNode.select()</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_AllowsFrom</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_AllowsSelectColumn</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_ClauseColumn</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_From.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_From</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_Function</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_Select</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_SelectColumn</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_Where</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#HistoricalDataQueryEvent-com.idevicesinc.sweetblue.BleNode-java.util.UUID-android.database.Cursor-com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener.Status-java.lang.String-">HistoricalDataQueryEvent(BleNode, UUID, Cursor, BleNode.HistoricalDataQueryListener.Status, String)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#history--">history()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">Returns a chronologically-ordered list of all <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent</code></a> instances returned through + <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-"><code>BleDevice.ConnectionFailListener.onEvent(ConnectionFailEvent)</code></a> since the first call to <a href="com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a>, + including the current instance.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#history--">history()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">Returns a chronologically-ordered list of all <a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener.ConnectionFailEvent</code></a> instances returned through + <a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-"><code>BleServer.ConnectionFailListener.onEvent(ConnectionFailEvent)</code></a> since the first call to <a href="com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a>, + including the current instance.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Percent.html#HUNDRED">HUNDRED</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></dt> +<dd> +<div class="block">Convenience value representing 100%.</div> +</dd> +</dl> +<a name="I:I"> +<!-- --> +</a> +<h2 class="title">I</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#idealMinScanTime">idealMinScanTime</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_MINIMUM_SCAN_TIME"><code>BleDeviceConfig.DEFAULT_MINIMUM_SCAN_TIME</code></a> seconds - Minimum amount of time in seconds that the library strives to give to a scanning operation.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#ignore--">ignore()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></dt> +<dd> +<div class="block">Return this from <a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-"><code>BleManagerConfig.ScanFilter.onEvent(ScanEvent)</code></a> to say no to the discovery.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#ignoreIf-boolean-">ignoreIf(boolean)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></dt> +<dd> +<div class="block">Returns <a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#ignore--"><code>BleManagerConfig.ScanFilter.Please.ignore()</code></a> if the given condition holds <code>true</code>, <a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge--"><code>BleManagerConfig.ScanFilter.Please.acknowledge()</code></a> otherwise.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/annotations/Immutable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Immutable</span></a> - Annotation Type in <a href="com/idevicesinc/sweetblue/annotations/package-summary.html">com.idevicesinc.sweetblue.annotations</a></dt> +<dd> +<div class="block">Classes marked with this <a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation"><code>Annotation</code></a> have immutable internal state, or the apparent behavior of so.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#includeDeviceName--">includeDeviceName()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Whether or not this advertisement includes the device name</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#includeOtaReadWriteTimesInAverage">includeOtaReadWriteTimesInAverage</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <code>false</code> - <a href="com/idevicesinc/sweetblue/BleDevice.html#getAverageReadTime--"><code>BleDevice.getAverageReadTime()</code></a> and <a href="com/idevicesinc/sweetblue/BleDevice.html#getAverageWriteTime--"><code>BleDevice.getAverageWriteTime()</code></a> can be + skewed if the peripheral you are connecting to adjusts its maximum throughput for OTA firmware updates and the like.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#includesDisk-int-">includesDisk(int)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#includesMemory-int-">includesMemory(int)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#includeTxPowerLevel--">includeTxPowerLevel()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Whether or not this advertisement includes the Tx power level in the packet</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#INFINITE">INFINITE</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> +<div class="block">Use this special value to signify positive infinite.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#init-com.idevicesinc.sweetblue.BleManager-">init(BleManager)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#init-com.idevicesinc.sweetblue.BleManager-">init(BleManager)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#init-com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase-com.idevicesinc.sweetblue.utils.UpdateLoop-java.lang.String-java.util.UUID-java.lang.String-boolean-">init(Backend_HistoricalDatabase, UpdateLoop, String, UUID, String, boolean)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#init-com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase-com.idevicesinc.sweetblue.utils.UpdateLoop-java.lang.String-java.util.UUID-java.lang.String-boolean-">init(Backend_HistoricalDatabase, UpdateLoop, String, UUID, String, boolean)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTransaction.Init.html#Init--">Init()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Init</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#instant-com.idevicesinc.sweetblue.utils.EpochTime-">instant(EpochTime)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">Returns a new instance representing an instant zero length time range.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#intent--">intent()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a></dt> +<dd> +<div class="block">Tells whether the bond was created through an explicit call through SweetBlue, or otherwise.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#intentMask--">intentMask()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></dt> +<dd> +<div class="block">For each old->new bit difference, this mask will tell you if the transition was intentional.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Interval</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Used to set time-based options in <a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> and <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> and + for various methods and callbacks of <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> and <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#intToBytes-int-">intToBytes(int)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Distance.html#INVALID">INVALID</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></dt> +<dd> +<div class="block">Convenience value representing an invalid/impossible distance, arbitrarily chosen to be negative one meter.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#INVALID">INVALID</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> +<div class="block">A <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> instance composed of all zeros and used instead of <code>null</code> in various places.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.html#INVALID_TX_POWER">INVALID_TX_POWER</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dt> +<dd> +<div class="block">Constant for an invalid or unknown transmission power.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#is-com.idevicesinc.sweetblue.BleDeviceState-">is(BleDeviceState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns whether the device is in the provided state.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#is-java.lang.Object...-">is(Object...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Similar to <a href="com/idevicesinc/sweetblue/BleDevice.html#is-com.idevicesinc.sweetblue.BleDeviceState-"><code>BleDevice.is(BleDeviceState)</code></a> and <a href="com/idevicesinc/sweetblue/BleDevice.html#isAny-com.idevicesinc.sweetblue.BleDeviceState...-"><code>BleDevice.isAny(BleDeviceState...)</code></a> but allows you to give a simple query + made up of <a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> and <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang"><code>Boolean</code></a> pairs.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#is-com.idevicesinc.sweetblue.BleManagerState-">is(BleManagerState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns whether the manager is in the provided state.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#is-java.lang.String-com.idevicesinc.sweetblue.BleServerState-">is(String, BleServerState)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Returns true if the given client is in the state provided.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#isAdvertising--">isAdvertising()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Checks to see if the device is currently advertising.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#isAdvertising-java.util.UUID-">isAdvertising(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Checks to see if the device is currently advertising the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#isAdvertisingSupported--">isAdvertisingSupported()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Checks to see if the device supports advertising BLE services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#isAdvertisingSupported--">isAdvertisingSupported()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Checks to see if the device supports advertising BLE services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#isAdvertisingSupportedByAndroidVersion--">isAdvertisingSupportedByAndroidVersion()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Checks to see if the device is running an Android OS which supports + advertising.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#isAdvertisingSupportedByAndroidVersion--">isAdvertisingSupportedByAndroidVersion()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Checks to see if the device is running an Android OS which supports + advertising.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#isAdvertisingSupportedByChipset--">isAdvertisingSupportedByChipset()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Checks to see if the device supports advertising.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#isAdvertisingSupportedByChipset--">isAdvertisingSupportedByChipset()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Checks to see if the device supports advertising.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/compat/L_Util.html#isAdvertisingSupportedByChipset-com.idevicesinc.sweetblue.BleManager-">isAdvertisingSupportedByChipset(BleManager)</a></span> - Static method in class com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/L_Util.html" title="class in com.idevicesinc.sweetblue.compat">L_Util</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#isAfterLast--">isAfterLast()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#isAfterLast--">isAfterLast()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></dt> +<dd> +<div class="block">Returns whether the cursor is pointing to the position after the last + row.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#isAll-com.idevicesinc.sweetblue.BleDeviceState...-">isAll(BleDeviceState...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns whether the device is in all of the provided states.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#isAll-int-">isAll(int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns <code>true</code> if there is complete bitwise overlap between the provided value and <a href="com/idevicesinc/sweetblue/BleDevice.html#getStateMask--"><code>BleDevice.getStateMask()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#isAll-com.idevicesinc.sweetblue.BleManagerState...-">isAll(BleManagerState...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns whether the manager is in all of the provided states.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#isAll-int-">isAll(int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns <code>true</code> if there is complete bitwise overlap between the provided value and <a href="com/idevicesinc/sweetblue/BleManager.html#getStateMask--"><code>BleManager.getStateMask()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#isAll-java.lang.String-int-">isAll(String, int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Returns <code>true</code> if there is complete bitwise overlap between the provided value and <a href="com/idevicesinc/sweetblue/BleServer.html#getStateMask-java.lang.String-"><code>BleServer.getStateMask(String)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#isAny-com.idevicesinc.sweetblue.BleDeviceState...-">isAny(BleDeviceState...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns whether the device is in any of the provided states.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#isAny-int-">isAny(int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns <code>true</code> if there is any bitwise overlap between the provided value and <a href="com/idevicesinc/sweetblue/BleDevice.html#getStateMask--"><code>BleDevice.getStateMask()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#isAny-com.idevicesinc.sweetblue.BleManagerState...-">isAny(BleManagerState...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns whether the manager is in any of the provided states.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#isAny-int-">isAny(int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns <code>true</code> if there is partial bitwise overlap between the provided value and <a href="com/idevicesinc/sweetblue/BleManager.html#getStateMask--"><code>BleManager.getStateMask()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#isAny-java.lang.String-int-">isAny(String, int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Returns <code>true</code> if there is any bitwise overlap between the provided value and <a href="com/idevicesinc/sweetblue/BleServer.html#getStateMask-java.lang.String-"><code>BleServer.getStateMask(String)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#isAny-java.lang.String-com.idevicesinc.sweetblue.BleServerState...-">isAny(String, BleServerState...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Returns true if the given client is in any of the states provided.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#isBeforeFirst--">isBeforeFirst()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#isBeforeFirst--">isBeforeFirst()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></dt> +<dd> +<div class="block">Returns whether the cursor is pointing to the position before the first + row.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTime.html#isBetween_inclusive-com.idevicesinc.sweetblue.utils.EpochTime-com.idevicesinc.sweetblue.utils.EpochTime-">isBetween_inclusive(EpochTime, EpochTime)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></dt> +<dd> +<div class="block">Does an inclusive check for <code>this</code> being in the given range.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTime.html#isBetween_inclusive-com.idevicesinc.sweetblue.utils.EpochTimeRange-">isBetween_inclusive(EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/utils/EpochTime.html#isBetween_inclusive-com.idevicesinc.sweetblue.utils.EpochTime-com.idevicesinc.sweetblue.utils.EpochTime-"><code>EpochTime.isBetween_inclusive(EpochTime, EpochTime)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#isBleSupported--">isBleSupported()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Checks the underlying stack to see if BLE is supported on the phone.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_BleStatusHelper.html#isBluetoothEnabled--">isBluetoothEnabled()</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_BleStatusHelper.html" title="interface in com.idevicesinc.sweetblue">PI_BleStatusHelper</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#isCancelled--">isCancelled()</a></span> - Method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#isClosed--">isClosed()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#isClosed--">isClosed()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></dt> +<dd> +<div class="block">return true if the cursor is closed</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html#isConnectable--">isConnectable()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue">BleAdvertisingPacket</a></dt> +<dd> +<div class="block">Whether or not this advertisement is connectable</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#isConnectable--">isConnectable()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Convenience method to tell you whether a call to <a href="com/idevicesinc/sweetblue/BleDevice.html#connect--"><code>BleDevice.connect()</code></a> (or overloads) has a chance of succeeding.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTask.html#isDeviceSpecific--">isDeviceSpecific()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a></dt> +<dd> +<div class="block">Returns whether <code>this</code> is associated with a <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#isDisabled-com.idevicesinc.sweetblue.utils.Interval-">isDisabled(Interval)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> +<div class="block">Returns true if the given <a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> is either <code>null</code> + or its value is less than or equal to zero.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#isDisabled-java.lang.Double-">isDisabled(Double)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/utils/Interval.html#isDisabled-com.idevicesinc.sweetblue.utils.Interval-"><code>Interval.isDisabled(Interval)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#isDone--">isDone()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#isDone--">isDone()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#isEnabled-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Stage-">isEnabled(BluetoothEnabler.BluetoothEnablerFilter.Stage)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a></dt> +<dd> +<div class="block">Returns whether the passed <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> is enabled.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#isEnabled-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Stage-">isEnabled(BluetoothEnabler.BluetoothEnablerFilter.Stage)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></dt> +<dd> +<div class="block">Returns whether the passed <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> has been enabled.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#isEnabled-com.idevicesinc.sweetblue.utils.Interval-">isEnabled(Interval)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> +<div class="block">Returns true if the given <a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> is not <code>null</code> + and its value is greater than zero.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#isEnabled-double-">isEnabled(double)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/utils/Interval.html#isEnabled-com.idevicesinc.sweetblue.utils.Interval-"><code>Interval.isEnabled(Interval)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#isFirst--">isFirst()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#isFirst--">isFirst()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></dt> +<dd> +<div class="block">Returns whether the cursor is pointing to the first row.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#isFor-java.util.UUID-">isFor(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a></dt> +<dd> +<div class="block">Returns true if this event is associated with the given uuid.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#isFor-java.util.UUID:A-">isFor(UUID[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a></dt> +<dd> +<div class="block">Returns true if this event is associated with any of the given uuids.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#isFor-java.lang.String-">isFor(String)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#isFor-java.util.UUID-">isFor(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Event.html#isFor-java.lang.Object-">isFor(Object)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></dt> +<dd> +<div class="block">More reader-friendly of <a href="com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-"><code>Event.isForAll(Object...)</code></a> or <a href="com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-"><code>Event.isForAny(Object...)</code></a> in the event you only have one parameter to match.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isFor-T_State-">isFor(T_State)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></dt> +<dd> +<div class="block">Returns <code>true</code> if <a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnter-T_State-"><code>State.ChangeEvent.didEnter(State)</code></a> or <a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExit-T_State-"><code>State.ChangeEvent.didExit(State)</code></a> return true.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Event.html#isForAll-java.lang.Object...-">isForAll(Object...)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></dt> +<dd> +<div class="block">Convenience query method to check if this event "is for"/relevant-to all of the supplied values.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isForAll-T_State...-">isForAll(T_State...)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></dt> +<dd> +<div class="block">Returns <code>true</code> if <a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAll-T_State...-"><code>State.ChangeEvent.didEnterAll(State...)</code></a> or <a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAll-T_State...-"><code>State.ChangeEvent.didExitAll(State...)</code></a> return true.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Event.html#isForAny-java.lang.Object...-">isForAny(Object...)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils">Event</a></dt> +<dd> +<div class="block">Convenience query method to check if this event "is for"/relevant-to any of the supplied values.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#isForAny-T_State...-">isForAny(T_State...)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></dt> +<dd> +<div class="block">Returns <code>true</code> if <a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didEnterAny-T_State...-"><code>State.ChangeEvent.didEnterAny(State...)</code></a> or <a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#didExitAny-T_State...-"><code>State.ChangeEvent.didExitAny(State...)</code></a> return true.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#isForegrounded--">isForegrounded()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns this manager's knowledge of the app's foreground state, which must be + controlled manually from appland through <a href="com/idevicesinc/sweetblue/BleManager.html#onResume--"><code>BleManager.onResume()</code></a> and <a href="com/idevicesinc/sweetblue/BleManager.html#onPause--"><code>BleManager.onPause()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#isHistoricalDataLoaded--">isHistoricalDataLoaded()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns <code>true</code> if the historical data for all historical data for + this device is loaded into memory.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#isHistoricalDataLoaded-java.util.UUID-">isHistoricalDataLoaded(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns <code>true</code> if the historical data for a given uuid is loaded into memory.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#isHistoricalDataLoading--">isHistoricalDataLoading()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns whether the device is currently loading any historical data to memory, either through + <a href="com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> (or overloads) or <a href="com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_iterator-java.util.UUID-"><code>BleDevice.getHistoricalData_iterator(UUID)</code></a> (or overloads).</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#isHistoricalDataLoading-java.util.UUID-">isHistoricalDataLoading(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns whether the device is currently loading any historical data to memory for the given uuid, either through + <a href="com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--"><code>BleDevice.loadHistoricalData()</code></a> (or overloads) or <a href="com/idevicesinc/sweetblue/BleDevice.html#getHistoricalData_iterator-java.util.UUID-"><code>BleDevice.getHistoricalData_iterator(UUID)</code></a> (or overloads).</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isInvalid--">isInvalid()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">Returns <code>true</code> if <a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#from--"><code>EpochTimeRange.from()</code></a> is greater than <a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#to--"><code>EpochTimeRange.to()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isInvalidOrZero--">isInvalidOrZero()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">See <a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isInvalid--"><code>EpochTimeRange.isInvalid()</code></a> and <a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isZero--"><code>EpochTimeRange.isZero()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#isKitKat--">isKitKat()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#isLast--">isLast()</a></span> - Method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#isLast--">isLast()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#isLast--">isLast()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></dt> +<dd> +<div class="block">Returns whether the cursor is pointing to the last row.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning--">isLocationEnabledForScanning()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns <code>true</code> if location is enabled to a degree that allows scanning on <a href="http://d.android.com/reference/android/os/Build.VERSION_CODES.html?is-external=true#M" title="class or interface in android.os"><code>Build.VERSION_CODES.M</code></a> and above.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_BleStatusHelper.html#isLocationEnabledForScanning--">isLocationEnabledForScanning()</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_BleStatusHelper.html" title="interface in com.idevicesinc.sweetblue">PI_BleStatusHelper</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning-android.content.Context-">isLocationEnabledForScanning(Context)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byManifestPermissions--">isLocationEnabledForScanning_byManifestPermissions()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns <code>true</code> if you're either pre-Android-M, or app has permission for either <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#ACCESS_COARSE_LOCATION" title="class or interface in android"><code>Manifest.permission.ACCESS_COARSE_LOCATION</code></a> + or <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#ACCESS_FINE_LOCATION" title="class or interface in android"><code>Manifest.permission.ACCESS_FINE_LOCATION</code></a> in your AndroidManifest.xml, <code>false</code> otherwise.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byManifestPermissions-android.content.Context-">isLocationEnabledForScanning_byManifestPermissions(Context)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byOsServices--">isLocationEnabledForScanning_byOsServices()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns <code>true</code> if you're either pre-Android-M, or location services are enabled, the same is if you go to the Android Settings app + and manually toggle Location ON/OFF.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_BleStatusHelper.html#isLocationEnabledForScanning_byOsServices--">isLocationEnabledForScanning_byOsServices()</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_BleStatusHelper.html" title="interface in com.idevicesinc.sweetblue">PI_BleStatusHelper</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byOsServices-android.content.Context-">isLocationEnabledForScanning_byOsServices(Context)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> +<div class="block">Adapted from http://stackoverflow.com/a/22980843/4248895.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byRuntimePermissions--">isLocationEnabledForScanning_byRuntimePermissions()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns <code>true</code> if you're either pre-Android-M, or app has runtime permissions enabled by checking + <a href="https://developer.android.com/reference/android/support/v4/content/ContextCompat.html#checkSelfPermission(android.content.Context, java.lang.String)"</a> * + See more information at https://developer.android.com/training/permissions/index.html.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_BleStatusHelper.html#isLocationEnabledForScanning_byRuntimePermissions--">isLocationEnabledForScanning_byRuntimePermissions()</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_BleStatusHelper.html" title="interface in com.idevicesinc.sweetblue">PI_BleStatusHelper</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#isLocationEnabledForScanning_byRuntimePermissions-android.content.Context-">isLocationEnabledForScanning_byRuntimePermissions(Context)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#isLocationRelated--">isLocationRelated()</a></span> - Method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#isLollipop--">isLollipop()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleScanMode.html#isLollipopScanMode--">isLollipopScanMode()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a></dt> +<dd> +<div class="block"><span class="deprecatedLabel">Deprecated.</span></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#isLongTerm--">isLongTerm()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a></dt> +<dd> +<div class="block">Is this either <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_TRY_AGAIN"><code>BleNodeConfig.ReconnectFilter.Type.LONG_TERM__SHOULD_TRY_AGAIN</code></a> or <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_CONTINUE"><code>BleNodeConfig.ReconnectFilter.Type.LONG_TERM__SHOULD_CONTINUE</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTask.html#isManagerSpecific--">isManagerSpecific()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a></dt> +<dd> +<div class="block">Returns whether <code>this</code> is associated with <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#isManufacturer-java.lang.String-">isManufacturer(String)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#isMarshmallow--">isMarshmallow()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isNativeNotification--">isNativeNotification()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a></dt> +<dd> +<div class="block">Subset of <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isNotification--"><code>BleDevice.ReadWriteListener.Type.isNotification()</code></a>, returns <code>true</code> only for <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#NOTIFICATION"><code>BleDevice.ReadWriteListener.Type.NOTIFICATION</code></a> and <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#INDICATION"><code>BleDevice.ReadWriteListener.Type.INDICATION</code></a>, i.e.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isNotification--">isNotification()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Forwards <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isNotification--"><code>BleDevice.ReadWriteListener.Type.isNotification()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isNotification--">isNotification()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a></dt> +<dd> +<div class="block">Returns true if <code>this</code> is <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#NOTIFICATION"><code>BleDevice.ReadWriteListener.Type.NOTIFICATION</code></a>, <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#PSUEDO_NOTIFICATION"><code>BleDevice.ReadWriteListener.Type.PSUEDO_NOTIFICATION</code></a>, or <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#INDICATION"><code>BleDevice.ReadWriteListener.Type.INDICATION</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isNotificationOrIndication--">isNotificationOrIndication()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a></dt> +<dd> +<div class="block">Shorthand for checking if this equals <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#NOTIFICATION"><code>BleServer.ExchangeListener.Type.NOTIFICATION</code></a> or <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#INDICATION"><code>BleServer.ExchangeListener.Type.INDICATION</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#isNotifyEnabled-java.util.UUID-">isNotifyEnabled(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns <code>true</code> if notifications are enabled for the given uuid.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#isNotifyEnabling-java.util.UUID-">isNotifyEnabling(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns <code>true</code> if SweetBlue is in the process of enabling notifications for the given uuid.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#isNougat--">isNougat()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#isNull--">isNull()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#isNull--">isNull()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#isNull--">isNull()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">Returns whether this <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent</code></a> instance is a "dummy" value.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#isNull--">isNull()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#isNull--">isNull()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns <code>true</code> if <code>this</code> is referentially equal to <a href="com/idevicesinc/sweetblue/BleDevice.html#NULL"><code>BleDevice.NULL</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isNull--">isNull()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Forwards <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isNull--"><code>BleDevice.ReadWriteListener.Type.isNull()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#isNull--">isNull()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#isNull--">isNull()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isNull--">isNull()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceState.html#isNull--">isNull()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerState.html#isNull--">isNull()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#isNull--">isNull()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a></dt> +<dd> +<div class="block">Returns true if <code>this==</code> <a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#NULL"><code>BleNode.HistoricalDataLoadListener.Status.NULL</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html#isNull--">isNull()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a></dt> +<dd> +<div class="block">Returns true if <code>this==</code> <a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html#NULL"><code>BleNode.HistoricalDataQueryListener.Status.NULL</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#isNull--">isNull()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a></dt> +<dd> +<div class="block">Returns <code>true</code> if <code>this</code> == <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#NULL"><code>BleNodeConfig.HistoricalDataLogFilter.Source.NULL</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html#isNull--">isNull()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#isNull--">isNull()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#isNull--">isNull()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">Returns whether this <a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener.ConnectionFailEvent</code></a> instance is a "dummy" value.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#isNull--">isNull()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#isNull--">isNull()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#isNull--">isNull()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></dt> +<dd> +<div class="block">Will return true in certain early-out cases when there is no issue and the response can continue.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#isNull--">isNull()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a></dt> +<dd> +<div class="block">Returns true if <code>this==</code> <a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#NULL"><code>BleServer.OutgoingListener.Status.NULL</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#isNull--">isNull()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServerState.html#isNull--">isNull()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#isNull--">isNull()</a></span> - Method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#isNull--">isNull()</a></span> - Method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a></dt> +<dd> +<div class="block">Returns <code>true</code> if <code>this</code> == <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#NULL"><code>BluetoothEnabler.BluetoothEnablerFilter.Status.NULL</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#isNull-int-">isNull(int)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTime.html#isNull--">isNull()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></dt> +<dd> +<div class="block">Returns <code>true</code> if <code>this</code> is referentially equal to <a href="com/idevicesinc/sweetblue/utils/EpochTime.html#NULL"><code>EpochTime.NULL</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isNull--">isNull()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">Returns <code>true</code> if <code>this</code> is referentially equal to <a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#NULL"><code>EpochTimeRange.NULL</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#isNull--">isNull()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></dt> +<dd> +<div class="block">Checks if this is referentially equal to <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#NULL"><code>HistoricalData.NULL</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.html#isNull--">isNull()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a></dt> +<dd> +<div class="block">Returns <code>true</code> if this state is meant to stand in for Java's built-in <code>null</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html#isNull--">isNull()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a></dt> +<dd> +<div class="block">Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#isOnMainThread--">isOnMainThread()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#isPerformingSystemCall--">isPerformingSystemCall()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#isProduct-java.lang.String-">isProduct(String)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isRead--">isRead()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Forwards <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isRead--"><code>BleDevice.ReadWriteListener.Type.isRead()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isRead--">isRead()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a></dt> +<dd> +<div class="block">Returns <code>true</code> for every <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.Type</code></a> except <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isWrite--"><code>BleDevice.ReadWriteListener.Type.isWrite()</code></a>, <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#ENABLING_NOTIFICATION"><code>BleDevice.ReadWriteListener.Type.ENABLING_NOTIFICATION</code></a>, and + <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#DISABLING_NOTIFICATION"><code>BleDevice.ReadWriteListener.Type.DISABLING_NOTIFICATION</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isRead--">isRead()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a></dt> +<dd> +<div class="block">Shorthand for checking if this equals <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#READ"><code>BleServer.ExchangeListener.Type.READ</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#isRetry--">isRetry()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></dt> +<dd> +<div class="block">Returns <code>true</code> for everything except <a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#doNotRetry--"><code>BleNode.ConnectionFailListener.Please.doNotRetry()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTransaction.html#isRunning--">isRunning()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></dt> +<dd> +<div class="block">Returns whether the transaction is currently running.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html#isRunning--">isRunning()</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html#isRunning--">isRunning()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#isScanningReady--">isScanningReady()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Tells you whether a call to <a href="com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a> (or overloads), will succeed or not.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTask.html#isServerSpecific--">isServerSpecific()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a></dt> +<dd> +<div class="block">Returns whether <code>this</code> is associated with a <a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#isShortTerm--">isShortTerm()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a></dt> +<dd> +<div class="block">Is this either <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_TRY_AGAIN"><code>BleNodeConfig.ReconnectFilter.Type.SHORT_TERM__SHOULD_TRY_AGAIN</code></a> or <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_CONTINUE"><code>BleNodeConfig.ReconnectFilter.Type.SHORT_TERM__SHOULD_CONTINUE</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#isShouldContinue--">isShouldContinue()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a></dt> +<dd> +<div class="block">Is this either <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_CONTINUE"><code>BleNodeConfig.ReconnectFilter.Type.SHORT_TERM__SHOULD_CONTINUE</code></a> or <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_CONTINUE"><code>BleNodeConfig.ReconnectFilter.Type.LONG_TERM__SHOULD_CONTINUE</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#isShouldTryAgain--">isShouldTryAgain()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a></dt> +<dd> +<div class="block">Is this either <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_CONTINUE"><code>BleNodeConfig.ReconnectFilter.Type.SHORT_TERM__SHOULD_CONTINUE</code></a> or <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_TRY_AGAIN"><code>BleNodeConfig.ReconnectFilter.Type.LONG_TERM__SHOULD_TRY_AGAIN</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#isSuccess-int-">isSuccess(int)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Distance.html#isValid--">isValid()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></dt> +<dd> +<div class="block">Returns <code>true</code> if <a href="com/idevicesinc/sweetblue/utils/Distance.html#meters--"><code>Distance.meters()</code></a> is >= 0.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isValid--">isValid()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">Returns <code>true</code> if <a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#from--"><code>EpochTimeRange.from()</code></a> is less than or equal to <a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#to--"><code>EpochTimeRange.to()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isWrite--">isWrite()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Forwards <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isWrite--"><code>BleDevice.ReadWriteListener.Type.isWrite()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#isWrite--">isWrite()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a></dt> +<dd> +<div class="block">Returns <code>true</code> if <code>this</code> is <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#WRITE"><code>BleDevice.ReadWriteListener.Type.WRITE</code></a> or <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#WRITE_NO_RESPONSE"><code>BleDevice.ReadWriteListener.Type.WRITE_NO_RESPONSE</code></a> or <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#WRITE_SIGNED"><code>BleDevice.ReadWriteListener.Type.WRITE_SIGNED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isWrite--">isWrite()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a></dt> +<dd> +<div class="block">Shorthand for checking if this equals <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#WRITE"><code>BleServer.ExchangeListener.Type.WRITE</code></a> or <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#PREPARED_WRITE"><code>BleServer.ExchangeListener.Type.PREPARED_WRITE</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isZero--">isZero()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">Returns <code>true</code> if <a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#from--"><code>EpochTimeRange.from()</code></a> and <a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#to--"><code>EpochTimeRange.to()</code></a> are equal.</div> +</dd> +</dl> +<a name="I:K"> +<!-- --> +</a> +<h2 class="title">K</h2> +<dl> +<dt><a href="com/idevicesinc/sweetblue/compat/K_Util.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">K_Util</span></a> - Class in <a href="com/idevicesinc/sweetblue/compat/package-summary.html">com.idevicesinc.sweetblue.compat</a></dt> +<dd> </dd> +</dl> +<a name="I:L"> +<!-- --> +</a> +<h2 class="title">L</h2> +<dl> +<dt><a href="com/idevicesinc/sweetblue/compat/L_Util.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">L_Util</span></a> - Class in <a href="com/idevicesinc/sweetblue/compat/package-summary.html">com.idevicesinc.sweetblue.compat</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">L_Util.ScanCallback</span></a> - Interface in <a href="com/idevicesinc/sweetblue/compat/package-summary.html">com.idevicesinc.sweetblue.compat</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">L_Util.ScanResult</span></a> - Class in <a href="com/idevicesinc/sweetblue/compat/package-summary.html">com.idevicesinc.sweetblue.compat</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/annotations/Lambda.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Lambda</span></a> - Annotation Type in <a href="com/idevicesinc/sweetblue/annotations/package-summary.html">com.idevicesinc.sweetblue.annotations</a></dt> +<dd> +<div class="block">Used to denote <code>interface</code> declarations whose implementations can essentially act like lambdas (i.e.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#lastDisconnectIntent--">lastDisconnectIntent()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></dt> +<dd> +<div class="block">See explanation at <a href="com/idevicesinc/sweetblue/BleDevice.html#getLastDisconnectIntent--"><code>BleDevice.getLastDisconnectIntent()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#lifeCycle--">lifeCycle()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.DiscoveryEvent</a></dt> +<dd> +<div class="block">The discovery <a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.DiscoveryListener.LifeCycle</code></a> that the device has undergone.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#load-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-com.idevicesinc.sweetblue.utils.ForEach_Void-">load(String, UUID, EpochTimeRange, ForEach_Void<HistoricalData>)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#load-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.EpochTimeRange-com.idevicesinc.sweetblue.utils.ForEach_Void-">load(String, UUID, EpochTimeRange, ForEach_Void<HistoricalData>)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#load-com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList.AsyncLoadCallback-">load(Backend_HistoricalDataList.AsyncLoadCallback)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html#load-com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList.AsyncLoadCallback-">load(Backend_HistoricalDataList.AsyncLoadCallback)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#LOAD_STATE__LOADED">LOAD_STATE__LOADED</a></span> - Static variable in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#LOAD_STATE__LOADING">LOAD_STATE__LOADING</a></span> - Static variable in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html#LOAD_STATE__NOT_LOADED">LOAD_STATE__NOT_LOADED</a></span> - Static variable in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData--">loadHistoricalData()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Loads all historical data to memory for this device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData-java.util.UUID-">loadHistoricalData(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Loads all historical data to memory for this device for the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener-">loadHistoricalData(BleNode.HistoricalDataLoadListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Loads all historical data to memory for this device with a callback for when it's complete.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#loadHistoricalData-java.util.UUID-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener-">loadHistoricalData(UUID, BleNode.HistoricalDataLoadListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Loads all historical data to memory for this device for the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/P_StringHandler.html#LOCATION_PERMISSION_TOAST">LOCATION_PERMISSION_TOAST</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue">P_StringHandler</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/P_StringHandler.html#LOCATION_SERVICES_NEEDS_ENABLING">LOCATION_SERVICES_NEEDS_ENABLING</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue">P_StringHandler</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/P_StringHandler.html#LOCATION_SERVICES_TOAST">LOCATION_SERVICES_TOAST</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue">P_StringHandler</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#logger">logger</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/DefaultLogger.html" title="class in com.idevicesinc.sweetblue"><code>DefaultLogger</code></a> - which prints the log statements to Android's logcat.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#loggingEnabled">loggingEnabled</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <code>false</code> - basically only useful for developers working on the library itself.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#logToDisk--">logToDisk()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></dt> +<dd> +<div class="block">Will log the data to disk only, currently through SQLite.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#logToMemory--">logToMemory()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></dt> +<dd> +<div class="block">Will log the data to current app memory only.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#logToMemoryAndDisk--">logToMemoryAndDisk()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Please</a></dt> +<dd> +<div class="block">Will log the data to both memory and disk - combination of <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#logToMemory--"><code>BleNodeConfig.HistoricalDataLogFilter.Please.logToMemory()</code></a> and <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html#logToDisk--"><code>BleNodeConfig.HistoricalDataLogFilter.Please.logToDisk()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html#LONG_TERM_ATTEMPT_RATE">LONG_TERM_ATTEMPT_RATE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultReconnectFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html#LONG_TERM_TIMEOUT">LONG_TERM_TIMEOUT</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultReconnectFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#longToBytes-long-">longToBytes(long)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#lt-com.idevicesinc.sweetblue.utils.EpochTimeRange-">lt(EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">"less than" comparison.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Unit.html#lt-com.idevicesinc.sweetblue.utils.Unit-">lt(Unit<T>)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></dt> +<dd> +<div class="block">"less than" comparison.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Unit.html#lt-double-">lt(double)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></dt> +<dd> +<div class="block">"less than" comparison.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#lte-com.idevicesinc.sweetblue.utils.EpochTimeRange-">lte(EpochTimeRange)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">"less than or equal" comparison.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Unit.html#lte-com.idevicesinc.sweetblue.utils.Unit-">lte(Unit<T>)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></dt> +<dd> +<div class="block">"less than or equal" comparison.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Unit.html#lte-double-">lte(double)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></dt> +<dd> +<div class="block">"less than or equal" comparison.</div> +</dd> +</dl> +<a name="I:M"> +<!-- --> +</a> +<h2 class="title">M</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html#m_query">m_query</a></span> - Variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/compat/M_Util.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">M_Util</span></a> - Class in <a href="com/idevicesinc/sweetblue/compat/package-summary.html">com.idevicesinc.sweetblue.compat</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#macAddress--">macAddress()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a></dt> +<dd> +<div class="block">Convience to return the mac address of <a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#device--"><code>BleDevice.BondListener.BondEvent.device()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#macAddress--">macAddress()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">Convience to return the mac address of <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#device--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.device()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#macAddress--">macAddress()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Convience to return the mac address of <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#device--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.device()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html#macAddress--">macAddress()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.StateListener.StateEvent</a></dt> +<dd> +<div class="block">Convience to return the mac address of <a href="com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html#device--"><code>BleDevice.StateListener.StateEvent.device()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html#macAddress--">macAddress()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEvent</a></dt> +<dd> +<div class="block">Convience to return the mac address of <a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html#device--"><code>BleDeviceConfig.BondFilter.CharacteristicEvent.device()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#macAddress--">macAddress()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.DiscoveryEvent</a></dt> +<dd> +<div class="block">Convience to return the mac address of <a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#device--"><code>BleManager.DiscoveryListener.DiscoveryEvent.device()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#macAddress--">macAddress()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></dt> +<dd> +<div class="block">Returns the mac address of the discovered device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html#macAddress--">macAddress()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</a></dt> +<dd> +<div class="block">The mac address that the data is being queried for.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#macAddress--">macAddress()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a></dt> +<dd> +<div class="block">The device or server client in question.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#macAddress--">macAddress()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a></dt> +<dd> +<div class="block">Convience to return the mac address of <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#device--"><code>BleNodeConfig.ReconnectFilter.ReconnectEvent.device()</code></a> or the client being reconnected to the <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#server--"><code>BleNodeConfig.ReconnectFilter.ReconnectEvent.server()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#macAddress--">macAddress()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a></dt> +<dd> +<div class="block">Convience to return the mac address of <a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#device--"><code>BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.device()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#macAddress--">macAddress()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">Returns the mac address of the client that's undergoing the state change with this <a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#server--"><code>BleServer.ConnectionFailListener.ConnectionFailEvent.server()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#macAddress--">macAddress()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></dt> +<dd> +<div class="block">Returns the mac address of the client peripheral that we are exchanging data with.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#macAddress--">macAddress()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.StateListener.StateEvent</a></dt> +<dd> +<div class="block">Returns the mac address of the client that's undergoing the state change with this <a href="com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#server--"><code>BleServer.StateListener.StateEvent.server()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_String.html#makeStateString-com.idevicesinc.sweetblue.utils.State:A-int-">makeStateString(State[], int)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils">Utils_String</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_String.html#makeString-java.lang.Object...-">makeString(Object...)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils">Utils_String</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#manageCpuWakeLock">manageCpuWakeLock</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <code>true</code> - requires the <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#WAKE_LOCK" title="class or interface in android"><code>Manifest.permission.WAKE_LOCK</code></a> permission in your app's manifest file.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#manageLastDisconnectOnDisk">manageLastDisconnectOnDisk</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <code>true</code> - controls whether the <a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils"><code>State.ChangeIntent</code></a> behind a device going <a href="com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a> + is saved to and loaded from disk so that it can be restored across app sessions, undiscoveries, and BLE + <a href="com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>-><a href="com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a> cycles.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html#manager--">manager()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.AssertListener.AssertEvent</a></dt> +<dd> +<div class="block">The <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> instance for your application.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#manager--">manager()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.DiscoveryEvent</a></dt> +<dd> +<div class="block">The <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> which is currently <a href="com/idevicesinc/sweetblue/BleManagerState.html#SCANNING"><code>BleManagerState.SCANNING</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html#manager--">manager()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.ResetListener.ResetEvent</a></dt> +<dd> +<div class="block">The <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> the reset was applied to.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html#manager--">manager()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.StateListener.StateEvent</a></dt> +<dd> +<div class="block">The singleton manager undergoing the state change.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html#manager--">manager()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOhEvent</a></dt> +<dd> +<div class="block">The manager associated with the <a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOhEvent</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#manager--">manager()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a></dt> +<dd> +<div class="block">Returns the manager.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#MANUFACTURER_NAME">MANUFACTURER_NAME</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#manufacturerCombinedData--">manufacturerCombinedData()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></dt> +<dd> +<div class="block">Returns the manufacturer-specific data, if any, parsed from <a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#scanRecord--"><code>BleManagerConfig.ScanFilter.ScanEvent.scanRecord()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#manufacturerData--">manufacturerData()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#manufacturerId--">manufacturerId()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTime.html#MAX">MAX</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></dt> +<dd> +<div class="block">Convenience instance using <a href="http://d.android.com/reference/java/lang/Long.html?is-external=true#MAX_VALUE" title="class or interface in java.lang"><code>Long.MAX_VALUE</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#max-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-">max(HistoricalDataColumn)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsSelectColumn</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html#MAX_RETRY_TIME_FOR_BOND_FAILURE">MAX_RETRY_TIME_FOR_BOND_FAILURE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleDevice.DefaultConnectionFailListener</a></dt> +<dd> +<div class="block">The maximum amount of time to keep trying if connection is failing due to (what usually are) transient bonding failures</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html#MAX_RETRY_TIME_FOR_BOND_FAILURE">MAX_RETRY_TIME_FOR_BOND_FAILURE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleServer.DefaultConnectionFailListener</a></dt> +<dd> +<div class="block">The maximum amount of time to keep trying if connection is failing due to (what usually are) transient bonding failures</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#memcmp-byte:A-byte:A-int-">memcmp(byte[], byte[], int)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#memcpy-byte:A-byte:A-int-int-int-">memcpy(byte[], byte[], int, int, int)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#memcpy-byte:A-byte:A-int-">memcpy(byte[], byte[], int)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#memset-byte:A-byte-int-">memset(byte[], byte, int)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html#message--">message()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.AssertListener.AssertEvent</a></dt> +<dd> +<div class="block">Message associated with the assert, or an empty string.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Distance.html#meters--">meters()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></dt> +<dd> +<div class="block">Returns the value of this distance in meters.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Distance.html#meters-double-">meters(double)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></dt> +<dd> +<div class="block">Creates a new value in meters.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#millis--">millis()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> +<div class="block">Returns the value of this interval in milliseconds.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#millis-long-">millis(long)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> +<div class="block">Returns a new <a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> representing the given number of milliseconds.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTime.html#MIN">MIN</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></dt> +<dd> +<div class="block">Convenience instance using <a href="http://d.android.com/reference/java/lang/Long.html?is-external=true#MIN_VALUE" title="class or interface in java.lang"><code>Long.MIN_VALUE</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html#min-com.idevicesinc.sweetblue.utils.HistoricalDataColumn-">min(HistoricalDataColumn)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery.Part_AllowsSelectColumn</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#mins-int-">mins(int)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> +<div class="block">Returns a new <a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> representing the given number of minutes.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#minScanTimeNeededForUndiscovery">minScanTimeNeededForUndiscovery</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_MINIMUM_SCAN_TIME"><code>BleDeviceConfig.DEFAULT_MINIMUM_SCAN_TIME</code></a> seconds - Undiscovery of devices must be + approximated by checking when the last time was that we discovered a device, + and if this time is greater than <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#undiscoveryKeepAlive"><code>BleDeviceConfig.undiscoveryKeepAlive</code></a> then the device is undiscovered.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTime.html#minus-com.idevicesinc.sweetblue.utils.EpochTime-">minus(EpochTime)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></dt> +<dd> +<div class="block">Returns the delta resulting from <code>this-epochTime</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Unit.html#minus-com.idevicesinc.sweetblue.utils.Unit-">minus(Unit<T>)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></dt> +<dd> +<div class="block">Returns a new instance that is the result of doing <code>this - other</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#MODEL_NUMBER">MODEL_NUMBER</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#move-int-">move(int)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#move-int-">move(int)</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></dt> +<dd> +<div class="block">Move the cursor by a relative amount, forward or backward, from the + current position.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#moveToFirst--">moveToFirst()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#moveToFirst--">moveToFirst()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></dt> +<dd> +<div class="block">Move the cursor to the first row.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#moveToLast--">moveToLast()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#moveToLast--">moveToLast()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></dt> +<dd> +<div class="block">Move the cursor to the last row.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#moveToNext--">moveToNext()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#moveToNext--">moveToNext()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></dt> +<dd> +<div class="block">Move the cursor to the next row.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#moveToPosition-int-">moveToPosition(int)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#moveToPosition-int-">moveToPosition(int)</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></dt> +<dd> +<div class="block">Move the cursor to an absolute position.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#moveToPrevious--">moveToPrevious()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html#moveToPrevious--">moveToPrevious()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils">HistoricalDataCursor</a></dt> +<dd> +<div class="block">Move the cursor to the previous row.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#mtu--">mtu()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">This value gets set as a result of a <a href="com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setMtu(int, ReadWriteListener)</code></a> call.</div> +</dd> +</dl> +<a name="I:N"> +<!-- --> +</a> +<h2 class="title">N</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html#name--">name()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></dt> +<dd> +<div class="block">Same as <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang"><code>Enum.name()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#name_native--">name_native()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></dt> +<dd> +<div class="block">The unaltered device name retrieved from the native bluetooth stack.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#name_normalized--">name_normalized()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></dt> +<dd> +<div class="block">See <a href="com/idevicesinc/sweetblue/BleDevice.html#getName_normalized--"><code>BleDevice.getName_normalized()</code></a> for an explanation.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#nativeDevice--">nativeDevice()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">The native <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true" title="class or interface in android.bluetooth"><code>BluetoothDevice</code></a> client this <a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener.ConnectionFailEvent</code></a> is for.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#nativeDevice--">nativeDevice()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></dt> +<dd> +<div class="block">Returns the native bluetooth device object representing the client making the request.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#nativeInstance--">nativeInstance()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></dt> +<dd> +<div class="block">Other parameters are probably enough to make a decision but this native instance is provided just in case.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTransaction.html#needsAtomicity--">needsAtomicity()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></dt> +<dd> +<div class="block">Default is <a href="http://d.android.com/reference/java/lang/Boolean.html?is-external=true#FALSE" title="class or interface in java.lang"><code>Boolean.FALSE</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html#newAnonThreadLoop--">newAnonThreadLoop()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" title="class in com.idevicesinc.sweetblue">PI_UpdateLoop.DefaultUpdateLoopFactory</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html#newAnonThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-">newAnonThreadLoop(PI_UpdateLoop.Callback)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" title="class in com.idevicesinc.sweetblue">PI_UpdateLoop.DefaultUpdateLoopFactory</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html#newAnonThreadLoop--">newAnonThreadLoop()</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.IUpdateLoopFactory</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html#newAnonThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-">newAnonThreadLoop(PI_UpdateLoop.Callback)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.IUpdateLoopFactory</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html#newAnonThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-">newAnonThreadLoop(PI_UpdateLoop.Callback)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html#newAnonThreadLoop--">newAnonThreadLoop()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-">newDevice(String)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-java.lang.String-com.idevicesinc.sweetblue.BleDeviceConfig-"><code>BleManager.newDevice(String, String, BleDeviceConfig)</code></a> but uses an empty string for the name + and passes a <code>null</code> <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a>, which results in inherited options from <a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-java.lang.String-">newDevice(String, String)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-"><code>BleManager.newDevice(String)</code></a> but allows a custom name also.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-com.idevicesinc.sweetblue.BleDeviceConfig-">newDevice(String, BleDeviceConfig)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-"><code>BleManager.newDevice(String)</code></a> but passes a <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a> to be used as well.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#newDevice-java.lang.String-java.lang.String-com.idevicesinc.sweetblue.BleDeviceConfig-">newDevice(String, String, BleDeviceConfig)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Creates a new <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> or returns an existing one if the macAddress matches.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-">newHistoricalData(byte[], EpochTime)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns a new <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> instance using + <a href="com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataFactory"><code>BleNodeConfig.historicalDataFactory</code></a> if available.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-java.lang.String-">newHistoricalData(byte[], EpochTime, String)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>BleManager.newHistoricalData(byte[], EpochTime)</code></a> but tries to use + <a href="com/idevicesinc/sweetblue/BleNode.html#newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-"><code>BleNode.newHistoricalData(byte[], EpochTime)</code></a> if we have a device + matching the given mac address.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-">newHistoricalData(byte[], EpochTime)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Returns a new <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> instance using + <a href="com/idevicesinc/sweetblue/BleNodeConfig.html#historicalDataFactory"><code>BleNodeConfig.historicalDataFactory</code></a> if available.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html#newHistoricalData-byte:A-com.idevicesinc.sweetblue.utils.EpochTime-">newHistoricalData(byte[], EpochTime)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataFactory</a></dt> +<dd> +<div class="block">Return a new subclass of <a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><code>HistoricalData</code></a> that for example implements a custom interface + for another library that handles graphing or analytics.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Distance.html#newInstance-double-">newInstance(double)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#newInstance-double-">newInstance(double)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Percent.html#newInstance-double-">newInstance(double)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Unit.html#newInstance-double-">newInstance(double)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></dt> +<dd> +<div class="block">Subclasses must override this so that arithmetic "operators" can create new instances.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html#newMainThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-">newMainThreadLoop(PI_UpdateLoop.Callback)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" title="class in com.idevicesinc.sweetblue">PI_UpdateLoop.DefaultUpdateLoopFactory</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html#newMainThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-">newMainThreadLoop(PI_UpdateLoop.Callback)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.IUpdateLoopFactory</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html#newMainThreadLoop-com.idevicesinc.sweetblue.PI_UpdateLoop.Callback-">newMainThreadLoop(PI_UpdateLoop.Callback)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#newNulled--">newNulled()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Convenience method that returns a nulled out <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a>, which is useful + when using <a href="com/idevicesinc/sweetblue/BleDevice.html#setConfig-com.idevicesinc.sweetblue.BleDeviceConfig-"><code>BleDevice.setConfig(BleDeviceConfig)</code></a> to only override a few options + from <a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> passed to <a href="com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(Context, BleManagerConfig)</code></a> + or <a href="com/idevicesinc/sweetblue/BleManager.html#setConfig-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.setConfig(BleManagerConfig)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.html#newNulled--">newNulled()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dt> +<dd> +<div class="block">Convenience method that returns a nulled out <a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig</code></a>, which is useful + when using <a href="com/idevicesinc/sweetblue/BleServer.html#setConfig-com.idevicesinc.sweetblue.BleNodeConfig-"><code>BleServer.setConfig(BleNodeConfig)</code></a> to only override a few options + from <a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> passed to <a href="com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(Context, BleManagerConfig)</code></a> + or <a href="com/idevicesinc/sweetblue/BleManager.html#setConfig-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.setConfig(BleManagerConfig)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#newReadWriteEvent-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Target-java.util.UUID-java.util.UUID-java.util.UUID-">newReadWriteEvent(BleDevice.ReadWriteListener.Status, int, BleDevice.ReadWriteListener.Target, UUID, UUID, UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_Task_BatteryLevel.html" title="class in com.idevicesinc.sweetblue">P_Task_BatteryLevel</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#newServiceManager--">newServiceManager()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#newServiceManager--">newServiceManager()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#newServiceManager--">newServiceManager()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#newStateBits--">newStateBits()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></dt> +<dd> +<div class="block">The new and now current bitwise representation of a <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> + or <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#newWithLogging--">newWithLogging()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Returns a new constructor that populates <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#uuidNameMaps"><code>BleManagerConfig.uuidNameMaps</code></a> with <a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><code>Uuids</code></a> + using <a href="com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><code>ReflectionUuidNameMap</code></a> to help with readable logging.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceIterator.html#next--">next()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue">BleDeviceIterator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html#next--">next()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener.Please</a></dt> +<dd> +<div class="block">Tells the transaction to proceed to the next write in the queue, and ignore the one that failed.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyIterator.html#next--">next()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="class in com.idevicesinc.sweetblue.utils">EmptyIterator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.html#next-T-">next(T)</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Breakable</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/ForEach_Returning.html#next-int-">next(int)</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Returning</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/ForEach_Void.html#next-T-">next(T)</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils">ForEach_Void</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/SingleElementIterator.html#next--">next()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="class in com.idevicesinc.sweetblue.utils">SingleElementIterator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#nextStage--">nextStage()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a></dt> +<dd> +<div class="block">Returns the <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> following the Stage for this event.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningReadTime">nForAverageRunningReadTime</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RUNNING_AVERAGE_N"><code>BleDeviceConfig.DEFAULT_RUNNING_AVERAGE_N</code></a> - Same thing as <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningWriteTime"><code>BleDeviceConfig.nForAverageRunningWriteTime</code></a> but for reads.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#nForAverageRunningWriteTime">nForAverageRunningWriteTime</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RUNNING_AVERAGE_N"><code>BleDeviceConfig.DEFAULT_RUNNING_AVERAGE_N</code></a> - The number of historical write times that the library should keep track of when calculating average time.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#node--">node()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a></dt> +<dd> +<div class="block">The node that is currently trying to reconnect.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#node--">node()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a></dt> +<dd> +<div class="block">The node that is currently trying to reconnect.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#NON_APPLICABLE_REQUEST_ID">NON_APPLICABLE_REQUEST_ID</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></dt> +<dd> +<div class="block">Return value of <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#requestId--"><code>BleServer.ExchangeListener.ExchangeEvent.requestId()</code></a> if <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>BleServer.ExchangeListener.ExchangeEvent.type()</code></a> is <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#NOTIFICATION"><code>BleServer.ExchangeListener.Type.NOTIFICATION</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#NON_APPLICABLE_UUID">NON_APPLICABLE_UUID</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Value used in place of <code>null</code>, either indicating that <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#descUuid--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.descUuid()</code></a> isn't used for the <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> + because <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.target()</code></a> is <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#CHARACTERISTIC"><code>BleDevice.ReadWriteListener.Target.CHARACTERISTIC</code></a>, or that both <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#descUuid--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.descUuid()</code></a> and <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#charUuid--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.charUuid()</code></a> aren't applicable + because <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.target()</code></a> is <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#RSSI"><code>BleDevice.ReadWriteListener.Target.RSSI</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#NON_APPLICABLE_UUID">NON_APPLICABLE_UUID</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></dt> +<dd> +<div class="block">Value used in place of <code>null</code>, either indicating that <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#descUuid--"><code>BleServer.ExchangeListener.ExchangeEvent.descUuid()</code></a> + isn't used for the <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a> because <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#target--"><code>BleServer.ExchangeListener.ExchangeEvent.target()</code></a> is <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html#CHARACTERISTIC"><code>BleServer.ExchangeListener.Target.CHARACTERISTIC</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_String.html#normalizeDeviceName-java.lang.String-">normalizeDeviceName(String)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils">Utils_String</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_String.html#normalizeMacAddress-java.lang.String-">normalizeMacAddress(String)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils">Utils_String</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_String.html#normalizeMacAddress_replaceDelimiters-java.lang.String-">normalizeMacAddress_replaceDelimiters(String)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils">Utils_String</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTime.html#now--">now()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></dt> +<dd> +<div class="block">Simply a more readable version of the default constructor <a href="com/idevicesinc/sweetblue/utils/EpochTime.html#EpochTime--"><code>EpochTime.EpochTime()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#NULL">NULL</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Special value that is used in place of Java's built-in <code>null</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#NULL">NULL</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Special value that is used in place of Java's built-in <code>null</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTime.html#NULL">NULL</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></dt> +<dd> +<div class="block">Fulfills the soft contract of <a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a> - used for <a href="com/idevicesinc/sweetblue/utils/EpochTime.html#isNull--"><code>EpochTime.isNull()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#NULL">NULL</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">Fulfills the soft contract of <a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UsesCustomNull</code></a> - used for <a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#isNull--"><code>EpochTimeRange.isNull()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#NULL">NULL</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></dt> +<dd> +<div class="block">Special value that replaces Java's built-int <code>null</code> and + is used everywhere Java's would otherwise be used.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/annotations/Nullable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Nullable</span></a> - Annotation Type in <a href="com/idevicesinc/sweetblue/annotations/package-summary.html">com.idevicesinc.sweetblue.annotations</a></dt> +<dd> +<div class="block">This annotation is used to tag methods and parameters to give extra information + on how they handle <code>null</code>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Nullable.Prevalence</span></a> - Enum in <a href="com/idevicesinc/sweetblue/annotations/package-summary.html">com.idevicesinc.sweetblue.annotations</a></dt> +<dd> +<div class="block">Generally used for <a href="http://d.android.com/reference/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation"><code>ElementType.METHOD</code></a> to hint at how often it should return <code>null</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.html#nullOut--">nullOut()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dt> +<dd> +<div class="block">Sets all <a href="com/idevicesinc/sweetblue/annotations/Nullable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><code>Nullable</code></a> options in <a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig</code></a>, <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig</code></a>, <a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> to <code>null</code> + so for example it's easier to cherry-pick just a few options to override from <a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig</code></a> when using <a href="com/idevicesinc/sweetblue/BleDevice.html#setConfig-com.idevicesinc.sweetblue.BleDeviceConfig-"><code>BleDevice.setConfig(BleDeviceConfig)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Reflection.html#nullOut-T-java.lang.Class-">nullOut(T, Class<? extends T>)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Reflection.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Reflection</a></dt> +<dd> </dd> +</dl> +<a name="I:O"> +<!-- --> +</a> +<h2 class="title">O</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#offset--">offset()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></dt> +<dd> +<div class="block">The offset forwarded from the native stack.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/P_StringHandler.html#OK">OK</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue">P_StringHandler</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html#oldStateBits--">oldStateBits()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils">State.ChangeEvent</a></dt> +<dd> +<div class="block">The bitwise representation of the <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> or <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> + before the event took place.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#onActivityOrPermissionResult-int-">onActivityOrPermissionResult(int)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></dt> +<dd> +<div class="block">A potentially-required method to be placed in your activity's <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true#onRequestPermissionsResult-int-java.lang.String:A-int:A-" title="class or interface in android.app"><code>Activity.onRequestPermissionsResult(int, String[], int[])</code></a> and <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true#onActivityResult-int-int-android.content.Intent-" title="class or interface in android.app"><code>Activity.onActivityResult(int, int, Intent)</code></a> methods.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#onActivityOrPermissionResult_static-int-">onActivityOrPermissionResult_static(int)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></dt> +<dd> +<div class="block">Static equivalent of <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#onActivityOrPermissionResult-int-"><code>BluetoothEnabler.onActivityOrPermissionResult(int)</code></a> that you can use to call down into the + singleton created by <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-"><code>BluetoothEnabler.start(Activity, BluetoothEnablerFilter)</code></a> (or overloads).</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html#onBatchScanResults-java.util.List-">onBatchScanResults(List<L_Util.ScanResult>)</a></span> - Method in interface com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat">L_Util.ScanCallback</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#onCharacteristicRead-android.bluetooth.BluetoothGatt-java.util.UUID-byte:A-int-">onCharacteristicRead(BluetoothGatt, UUID, byte[], int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_Task_BatteryLevel.html" title="class in com.idevicesinc.sweetblue">P_Task_BatteryLevel</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#onDescriptorRead-android.bluetooth.BluetoothGattDescriptor-byte:A-int-">onDescriptorRead(BluetoothGattDescriptor, byte[], int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_Task_BatteryLevel.html" title="class in com.idevicesinc.sweetblue">P_Task_BatteryLevel</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html#onDone--">onDone()</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList.AsyncLoadCallback</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#ONE_SEC">ONE_SEC</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> +<div class="block">Convenience value representing one second.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTransaction.html#onEnd-com.idevicesinc.sweetblue.BleDevice-com.idevicesinc.sweetblue.BleTransaction.EndReason-">onEnd(BleDevice, BleTransaction.EndReason)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></dt> +<dd> +<div class="block">Called when a transaction ends, either due to the transaction itself finishing itself + through <a href="com/idevicesinc/sweetblue/BleTransaction.html#fail--"><code>BleTransaction.fail()</code></a> or <a href="com/idevicesinc/sweetblue/BleTransaction.html#succeed--"><code>BleTransaction.succeed()</code></a>, or from the library implicitly ending + the transaction, for example if <a href="com/idevicesinc/sweetblue/BleTransaction.html#getDevice--"><code>BleTransaction.getDevice()</code></a> becomes <a href="com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.BondListener.BondEvent-">onEvent(BleDevice.BondListener.BondEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.BondListener</a></dt> +<dd> +<div class="block">Called after a call to <a href="com/idevicesinc/sweetblue/BleDevice.html#bond-com.idevicesinc.sweetblue.BleDevice.BondListener-"><code>BleDevice.bond(BondListener)</code></a> (or overloads), + or when bonding through another app or the operating system settings.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-">onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a></dt> +<dd> +<div class="block">Return value is ignored if device is either <a href="com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a> or reason + <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#allowsRetry--"><code>BleDevice.ConnectionFailListener.Status.allowsRetry()</code></a> is <code>false</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent-">onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleDevice.DefaultConnectionFailListener</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent-">onEvent(BleDevice.StateListener.StateEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.StateListener</a></dt> +<dd> +<div class="block">Called when a device's bitwise <a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> changes.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html#onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.StateChangeEvent-">onEvent(BleDeviceConfig.BondFilter.StateChangeEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter</a></dt> +<dd> +<div class="block">Called after a device undergoes a change in its <a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html#onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.CharacteristicEvent-">onEvent(BleDeviceConfig.BondFilter.CharacteristicEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter</a></dt> +<dd> +<div class="block">Called immediately before reading, writing, or enabling notification on a characteristic.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html#onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.StateChangeEvent-">onEvent(BleDeviceConfig.BondFilter.StateChangeEvent)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.DefaultBondFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html#onEvent-com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.CharacteristicEvent-">onEvent(BleDeviceConfig.BondFilter.CharacteristicEvent)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.DefaultBondFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.AssertListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.AssertListener.AssertEvent-">onEvent(BleManager.AssertListener.AssertEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.AssertListener</a></dt> +<dd> +<div class="block">Provides additional info about the circumstances surrounding the assert.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-">onEvent(BleManager.DiscoveryListener.DiscoveryEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.DiscoveryListener</a></dt> +<dd> +<div class="block">Called when the discovery lifecycle of a device is updated.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.NativeStateListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.NativeStateListener.NativeStateEvent-">onEvent(BleManager.NativeStateListener.NativeStateEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.NativeStateListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.NativeStateListener</a></dt> +<dd> +<div class="block">Called when the manager's native bitwise <a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> changes.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.ResetListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.ResetListener.ResetEvent-">onEvent(BleManager.ResetListener.ResetEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.ResetListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.ResetListener</a></dt> +<dd> +<div class="block">The reset event, for now only fired when the reset is completed.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent-">onEvent(BleManager.StateListener.StateEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.StateListener</a></dt> +<dd> +<div class="block">Called when the manager's abstracted <a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> changes.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOhEvent-">onEvent(BleManager.UhOhListener.UhOhEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue">BleManager.UhOhListener</a></dt> +<dd> +<div class="block">Run for the hills.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-">onEvent(BleManagerConfig.ScanFilter.ScanEvent)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.DefaultScanFilter</a></dt> +<dd> +<div class="block">Acknowledges the discovery if there's an overlap between the given advertisedServices + and the <a href="http://d.android.com/reference/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a> passed into the constructor of <a href="com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleManagerConfig.DefaultScanFilter</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html#onEvent-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent-">onEvent(BleManagerConfig.ScanFilter.ScanEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a></dt> +<dd> +<div class="block">Return <a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#acknowledge--"><code>BleManagerConfig.ScanFilter.Please.acknowledge()</code></a> to acknowledge the discovery, in which case <a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html#onEvent-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent-"><code>BleManager.DiscoveryListener.onEvent(BleManager.DiscoveryListener.DiscoveryEvent)</code></a> + will be called shortly.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html#onEvent-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent-">onEvent(BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener</a></dt> +<dd> +<div class="block">Called when the historical data for a given characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> is done loading from disk.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html#onEvent-com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent-">onEvent(BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener</a></dt> +<dd> +<div class="block">Called when the historical data for a given characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> is done querying.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent-">onEvent(BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultHistoricalDataLogFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-">onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultReconnectFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent-">onEvent(BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultTaskTimeoutRequestFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent-">onEvent(BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></dt> +<dd> +<div class="block">Implement this method to be notified of when the library requests whether historical data should be written to a log, + and to respond with your preference of if/how this data should be written.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-">onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter</a></dt> +<dd> +<div class="block">Called for every connection failure while device is <a href="com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent-">onEvent(BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter</a></dt> +<dd> +<div class="block">Implement this to have fine-grained control over <a href="com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> timeout behavior.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.AdvertisingListener.AdvertisingEvent-">onEvent(BleServer.AdvertisingListener.AdvertisingEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.AdvertisingListener</a></dt> +<dd> +<div class="block">Called upon the m_status of calling <a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-">onEvent(BleServer.ConnectionFailListener.ConnectionFailEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener.ConnectionFailEvent-">onEvent(BleServer.ConnectionFailListener.ConnectionFailEvent)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue">BleServer.DefaultConnectionFailListener</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-">onEvent(BleServer.IncomingListener.IncomingEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.IncomingListener</a></dt> +<dd> +<div class="block">Called when a read or write from the client is requested.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.OutgoingListener.OutgoingEvent-">onEvent(BleServer.OutgoingListener.OutgoingEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.OutgoingListener</a></dt> +<dd> +<div class="block">Called when a notification or a response to a request is fulfilled or failed.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.ServiceAddListener.ServiceAddEvent-">onEvent(BleServer.ServiceAddListener.ServiceAddEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ServiceAddListener</a></dt> +<dd> +<div class="block">Called when a service has finished being added or failed to be added.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.StateListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.StateListener.StateEvent-">onEvent(BleServer.StateListener.StateEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.StateListener</a></dt> +<dd> +<div class="block">Called when a server's bitwise <a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleServerState</code></a> changes.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html#onEvent-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent-">onEvent(BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter</a></dt> +<dd> +<div class="block">Called after moving to the next <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html#onEvent-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent-">onEvent(BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.DefaultBluetoothEnablerFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/GenericListener_Void.html#onEvent-T_Event-">onEvent(T_Event)</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="interface in com.idevicesinc.sweetblue.utils">GenericListener_Void</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/DefaultLogger.html#onLogEntry-int-java.lang.String-java.lang.String-">onLogEntry(int, String, String)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/DefaultLogger.html" title="class in com.idevicesinc.sweetblue">DefaultLogger</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/SweetLogger.html#onLogEntry-int-java.lang.String-java.lang.String-">onLogEntry(int, String, String)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue">SweetLogger</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/DebugLogger.html#onLogEntry-int-java.lang.String-java.lang.String-">onLogEntry(int, String, String)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils">DebugLogger</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#onPause--">onPause()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">It's generally recommended to call this in your override of <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true#onPause--" title="class or interface in android.app"><code>Activity.onPause()</code></a> for each <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app"><code>Activity</code></a> + in your application.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/SingleElementIterator.html#onRemove--">onRemove()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="class in com.idevicesinc.sweetblue.utils">SingleElementIterator</a></dt> +<dd> +<div class="block">Optionally override this method to implement remove logic.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#onResume--">onResume()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Opposite of <a href="com/idevicesinc/sweetblue/BleManager.html#onPause--"><code>BleManager.onPause()</code></a>, to be called from your override of <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true#onResume--" title="class or interface in android.app"><code>Activity.onResume()</code></a> for each <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app"><code>Activity</code></a> + in your application.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html#onScanFailed-int-">onScanFailed(int)</a></span> - Method in interface com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat">L_Util.ScanCallback</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html#onScanResult-int-com.idevicesinc.sweetblue.compat.L_Util.ScanResult-">onScanResult(int, L_Util.ScanResult)</a></span> - Method in interface com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat">L_Util.ScanCallback</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html#onUpdate-double-">onUpdate(double)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.Callback</a></dt> +<dd> +<div class="block">Gives you the amount of time that has passed in seconds since the last callback.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html#onWriteComplete-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent-">onWriteComplete(BleDevice.ReadWriteListener.ReadWriteEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue">BleWriteTransaction.WriteQueueListener</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html#onWriteFail-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent-">onWriteFail(BleDevice.ReadWriteListener.ReadWriteEvent)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or(BitwiseEnum)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#or-int-">or(int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleCharacteristicPermission.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or(BitwiseEnum)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleCharacteristicPermission.html#or-int-">or(int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleCharacteristicProperty.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or(BitwiseEnum)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleCharacteristicProperty.html#or-int-">or(int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDescriptorPermission.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or(BitwiseEnum)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDescriptorPermission.html#or-int-">or(int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceState.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or(BitwiseEnum)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceState.html#or-int-">or(int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerState.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or(BitwiseEnum)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerState.html#or-int-">or(int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServerState.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or(BitwiseEnum)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServerState.html#or-int-">or(int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-com.idevicesinc.sweetblue.utils.BitwiseEnum-">or(BitwiseEnum)</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></dt> +<dd> +<div class="block">Does a bitwise OR for this state and the given state.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html#or-int-">or(int)</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></dt> +<dd> +<div class="block">Does a bitwise OR for this state and the given bits.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html#ordinal--">ordinal()</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></dt> +<dd> +<div class="block">Same as <a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang"><code>Enum.ordinal()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTransaction.Ota.html#Ota--">Ota()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue">BleTransaction.Ota</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#overlaps-int-">overlaps(int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleCharacteristicPermission.html#overlaps-int-">overlaps(int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleCharacteristicProperty.html#overlaps-int-">overlaps(int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDescriptorPermission.html#overlaps-int-">overlaps(int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceState.html#overlaps-int-">overlaps(int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerState.html#overlaps-int-">overlaps(int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServerState.html#overlaps-int-">overlaps(int)</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html#overlaps-int-">overlaps(int)</a></span> - Method in interface com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a></dt> +<dd> +<div class="block">Convenience method for checking if <code>(<a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html#bit--"><code>BitwiseEnum.bit()</code></a> & mask) != 0x0</code>.</div> +</dd> +</dl> +<a name="I:P"> +<!-- --> +</a> +<h2 class="title">P</h2> +<dl> +<dt><a href="com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">P_StringHandler</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/P_StringHandler.html#P_StringHandler--">P_StringHandler()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue">P_StringHandler</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/P_Task_BatteryLevel.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">P_Task_BatteryLevel</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html#parseName-byte:A-">parseName(byte[])</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html" title="class in com.idevicesinc.sweetblue.utils">Utils_ScanRecord</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html#parseScanRecord-byte:A-">parseScanRecord(byte[])</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html" title="class in com.idevicesinc.sweetblue.utils">Utils_ScanRecord</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html#parseScanRecord-byte:A-com.idevicesinc.sweetblue.utils.Pointer-com.idevicesinc.sweetblue.utils.Pointer-java.util.List-android.util.SparseArray-java.util.Map-">parseScanRecord(byte[], Pointer<Integer>, Pointer<Integer>, List<UUID>, SparseArray<byte[]>, Map<UUID, byte[]>)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html" title="class in com.idevicesinc.sweetblue.utils">Utils_ScanRecord</a></dt> +<dd> +<div class="block"><span class="deprecatedLabel">Deprecated.</span></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html#parseServiceUuids-byte:A-">parseServiceUuids(byte[])</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html" title="class in com.idevicesinc.sweetblue.utils">Utils_ScanRecord</a></dt> +<dd> +<div class="block"><span class="deprecatedLabel">Deprecated.</span></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#pause--">pause()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></dt> +<dd> +<div class="block">Pause the enabler.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Percent</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Wrapper for a percentage value, generally from 0-100%;</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Rssi.html#percent-int-int-int-">percent(int, int, int)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Rssi.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Rssi</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#performOta-com.idevicesinc.sweetblue.BleTransaction.Ota-">performOta(BleTransaction.Ota)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Kicks off an "over the air" long-term transaction if it's not already + taking place and the device is <a href="com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZED"><code>BleDeviceState.INITIALIZED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#performTransaction-com.idevicesinc.sweetblue.BleTransaction-">performTransaction(BleTransaction)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Allows you to perform an arbitrary transaction that is not associated with any <a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> like + <a href="com/idevicesinc/sweetblue/BleDeviceState.html#PERFORMING_OTA"><code>BleDeviceState.PERFORMING_OTA</code></a>, <a href="com/idevicesinc/sweetblue/BleDeviceState.html#AUTHENTICATING"><code>BleDeviceState.AUTHENTICATING</code></a> or <a href="com/idevicesinc/sweetblue/BleDeviceState.html#INITIALIZING"><code>BleDeviceState.INITIALIZING</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#persist--">persist()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a></dt> +<dd> +<div class="block">Indicates that the <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> should keep <a href="com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a> or + <a href="com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_SHORT_TERM"><code>BleDeviceState.RECONNECTING_SHORT_TERM</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#PersistenceLevel_BOTH">PersistenceLevel_BOTH</a></span> - Static variable in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#PersistenceLevel_DISK">PersistenceLevel_DISK</a></span> - Static variable in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#PersistenceLevel_MEMORY">PersistenceLevel_MEMORY</a></span> - Static variable in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html#PersistenceLevel_NONE">PersistenceLevel_NONE</a></span> - Static variable in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#persistIf-boolean-">persistIf(boolean)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a></dt> +<dd> +<div class="block">Returns <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#persist--"><code>BleNodeConfig.ReconnectFilter.Please.persist()</code></a> if the condition holds, <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#stopRetrying--"><code>BleNodeConfig.ReconnectFilter.Please.stopRetrying()</code></a> otherwise.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html#phoneHasBondingIssues--">phoneHasBondingIssues()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.DefaultBondFilter</a></dt> +<dd> +<div class="block">Forwards <a href="com/idevicesinc/sweetblue/utils/Utils.html#phoneHasBondingIssues--"><code>Utils.phoneHasBondingIssues()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#phoneHasBondingIssues--">phoneHasBondingIssues()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> +<div class="block">Returns true for certain Sony and Motorola products, which may have problems managing bonding state + and so this method is used in <a href="com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleDeviceConfig.DefaultBondFilter</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/PI_BleScanner.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">PI_BleScanner</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/PI_BleStatusHelper.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">PI_BleStatusHelper</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">PI_UpdateLoop</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">PI_UpdateLoop.Callback</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> +<div class="block">A callback where you handle the update time step.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">PI_UpdateLoop.DefaultUpdateLoopFactory</span></a> - Class in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">PI_UpdateLoop.IUpdateLoopFactory</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Unit.html#plus-com.idevicesinc.sweetblue.utils.Unit-">plus(Unit<T>)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></dt> +<dd> +<div class="block">Returns a new instance that is the result of doing <code>this + other</code>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Pointer</span></a><<a href="com/idevicesinc/sweetblue/utils/Pointer.html" title="type parameter in Pointer">T</a>> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Provides a way to be able to change a value declared in the outer scope of an anonymous inline class.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Pointer.html#Pointer-T-">Pointer(T)</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils">Pointer</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Pointer.html#Pointer--">Pointer()</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils">Pointer</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html#populateServiceData-java.util.Map-">populateServiceData(Map<UUID, byte[]>)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html#populateServiceUUIDs-java.util.List-">populateServiceUUIDs(List<UUID>)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#popWakeLock--">popWakeLock()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Opposite of <a href="com/idevicesinc/sweetblue/BleManager.html#pushWakeLock--"><code>BleManager.pushWakeLock()</code></a>, eventually calls <a href="http://d.android.com/reference/android/os/PowerManager.WakeLock.html?is-external=true#release--" title="class or interface in android.os"><code>PowerManager.WakeLock.release()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html#postIfNeeded-java.lang.Runnable-">postIfNeeded(Runnable)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html#postIfNeeded-java.lang.Runnable-">postIfNeeded(Runnable)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html#postNeeded--">postNeeded()</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html#postNeeded--">postNeeded()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/PresentData.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">PresentData</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Simple dummy implementation of <a href="com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><code>FutureData</code></a> that just returns whatever is passed into the constructor.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/PresentData.html#PresentData-byte:A-">PresentData(byte[])</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/PresentData.html" title="class in com.idevicesinc.sweetblue.utils">PresentData</a></dt> +<dd> +<div class="block">The data sent to this constructor will simply be returned by <a href="com/idevicesinc/sweetblue/utils/PresentData.html#getData--"><code>PresentData.getData()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#previousDelay--">previousDelay()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a></dt> +<dd> +<div class="block">The previous <a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> returned through <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#retryIn-com.idevicesinc.sweetblue.utils.Interval-"><code>BleNodeConfig.ReconnectFilter.Please.retryIn(Interval)</code></a>, + or <a href="com/idevicesinc/sweetblue/utils/Interval.html#ZERO"><code>Interval.ZERO</code></a> for the first invocation.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#previousStage--">previousStage()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a></dt> +<dd> +<div class="block">Returns the <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> following the Stage for this event.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html#proceed--">proceed()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.WriteQueueListener.Please</a></dt> +<dd> +<div class="block">Proceed to the next write in the queue.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html#progress--">progress()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.ResetListener.ResetEvent</a></dt> +<dd> +<div class="block">The progress of the reset.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#pushWakeLock--">pushWakeLock()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Requires the <a href="http://d.android.com/reference/android/Manifest.permission.html?is-external=true#WAKE_LOCK" title="class or interface in android"><code>Manifest.permission.WAKE_LOCK</code></a> permission.</div> +</dd> +</dl> +<a name="I:Q"> +<!-- --> +</a> +<h2 class="title">Q</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html#query-java.lang.String-">query(String)</a></span> - Method in interface com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html#query-java.lang.String-">query(String)</a></span> - Method in class com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase_Default</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_State.html#query-int-java.lang.Object...-">query(int, Object...)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_State.html" title="class in com.idevicesinc.sweetblue.utils">Utils_State</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#queryHistoricalData-java.lang.String-">queryHistoricalData(String)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Provides a means to perform a raw SQL query on the database storing the historical data for this node.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#queryHistoricalData-java.lang.String-com.idevicesinc.sweetblue.BleNode.HistoricalDataQueryListener-">queryHistoricalData(String, BleNode.HistoricalDataQueryListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleNode.html#queryHistoricalData-java.lang.String-"><code>BleNode.queryHistoricalData(String)</code></a> but performs the query on a background thread and returns the result back on the main thread + through the provided <a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleNode.HistoricalDataQueryListener</code></a>.</div> +</dd> +</dl> +<a name="I:R"> +<!-- --> +</a> +<h2 class="title">R</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#random--">random()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html#range--">range()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</a></dt> +<dd> +<div class="block">The resulting time range spanning all of the data loaded to memory, or <a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#NULL"><code>EpochTimeRange.NULL</code></a> if not applicable.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#rawQuery--">rawQuery()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a></dt> +<dd> +<div class="block">The raw query given to the database.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID:A-">read(UUID[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-"><code>BleDevice.read(UUID)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">read(UUID[], BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(UUID, ReadWriteListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#read-java.lang.Iterable-">read(Iterable<UUID>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-"><code>BleDevice.read(UUID)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#read-java.lang.Iterable-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">read(Iterable<UUID>, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(UUID, ReadWriteListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-">read(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(java.util.UUID, BleDevice.ReadWriteListener)</code></a> but you can use this + if you don't immediately care about the result.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">read(UUID, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Reads a characteristic from the device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-java.util.UUID-">read(UUID, UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-"><code>BleDevice.read(UUID)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">read(UUID, UUID, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(UUID, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#readBatteryLevel-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">readBatteryLevel(BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Read the battery level of this device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#readBatteryLevel-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">readBatteryLevel(byte[], BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">This method is intended to be used when the device has 2 battery characteristics in the same service.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#readBatteryLevel-byte:A-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">readBatteryLevel(byte[], UUID, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Read the battery level of this device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-">readDescriptor(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Reads from the device without a callback - the callback will still be sent through any listeners provided + to either <a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setListener_ReadWrite(ReadWriteListener)</code></a> or <a href="com/idevicesinc/sweetblue/BleManager.html#setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleManager.setListener_ReadWrite(com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">readDescriptor(UUID, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Reads from the device with a callback.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-java.util.UUID-">readDescriptor(UUID, UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-"><code>BleDevice.readDescriptor(UUID)</code></a> for when you have descriptors with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">readDescriptor(UUID, UUID, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.readDescriptor(UUID, ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-">readDescriptor(UUID, UUID, UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.readDescriptor(UUID, ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics and/or services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">readDescriptor(UUID, UUID, UUID, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#readDescriptor-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.readDescriptor(UUID, ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics and/or services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#readRssi--">readRssi()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.readRssi(ReadWriteListener)</code></a> but use this method when you don't much care when/if the RSSI is actually updated.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">readRssi(BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Wrapper for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#readRemoteRssi--" title="class or interface in android.bluetooth"><code>BluetoothGatt.readRemoteRssi()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.html#reconnectFilter">reconnectFilter</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dt> +<dd> +<div class="block">Default is an instance of <a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultReconnectFilter</code></a> using the timings that are <code>public static final</code> members thereof - set your own implementation here to + have fine-grain control over reconnect behavior while a device is <a href="com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_LONG_TERM"><code>BleDeviceState.RECONNECTING_LONG_TERM</code></a> or <a href="com/idevicesinc/sweetblue/BleDeviceState.html#RECONNECTING_SHORT_TERM"><code>BleDeviceState.RECONNECTING_SHORT_TERM</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">ReflectionUuidNameMap</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Convenience implementation of <a href="com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UuidNameMap</code></a> that takes a <a href="http://d.android.com/reference/java/lang/Class.html?is-external=true" title="class or interface in java.lang"><code>Class</code></a> object + and through reflection attempts to parse out all the static UUID members, for example + on <a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><code>Uuids</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html#ReflectionUuidNameMap-java.lang.Class-">ReflectionUuidNameMap(Class<?>)</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils">ReflectionUuidNameMap</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#registerContentObserver-android.database.ContentObserver-">registerContentObserver(ContentObserver)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#registerDataSetObserver-android.database.DataSetObserver-">registerDataSetObserver(DataSetObserver)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_abort--">reliableWrite_abort()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Wrapper for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#abortReliableWrite--" title="class or interface in android.bluetooth"><code>BluetoothGatt.abortReliableWrite()</code></a> - will return an event such that <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isNull--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.isNull()</code></a> will + return <code>false</code> if there are no problems.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_begin-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">reliableWrite_begin(BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Wrapper for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#beginReliableWrite--" title="class or interface in android.bluetooth"><code>BluetoothGatt.beginReliableWrite()</code></a> - will return an event such that <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isNull--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.isNull()</code></a> will + return <code>false</code> if there are no problems.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#reliableWrite_execute--">reliableWrite_execute()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Wrapper for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#abortReliableWrite--" title="class or interface in android.bluetooth"><code>BluetoothGatt.abortReliableWrite()</code></a> - will return an event such that <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#isNull--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.isNull()</code></a> will + return <code>false</code> if there are no problems.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleWriteTransaction.html#remaining--">remaining()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a></dt> +<dd> +<div class="block">Returns how many write operations are left in the queue.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html#remedy--">remedy()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOhEvent</a></dt> +<dd> +<div class="block">Forwards <a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#getRemedy--"><code>BleManager.UhOhListener.UhOh.getRemedy()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceIterator.html#remove--">remove()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue">BleDeviceIterator</a></dt> +<dd> +<div class="block">Calls <a href="com/idevicesinc/sweetblue/BleManager.html#undiscover-com.idevicesinc.sweetblue.BleDevice-"><code>BleManager.undiscover(BleDevice)</code></a>, removing it from the <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> singleton's internal list.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyIterator.html#remove--">remove()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="class in com.idevicesinc.sweetblue.utils">EmptyIterator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/SingleElementIterator.html#remove--">remove()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="class in com.idevicesinc.sweetblue.utils">SingleElementIterator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#removeAllServices--">removeAllServices()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Convenience to remove all services previously added with <a href="com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>BleServer.addService(BleService, ServiceAddListener)</code></a> (or overloads).</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#removeService-java.util.UUID-">removeService(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Remove any service previously provided to <a href="com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>BleServer.addService(BleService, ServiceAddListener)</code></a> or overloads.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#requery--">requery()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/compat/L_Util.html#requestConnectionPriority-com.idevicesinc.sweetblue.BleDevice-int-">requestConnectionPriority(BleDevice, int)</a></span> - Static method in class com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/L_Util.html" title="class in com.idevicesinc.sweetblue.compat">L_Util</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#requestId--">requestId()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></dt> +<dd> +<div class="block">The request id forwarded from the native stack.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/compat/L_Util.html#requestMtu-com.idevicesinc.sweetblue.BleDevice-int-">requestMtu(BleDevice, int)</a></span> - Static method in class com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/L_Util.html" title="class in com.idevicesinc.sweetblue.compat">L_Util</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/compat/M_Util.html#requestPermissions-android.app.Activity-int-">requestPermissions(Activity, int)</a></span> - Static method in class com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/M_Util.html" title="class in com.idevicesinc.sweetblue.compat">M_Util</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/P_StringHandler.html#REQUIRES_LOCATION_PERMISSION">REQUIRES_LOCATION_PERMISSION</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue">P_StringHandler</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/P_StringHandler.html#REQUIRES_LOCATION_PERMISSION_AND_SERVICES">REQUIRES_LOCATION_PERMISSION_AND_SERVICES</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue">P_StringHandler</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#reset--">reset()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">This is essentially a big red reset button for the Bluetooth stack.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#reset-com.idevicesinc.sweetblue.BleManager.ResetListener-">reset(BleManager.ResetListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#reset--"><code>BleManager.reset()</code></a> but with a convenience callback for when the reset is + completed and the native BLE stack is (should be) back to normal.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#respond-android.os.Bundle-">respond(Bundle)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithError-int-">respondWithError(int)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></dt> +<dd> +<div class="block">Send an error/status code back to the client.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithError-int-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">respondWithError(int, BleServer.OutgoingListener)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithError-int-"><code>BleServer.IncomingListener.Please.respondWithError(int)</code></a> but allows you to provide a listener specific to this response.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-com.idevicesinc.sweetblue.utils.FutureData-">respondWithSuccess(FutureData)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-byte:A-"><code>BleServer.IncomingListener.Please.respondWithSuccess(byte[])</code></a> - see <a href="com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><code>FutureData</code></a> for why/when you would want to use this.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">respondWithSuccess(FutureData, BleServer.OutgoingListener)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.IncomingListener.Please.respondWithSuccess(byte[], BleServer.OutgoingListener)</code></a> - see <a href="com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><code>FutureData</code></a> for why/when you would want to use this.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-byte:A-">respondWithSuccess(byte[])</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></dt> +<dd> +<div class="block">Use this as the return value of <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>BleServer.IncomingListener.onEvent(IncomingEvent)</code></a> when + <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>BleServer.ExchangeListener.ExchangeEvent.type()</code></a> <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isRead--"><code>BleServer.ExchangeListener.Type.isRead()</code></a> is <code>true</code> and you can respect + the read request and respond with data.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">respondWithSuccess(byte[], BleServer.OutgoingListener)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-byte:A-"><code>BleServer.IncomingListener.Please.respondWithSuccess(byte[])</code></a> but allows you to provide a listener specific to this response.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess--">respondWithSuccess()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></dt> +<dd> +<div class="block">Use this as the return value of <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.html#onEvent-com.idevicesinc.sweetblue.BleServer.IncomingListener.IncomingEvent-"><code>BleServer.IncomingListener.onEvent(IncomingEvent)</code></a> + when <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#responseNeeded--"><code>BleServer.ExchangeListener.ExchangeEvent.responseNeeded()</code></a> is <code>true</code> and <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--"><code>BleServer.ExchangeListener.ExchangeEvent.type()</code></a> + <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#isWrite--"><code>BleServer.ExchangeListener.Type.isWrite()</code></a> is <code>true</code> and you consider the write successful.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">respondWithSuccess(BleServer.OutgoingListener)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.Please</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess--"><code>BleServer.IncomingListener.Please.respondWithSuccess()</code></a> but allows you to provide a listener specific to this response.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#responseNeeded--">responseNeeded()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></dt> +<dd> +<div class="block">Dictates whether a response is needed.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#resume-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Please-">resume(BluetoothEnabler.BluetoothEnablerFilter.Please)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></dt> +<dd> +<div class="block">Resume the enabler with the given Please.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#resume_static-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Please-">resume_static(BluetoothEnabler.BluetoothEnablerFilter.Please)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></dt> +<dd> +<div class="block">Static equivalent of <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#resume-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Please-"><code>BluetoothEnabler.resume(BluetoothEnablerFilter.Please)</code></a> that you can use to call down into the + singleton created by <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-"><code>BluetoothEnabler.start(Activity, BluetoothEnablerFilter)</code></a> (or overloads).</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#retainDeviceWhenBleTurnsOff">retainDeviceWhenBleTurnsOff</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <code>true</code> - controls whether <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> will keep a device in active memory when it goes <a href="com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retry--">retry()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></dt> +<dd> +<div class="block">Return this to retry the connection, continuing the connection fail retry loop.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html#retry--">retry()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener.Please</a></dt> +<dd> +<div class="block">Tells the transaction to retry the failed write again.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retryIf-boolean-">retryIf(boolean)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></dt> +<dd> +<div class="block">Returns <a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retry--"><code>BleNode.ConnectionFailListener.Please.retry()</code></a> if the given condition holds <code>true</code>, <a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#doNotRetry--"><code>BleNode.ConnectionFailListener.Please.doNotRetry()</code></a> otherwise.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#retryIn-com.idevicesinc.sweetblue.utils.Interval-">retryIn(Interval)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a></dt> +<dd> +<div class="block">Return this from <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)</code></a> to retry after the given amount of time.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#retryInstantly--">retryInstantly()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a></dt> +<dd> +<div class="block">When <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#type--"><code>BleNodeConfig.ReconnectFilter.ReconnectEvent.type()</code></a> is either <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#SHORT_TERM__SHOULD_TRY_AGAIN"><code>BleNodeConfig.ReconnectFilter.Type.SHORT_TERM__SHOULD_TRY_AGAIN</code></a> or <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#LONG_TERM__SHOULD_TRY_AGAIN"><code>BleNodeConfig.ReconnectFilter.Type.LONG_TERM__SHOULD_TRY_AGAIN</code></a>, + return this from <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)</code></a> to instantly reconnect.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retryWithAutoConnectFalse--">retryWithAutoConnectFalse()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></dt> +<dd> +<div class="block">Opposite of<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retryWithAutoConnectTrue--"><code>BleNode.ConnectionFailListener.Please.retryWithAutoConnectTrue()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retryWithAutoConnectTrue--">retryWithAutoConnectTrue()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.Please</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html#retry--"><code>BleNode.ConnectionFailListener.Please.retry()</code></a>, but <code>autoConnect=true</code> will be passed to + <a href="http://d.android.com/reference/android/bluetooth/BluetoothDevice.html?is-external=true#connectGatt-android.content.Context-boolean-android.bluetooth.BluetoothGattCallback-" title="class or interface in android.bluetooth"><code>BluetoothDevice.connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#reverseBytes-byte:A-">reverseBytes(byte[])</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#revertToClassicDiscoveryIfNeeded">revertToClassicDiscoveryIfNeeded</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <code>true</code> - SweetBlue uses <a href="http://d.android.com/reference/android/bluetooth/BluetoothAdapter.html?is-external=true#startLeScan-android.bluetooth.BluetoothAdapter.LeScanCallback-" title="class or interface in android.bluetooth"><code>BluetoothAdapter.startLeScan(BluetoothAdapter.LeScanCallback)</code></a> by default but for unknown + reasons this can fail sometimes.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#rssi--">rssi()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">This value gets updated as a result of a <a href="com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.readRssi(ReadWriteListener)</code></a> call.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#rssi--">rssi()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.DiscoveryEvent</a></dt> +<dd> +<div class="block">Forwards <a href="com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>BleDevice.getRssi()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#rssi--">rssi()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></dt> +<dd> +<div class="block">The RSSI received when the device was discovered.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#rssi_max">rssi_max</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_MAX"><code>BleDeviceConfig.DEFAULT_RSSI_MAX</code></a> - the estimated maximum value for <a href="com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>BleDevice.getRssi()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#rssi_min">rssi_min</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_MIN"><code>BleDeviceConfig.DEFAULT_RSSI_MIN</code></a> - the estimated minimum value for <a href="com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>BleDevice.getRssi()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#rssi_percent--">rssi_percent()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.DiscoveryEvent</a></dt> +<dd> +<div class="block">Forwards <a href="com/idevicesinc/sweetblue/BleDevice.html#getRssiPercent--"><code>BleDevice.getRssiPercent()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#rssiAutoPollRate">rssiAutoPollRate</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#DEFAULT_RSSI_AUTO_POLL_RATE"><code>BleDeviceConfig.DEFAULT_RSSI_AUTO_POLL_RATE</code></a> - The rate at which a <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> will automatically poll for its <a href="com/idevicesinc/sweetblue/BleDevice.html#getRssi--"><code>BleDevice.getRssi()</code></a> value + after it's <a href="com/idevicesinc/sweetblue/BleDeviceState.html#CONNECTED"><code>BleDeviceState.CONNECTED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#runOnMainThread">runOnMainThread</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <code>true</code> - SweetBlue originally ran most operations on its own internal thread based on + some theories that since proved invalid.</div> +</dd> +</dl> +<a name="I:S"> +<!-- --> +</a> +<h2 class="title">S</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#saveNameChangesToDisk">saveNameChangesToDisk</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <code>true</code> - controls whether changes to a device's name through <a href="com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-"><code>BleDevice.setName(String)</code></a> are remembered on disk through + <a href="http://d.android.com/reference/android/content/SharedPreferences.html?is-external=true" title="class or interface in android.content"><code>SharedPreferences</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#scanMode">scanMode</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/BleScanMode.html#AUTO"><code>BleScanMode.AUTO</code></a> - see <a href="com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue"><code>BleScanMode</code></a> for more details.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#scanPower">scanPower</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">NOTE: This is ONLY applicable on devices running Lollipop or above.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#scanRecord--">scanRecord()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></dt> +<dd> +<div class="block">The raw scan record received when the device was discovered.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#scanReportDelay">scanReportDelay</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_SCAN_REPORT_DELAY">0.5</a> seconds - Only applicable for Lollipop and up (i.e.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html#ScanResult--">ScanResult()</a></span> - Constructor for class com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat">L_Util.ScanResult</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#secs--">secs()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> +<div class="block">Returns the value of this interval in seconds.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#secs-double-">secs(double)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> +<div class="block">Returns a new <a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> representing the given number of seconds.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#secs-com.idevicesinc.sweetblue.utils.Interval-">secs(Interval)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> +<div class="block">Returns the double values as seconds from a given nullable <a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.html#select--">select()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue">BleNode</a></dt> +<dd> +<div class="block">Provides a way to perform a statically checked SQL query by chaining method calls.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html#select-com.idevicesinc.sweetblue.BleNode-com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase-">select(BleNode, Backend_HistoricalDatabase)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-byte:A-">sendIndication(String, UUID, byte[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">sendIndication(String, UUID, byte[], BleServer.OutgoingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-byte:A-">sendIndication(String, UUID, UUID, byte[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">sendIndication(String, UUID, UUID, byte[], BleServer.OutgoingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-">sendIndication(String, UUID, FutureData)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">sendIndication(String, UUID, FutureData, BleServer.OutgoingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-">sendIndication(String, UUID, UUID, FutureData)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendIndication(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#sendIndication-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">sendIndication(String, UUID, UUID, FutureData, BleServer.OutgoingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a> but sends an indication instead.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-byte:A-">sendNotification(String, UUID, byte[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">sendNotification(String, UUID, byte[], BleServer.OutgoingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-byte:A-">sendNotification(String, UUID, UUID, byte[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">sendNotification(String, UUID, UUID, byte[], BleServer.OutgoingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-">sendNotification(String, UUID, FutureData)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">sendNotification(String, UUID, FutureData, BleServer.OutgoingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-">sendNotification(String, UUID, UUID, FutureData)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.sendNotification(String, UUID, UUID, FutureData, OutgoingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#sendNotification-java.lang.String-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">sendNotification(String, UUID, UUID, FutureData, BleServer.OutgoingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Use this method to send a notification to the client device with the given mac address to the given characteristic <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#SERIAL_NUMBER">SERIAL_NUMBER</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#server--">server()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a></dt> +<dd> +<div class="block">Tries to cast <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#node--"><code>BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.node()</code></a> to a <a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>, otherwise returns <a href="com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#server--">server()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a></dt> +<dd> +<div class="block">Tries to cast <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#node--"><code>BleNodeConfig.ReconnectFilter.ReconnectEvent.node()</code></a> to a <a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a>, otherwise returns <a href="com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#server--">server()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a></dt> +<dd> +<div class="block">The <a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> associated with the <a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#task--"><code>BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.task()</code></a>, or <a href="com/idevicesinc/sweetblue/BleServer.html#NULL"><code>BleServer.NULL</code></a> if + <a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#task--"><code>BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.task()</code></a> <a href="com/idevicesinc/sweetblue/BleTask.html#isServerSpecific--"><code>BleTask.isServerSpecific()</code></a> does not return <code>true</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html#server--">server()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></dt> +<dd> +<div class="block">The backing <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> which is attempting to start advertising.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#server--">server()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">The <a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> this <a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ConnectionFailListener.ConnectionFailEvent</code></a> is for.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#server--">server()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></dt> +<dd> +<div class="block">The <a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> this <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a> is for.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#server--">server()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.ServiceAddEvent</a></dt> +<dd> +<div class="block">The server to which the service is being added.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#server--">server()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.StateListener.StateEvent</a></dt> +<dd> +<div class="block">The server undergoing the state change.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#service--">service()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Forwards <a href="com/idevicesinc/sweetblue/BleNode.html#getNativeService-java.util.UUID-"><code>BleNode.getNativeService(UUID)</code></a>, which will be nonnull + if <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.target()</code></a> is <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#CHARACTERISTIC"><code>BleDevice.ReadWriteListener.Target.CHARACTERISTIC</code></a> or <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#DESCRIPTOR"><code>BleDevice.ReadWriteListener.Target.DESCRIPTOR</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#service--">service()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.ServiceAddEvent</a></dt> +<dd> +<div class="block">The service being added to <a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#server--"><code>BleServer.ServiceAddListener.ServiceAddEvent.server()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#serviceData--">serviceData()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></dt> +<dd> +<div class="block">Returns the service data, if any, parsed from <a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#scanRecord--"><code>BleManagerConfig.ScanFilter.ScanEvent.scanRecord()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#serviceUuid--">serviceUuid()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the service associated with this <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#serviceUuid--">serviceUuid()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></dt> +<dd> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of the service associated with this <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#serviceUuid--">serviceUuid()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.ServiceAddEvent</a></dt> +<dd> +<div class="block">Convenience to return the <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> of <a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#service--"><code>BleServer.ServiceAddListener.ServiceAddEvent.service()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setBoolean-boolean-">setBoolean(boolean)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></dt> +<dd> +<div class="block">Set the boolean to write.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setBytes-byte:A-">setBytes(byte[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></dt> +<dd> +<div class="block">Set the raw bytes to write.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setCharacteristicUUID-java.util.UUID-">setCharacteristicUUID(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></dt> +<dd> +<div class="block">Set the characteristic UUID to write to.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#setConfig-com.idevicesinc.sweetblue.BleDeviceConfig-">setConfig(BleDeviceConfig)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Optionally sets overrides for any custom options given to <a href="com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(android.content.Context, BleManagerConfig)</code></a> + for this individual device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#setConfig-com.idevicesinc.sweetblue.BleManagerConfig-">setConfig(BleManagerConfig)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Updates the config options for this instance after calling <a href="com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-"><code>BleManager.get(android.content.Context)</code></a> or <a href="com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(android.content.Context, BleManagerConfig)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#setConfig-com.idevicesinc.sweetblue.BleNodeConfig-">setConfig(BleNodeConfig)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Optionally sets overrides for any custom options given to <a href="com/idevicesinc/sweetblue/BleManager.html#get-android.content.Context-com.idevicesinc.sweetblue.BleManagerConfig-"><code>BleManager.get(android.content.Context, BleManagerConfig)</code></a> + for this individual server.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-">setConnectionPriority(BleConnectionPriority)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setConnectionPriority(BleConnectionPriority, ReadWriteListener)</code></a> but use this method when you don't much care when/if the connection priority is updated.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#setConnectionPriority-com.idevicesinc.sweetblue.BleConnectionPriority-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">setConnectionPriority(BleConnectionPriority, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Wrapper for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#requestConnectionPriority-int-" title="class or interface in android.bluetooth"><code>BluetoothGatt.requestConnectionPriority(int)</code></a> which attempts to change the connection priority for a given connection.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#setExtras-android.os.Bundle-">setExtras(Bundle)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setInt-int-">setInt(int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></dt> +<dd> +<div class="block">Set an int to be written.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#setListener_Advertising-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-">setListener_Advertising(BleServer.AdvertisingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Set a listener here to be notified of the result of starting to advertise.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#setListener_Advertising-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-">setListener_Advertising(BleServer.AdvertisingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#setListener_Assert-com.idevicesinc.sweetblue.BleManager.AssertListener-">setListener_Assert(BleManager.AssertListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Set a listener here to be notified whenever <a href="com/idevicesinc/sweetblue/BleManager.html#ASSERT-boolean-"><code>BleManager.ASSERT(boolean)</code></a> fails.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_Bond-com.idevicesinc.sweetblue.BleDevice.BondListener-">setListener_Bond(BleDevice.BondListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Set a listener here to be notified whenever a bond attempt succeeds.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#setListener_Bond-com.idevicesinc.sweetblue.BleDevice.BondListener-">setListener_Bond(BleDevice.BondListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Convenience method to set a default back up listener for all <a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.BondListener.BondEvent</code></a>s across all <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> instances.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-">setListener_ConnectionFail(BleDevice.ConnectionFailListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Set a listener here to be notified whenever a connection fails and to + have control over retry behavior.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener-">setListener_ConnectionFail(BleDevice.ConnectionFailListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Convenience method to handle connection fail events at the manager level.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#setListener_ConnectionFail-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-">setListener_ConnectionFail(BleServer.ConnectionFailListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Set a listener here to override any listener provided previously.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#setListener_ConnectionFail_Server-com.idevicesinc.sweetblue.BleServer.ConnectionFailListener-">setListener_ConnectionFail_Server(BleServer.ConnectionFailListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Convenience method to handle server connection fail events at the manager level.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#setListener_DeviceState-com.idevicesinc.sweetblue.BleDevice.StateListener-">setListener_DeviceState(BleDevice.StateListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Convenience method to listen for all changes in <a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><code>BleDeviceState</code></a> for all devices.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-">setListener_Discovery(BleManager.DiscoveryListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Set a listener here to be notified whenever a <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> is discovered, rediscovered, or undiscovered.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_HistoricalDataLoad-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener-">setListener_HistoricalDataLoad(BleNode.HistoricalDataLoadListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Sets a default backup <a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleNode.HistoricalDataLoadListener</code></a> that will be invoked + for all historical data loads to memory for all uuids.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#setListener_HistoricalDataLoad-com.idevicesinc.sweetblue.BleNode.HistoricalDataLoadListener-">setListener_HistoricalDataLoad(BleNode.HistoricalDataLoadListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Sets a default backup <a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleNode.HistoricalDataLoadListener</code></a> that will be invoked + for all historical data loads to memory for all uuids for all devices.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#setListener_Incoming-com.idevicesinc.sweetblue.BleServer.IncomingListener-">setListener_Incoming(BleServer.IncomingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Convenience method to handle server request events at the manager level.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#setListener_Incoming-com.idevicesinc.sweetblue.BleServer.IncomingListener-">setListener_Incoming(BleServer.IncomingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Set a listener here to override any listener provided previously.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#setListener_NativeState-com.idevicesinc.sweetblue.BleManager.NativeStateListener-">setListener_NativeState(BleManager.NativeStateListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Set a listener here to be notified whenever this manager's native <a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> changes.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">setListener_Outgoing(BleServer.OutgoingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Convenience method to listen for completion of all outgoing messages from + <a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> instances.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#setListener_Outgoing-com.idevicesinc.sweetblue.BleServer.OutgoingListener-">setListener_Outgoing(BleServer.OutgoingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">This is a default catch-all convenience listener that will be called after any listener provided through + the static methods of <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.IncomingListener.Please</code></a> such as <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#respondWithSuccess-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.IncomingListener.Please.respondWithSuccess(BleServer.OutgoingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">setListener_ReadWrite(BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Sets a default backup <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener</code></a> that will be called for all calls to <a href="com/idevicesinc/sweetblue/BleDevice.html#read-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.read(UUID, ReadWriteListener)</code></a>, + <a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.write(UUID, byte[], ReadWriteListener)</code></a>, <a href="com/idevicesinc/sweetblue/BleDevice.html#enableNotify-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.enableNotify(UUID, ReadWriteListener)</code></a>, etc.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#setListener_ReadWrite-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">setListener_ReadWrite(BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Sets a default backup <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener</code></a> that will be called for all <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> instances.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#setListener_ServerState-com.idevicesinc.sweetblue.BleServer.StateListener-">setListener_ServerState(BleServer.StateListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Convenience method to listen for all changes in <a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleServerState</code></a> for all servers.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#setListener_ServiceAdd-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-">setListener_ServiceAdd(BleServer.ServiceAddListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Convenience method to listen for all service addition events for all servers.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#setListener_ServiceAdd-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-">setListener_ServiceAdd(BleServer.ServiceAddListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Set a listener here to override any listener provided previously and provide a default backup that will be called + after any listener provided to <a href="com/idevicesinc/sweetblue/BleServer.html#addService-com.idevicesinc.sweetblue.BleService-com.idevicesinc.sweetblue.BleServer.ServiceAddListener-"><code>BleServer.addService(BleService, ServiceAddListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#setListener_State-com.idevicesinc.sweetblue.BleDevice.StateListener-">setListener_State(BleDevice.StateListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Set a listener here to be notified whenever this device's state changes.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#setListener_State-com.idevicesinc.sweetblue.BleManager.StateListener-">setListener_State(BleManager.StateListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Set a listener here to be notified whenever this manager's <a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><code>BleManagerState</code></a> changes.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#setListener_State-com.idevicesinc.sweetblue.BleServer.StateListener-">setListener_State(BleServer.StateListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Set a listener here to be notified whenever this server's state changes in relation to a specific client.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#setListener_UhOh-com.idevicesinc.sweetblue.BleManager.UhOhListener-">setListener_UhOh(BleManager.UhOhListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Set a listener here to be notified whenever we encounter an <a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setLong-long-">setLong(long)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></dt> +<dd> +<div class="block">Set a long to be written.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html#setManufacturerData-byte:A-">setManufacturerData(byte[])</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html#setManufacturerId-int-">setManufacturerId(int)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils">BleScanInfo</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-">setMtu(int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setMtu(int, ReadWriteListener)</code></a> but use this method when you don't much care when/if the "maximum transmission unit" is actually updated.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">setMtu(int, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Wrapper for <a href="http://d.android.com/reference/android/bluetooth/BluetoothGatt.html?is-external=true#requestMtu-int-" title="class or interface in android.bluetooth"><code>BluetoothGatt.requestMtu(int)</code></a> which attempts to change the "maximum transmission unit" for a given connection.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#setMtuToDefault--">setMtuToDefault()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#setMtuToDefault-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setMtuToDefault( ReadWriteListener)</code></a> but use this method when you don't much care when/if the "maximum transmission unit" is actually updated.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#setMtuToDefault-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">setMtuToDefault(BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#setMtu-int-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setMtu(int, ReadWriteListener)</code></a> that returns the "maximum transmission unit" to the default.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-">setName(String)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setName(String, UUID, BleDevice.ReadWriteListener)</code></a> but will not attempt to propagate the + name change to the remote device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-java.util.UUID-">setName(String, UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.setName(String, UUID, BleDevice.ReadWriteListener)</code></a> but you can use this + if you don't care much whether the device name change actually successfully reaches + the remote device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#setName-java.lang.String-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">setName(String, UUID, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Sets the local name of the device and also attempts a <a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.write(java.util.UUID, byte[], BleDevice.ReadWriteListener)</code></a> + using the given <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#setNotificationUri-android.content.ContentResolver-android.net.Uri-">setNotificationUri(ContentResolver, Uri)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setServiceUUID-java.util.UUID-">setServiceUUID(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></dt> +<dd> +<div class="block">Set the service UUID for this write.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setShort-short-">setShort(short)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></dt> +<dd> +<div class="block">Set a short to be written.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setString-java.lang.String-java.lang.String-">setString(String, String)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></dt> +<dd> +<div class="block">Set a string to be written.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#setString-java.lang.String-">setString(String)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></dt> +<dd> +<div class="block">Set a string to be written.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html#setTimeoutFor-com.idevicesinc.sweetblue.utils.Interval-">setTimeoutFor(Interval)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.Please</a></dt> +<dd> +<div class="block">Tells SweetBlue to wait for the given interval before timing out the task.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html#SHORT_TERM_ATTEMPT_RATE">SHORT_TERM_ATTEMPT_RATE</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultReconnectFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html#SHORT_TERM_TIMEOUT">SHORT_TERM_TIMEOUT</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.DefaultReconnectFilter</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#shortToBytes-short-">shortToBytes(short)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#shouldBeReportedToUser--">shouldBeReportedToUser()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">Forwards <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#shouldBeReportedToUser--"><code>BleDevice.ConnectionFailListener.Status.shouldBeReportedToUser()</code></a> using <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#status--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.status()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#shouldBeReportedToUser--">shouldBeReportedToUser()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a></dt> +<dd> +<div class="block">Convenience method that returns whether this status is something that your app user would usually care about.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#shouldBeReportedToUser--">shouldBeReportedToUser()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">Forwards <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#shouldBeReportedToUser--"><code>BleDevice.ConnectionFailListener.Status.shouldBeReportedToUser()</code></a> + using <a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#status--"><code>BleServer.ConnectionFailListener.ConnectionFailEvent.status()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#shouldBeReportedToUser--">shouldBeReportedToUser()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a></dt> +<dd> +<div class="block">Convenience method that returns whether this status is something that your app user would usually care about.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html#shouldBreak--">shouldBreak()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils">ForEach_Breakable.Please</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html#shouldContinue--">shouldContinue()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils">ForEach_Breakable.Please</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/compat/M_Util.html#shouldShowRequestPermissionRationale-android.app.Activity-">shouldShowRequestPermissionRationale(Activity)</a></span> - Static method in class com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/M_Util.html" title="class in com.idevicesinc.sweetblue.compat">M_Util</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#since-long-">since(long)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> +<div class="block">Returns a new <a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> representing the time since the given past epoch time, + using <a href="http://d.android.com/reference/java/lang/System.html?is-external=true#currentTimeMillis--" title="class or interface in java.lang"><code>System.currentTimeMillis()</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">SingleElementIterator</span></a><<a href="com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="type parameter in SingleElementIterator">T</a>> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Convenience class for implementing an <a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util"><code>Iterator</code></a> with a single element.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/SingleElementIterator.html#SingleElementIterator-T-">SingleElementIterator(T)</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="class in com.idevicesinc.sweetblue.utils">SingleElementIterator</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#SINGLETON">SINGLETON</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> +<div class="block">Singleton value, safe to reuse.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#skipNext--">skipNext()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></dt> +<dd> +<div class="block">Skip the next <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> and move the following one.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#SOFTWARE_REVISION">SOFTWARE_REVISION</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#solicited--">solicited()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">This returns <code>true</code> if this event was the result of an explicit call through SweetBlue, e.g.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#solicited--">solicited()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></dt> +<dd> +<div class="block">This returns <code>true</code> if this event was the result of an explicit call through SweetBlue, e.g.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#solicited--">solicited()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.ServiceAddEvent</a></dt> +<dd> +<div class="block">This returns <code>true</code> if this event was the result of an explicit call through SweetBlue, e.g.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#source--">source()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a></dt> +<dd> +<div class="block">The source of the data - read, notify, etc.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html#stackTrace--">stackTrace()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.AssertListener.AssertEvent</a></dt> +<dd> +<div class="block">Stack trace leading up to the assert.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#stage--">stage()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a></dt> +<dd> +<div class="block">Returns the <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Stage</code></a> associated with this event.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#STANDARD_UUID_TEMPLATE">STANDARD_UUID_TEMPLATE</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> +<div class="block">The template for standard services, characteristics, and descriptors - see <a href="https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx">https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx</a> + This is used to generate some of the other static <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> instances in this class using <a href="com/idevicesinc/sweetblue/utils/Uuids.html#fromShort-java.lang.String-java.lang.String-"><code>Uuids.fromShort(String, String)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTransaction.html#start-com.idevicesinc.sweetblue.BleDevice-">start(BleDevice)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></dt> +<dd> +<div class="block">Implement this method to kick off your transaction.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleWriteTransaction.html#start-com.idevicesinc.sweetblue.BleDevice-">start(BleDevice)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction</a></dt> +<dd> +<div class="block">Starts the transaction.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html#start-double-">start(double)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.content.Context-">start(Context)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-"><code>BluetoothEnabler.start(Activity)</code></a> but given <a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content"><code>Context</code></a> must be an <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app"><code>Activity</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.content.Context-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-">start(Context, BluetoothEnabler.BluetoothEnablerFilter)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-"><code>BluetoothEnabler.start(Activity, BluetoothEnablerFilter)</code></a> but given <a href="http://d.android.com/reference/android/content/Context.html?is-external=true" title="class or interface in android.content"><code>Context</code></a> must be an <a href="http://d.android.com/reference/android/app/Activity.html?is-external=true" title="class or interface in android.app"><code>Activity</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-">start(Activity)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-"><code>BluetoothEnabler.start(Activity, BluetoothEnablerFilter)</code></a> that uses an instance of <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.DefaultBluetoothEnablerFilter</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html#start-android.app.Activity-com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter-">start(Activity, BluetoothEnabler.BluetoothEnablerFilter)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler</a></dt> +<dd> +<div class="block">Kicks off the complex flow needed to fully enable Bluetooth on Build versions greater than or equal to <a href="http://d.android.com/reference/android/os/Build.VERSION_CODES.html?is-external=true#M" title="class or interface in android.os"><code>Build.VERSION_CODES.M</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html#start-double-">start(double)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID-">startAdvertising(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-">startAdvertising(UUID, BleServer.AdvertisingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>BleServer.startAdvertising(BleAdvertisingPacket, AdvertisingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID:A-">startAdvertising(UUID[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID:A-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-">startAdvertising(UUID[], BleServer.AdvertisingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>BleServer.startAdvertising(BleAdvertisingPacket, AdvertisingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID-byte:A-">startAdvertising(UUID, byte[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">startAdvertising(UUID, byte[], BleAdvertisingPacket.Option...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">startAdvertising(UUID, BleAdvertisingPacket.Option...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID:A-com.idevicesinc.sweetblue.BleAdvertisingPacket.Option...-">startAdvertising(UUID[], BleAdvertisingPacket.Option...)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-">startAdvertising(UUID, BleAdvertisingSettings, BleServer.AdvertisingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>BleServer.startAdvertising(BleAdvertisingPacket, BleAdvertisingSettings, AdvertisingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-java.util.UUID:A-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-">startAdvertising(UUID[], BleAdvertisingSettings, BleServer.AdvertisingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>BleServer.startAdvertising(BleAdvertisingPacket, BleAdvertisingSettings, AdvertisingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-">startAdvertising(BleAdvertisingPacket)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>BleServer.startAdvertising(BleAdvertisingPacket, BleAdvertisingSettings, AdvertisingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-">startAdvertising(BleAdvertisingPacket, BleServer.AdvertisingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-"><code>BleServer.startAdvertising(BleAdvertisingPacket, BleAdvertisingSettings, AdvertisingListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-com.idevicesinc.sweetblue.BleAdvertisingSettings-com.idevicesinc.sweetblue.BleServer.AdvertisingListener-">startAdvertising(BleAdvertisingPacket, BleAdvertisingSettings, BleServer.AdvertisingListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Starts advertising serviceUuids with the information supplied in <a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue"><code>BleAdvertisingPacket</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">startChangeTrackingPoll(UUID[], Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Convenience to call <a href="com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startChangeTrackingPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> for multiple + characteristic uuids all at once.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-">startChangeTrackingPoll(UUID[], Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startChangeTrackingPoll(java.util.UUID[], Interval, BleDevice.ReadWriteListener)</code></a> but without a listener.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">startChangeTrackingPoll(Iterable<UUID>, Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Convenience to call <a href="com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startChangeTrackingPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> for multiple + characteristic uuids all at once.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-">startChangeTrackingPoll(Iterable<UUID>, Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startChangeTrackingPoll(java.util.UUID[], Interval, BleDevice.ReadWriteListener)</code></a> but without a listener.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">startChangeTrackingPoll(UUID, Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Similar to <a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(UUID, Interval, ReadWriteListener)</code></a> but only + invokes a callback when a change in the characteristic value is detected.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">startChangeTrackingPoll(UUID, UUID, Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startChangeTrackingPoll(UUID, Interval, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_BleScanner.html#startClassicDiscovery--">startClassicDiscovery()</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_BleScanner.html" title="interface in com.idevicesinc.sweetblue">PI_BleScanner</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_BleScanner.html#startLeScan-android.bluetooth.BluetoothAdapter.LeScanCallback-">startLeScan(BluetoothAdapter.LeScanCallback)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_BleScanner.html" title="interface in com.idevicesinc.sweetblue">PI_BleScanner</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_BleScanner.html#startLScan-int-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.compat.L_Util.ScanCallback-">startLScan(int, Interval, L_Util.ScanCallback)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_BleScanner.html" title="interface in com.idevicesinc.sweetblue">PI_BleScanner</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_BleScanner.html#startMScan-int-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.compat.L_Util.ScanCallback-">startMScan(int, Interval, L_Util.ScanCallback)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_BleScanner.html" title="interface in com.idevicesinc.sweetblue">PI_BleScanner</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/compat/L_Util.html#startNativeScan-com.idevicesinc.sweetblue.BleManager-int-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.compat.L_Util.ScanCallback-">startNativeScan(BleManager, int, Interval, L_Util.ScanCallback)</a></span> - Static method in class com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/L_Util.html" title="class in com.idevicesinc.sweetblue.compat">L_Util</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/compat/M_Util.html#startNativeScan-com.idevicesinc.sweetblue.BleManager-int-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.compat.L_Util.ScanCallback-">startNativeScan(BleManager, int, Interval, L_Util.ScanCallback)</a></span> - Static method in class com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/M_Util.html" title="class in com.idevicesinc.sweetblue.compat">M_Util</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-">startPeriodicScan(Interval, Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Manually starts a periodic scan.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-">startPeriodicScan(Interval, Interval, BleManager.DiscoveryListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>BleManager.startPeriodicScan(Interval, Interval)</code></a> but calls <a href="com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>BleManager.setListener_Discovery(BleManager.DiscoveryListener)</code></a> for you too.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-">startPeriodicScan(Interval, Interval, BleManagerConfig.ScanFilter)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>BleManager.startPeriodicScan(Interval, Interval)</code></a> but adds a filter too.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-">startPeriodicScan(Interval, Interval, BleManagerConfig.ScanFilter, BleManager.DiscoveryListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>BleManager.startPeriodicScan(Interval, Interval)</code></a> but calls <a href="com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>BleManager.setListener_Discovery(BleManager.DiscoveryListener)</code></a> for you too and adds a filter.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">startPoll(UUID, Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Starts a periodic read of a particular characteristic.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-">startPoll(UUID, Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> but without a listener.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">startPoll(UUID, UUID, Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(UUID, Interval, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-">startPoll(UUID, UUID, Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>BleDevice.startPoll(UUID, Interval)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">startPoll(UUID[], Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Convenience to call <a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> for multiple + characteristic uuids all at once.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-">startPoll(UUID[], Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(java.util.UUID[], Interval, BleDevice.ReadWriteListener)</code></a> but without a listener.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">startPoll(Iterable<UUID>, Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Convenience to call <a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> for multiple + characteristic uuids all at once.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-">startPoll(Iterable<UUID>, Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(java.util.UUID[], Interval, BleDevice.ReadWriteListener)</code></a> but without a listener.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-">startRssiPoll(Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(UUID, Interval, ReadWriteListener)</code></a> but for when you don't care when/if the RSSI is actually updated.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">startRssiPoll(Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Kicks off a poll that automatically calls <a href="com/idevicesinc/sweetblue/BleDevice.html#readRssi-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.readRssi(ReadWriteListener)</code></a> at the <a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a> frequency + specified.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#startScan--">startScan()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Starts a scan that will continue indefinitely until <a href="com/idevicesinc/sweetblue/BleManager.html#stopScan--"><code>BleManager.stopScan()</code></a> is called.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-">startScan(BleManagerConfig.ScanFilter)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Calls <a href="com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>BleManager.startScan(Interval, BleManagerConfig.ScanFilter)</code></a> with <a href="com/idevicesinc/sweetblue/utils/Interval.html#INFINITE"><code>Interval.INFINITE</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-">startScan(BleManager.DiscoveryListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a> but also calls <a href="com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>BleManager.setListener_Discovery(BleManager.DiscoveryListener)</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-">startScan(Interval, BleManagerConfig.ScanFilter)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>BleManager.startScan(Interval, BleManagerConfig.ScanFilter, BleManager.DiscoveryListener)</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-">startScan(Interval, BleManager.DiscoveryListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>BleManager.startScan(Interval, BleManagerConfig.ScanFilter, BleManager.DiscoveryListener)</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-">startScan(BleManagerConfig.ScanFilter, BleManager.DiscoveryListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a> but also calls <a href="com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>BleManager.setListener_Discovery(BleManager.DiscoveryListener)</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-">startScan(Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Starts a scan that will generally last for the given time (roughly).</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-">startScan(Interval, BleManagerConfig.ScanFilter, BleManager.DiscoveryListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#startScan-com.idevicesinc.sweetblue.utils.Interval-"><code>BleManager.startScan(Interval)</code></a> but also calls <a href="com/idevicesinc/sweetblue/BleManager.html#setListener_Discovery-com.idevicesinc.sweetblue.BleManager.DiscoveryListener-"><code>BleManager.setListener_Discovery(BleManager.DiscoveryListener)</code></a> for you.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">State</span></a> - Interface in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Bitwise enum contract for representing the state of devices and managers.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">State.ChangeEvent</span></a><<a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="type parameter in State.ChangeEvent">T_State</a> extends <a href="com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Abstract base class for <a href="com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.StateListener.StateEvent</code></a> and <a href="com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleManager.StateListener.StateEvent</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">State.ChangeIntent</span></a> - Enum in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Enumerates the intention behind a state change - as comprehensively as possible, whether the + application user intended for the state change to happen or not.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Reflection.html#staticFieldValue-java.lang.reflect.Field-">staticFieldValue(Field)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Reflection.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Reflection</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#status--">status()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a></dt> +<dd> +<div class="block">The <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><code>BleDevice.ConnectionFailListener.Status</code></a> associated with this event.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#status--">status()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">General reason why the connection failed.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#status--">status()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Indicates either success or the type of failure.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html#status--">status()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</a></dt> +<dd> +<div class="block">The general status of the load operation.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#status--">status()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a></dt> +<dd> +<div class="block">The general status of the query operation.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html#status--">status()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></dt> +<dd> +<div class="block">Returns <a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue"><code>BleServer.OutgoingListener.Status</code></a> describing + the m_status of calling <a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a></div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#status--">status()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">General reason why the connection failed.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#status--">status()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></dt> +<dd> +<div class="block">Returns the result of the response, or <a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#NO_RESPONSE_ATTEMPTED"><code>BleServer.OutgoingListener.Status.NO_RESPONSE_ATTEMPTED</code></a> if + for example <a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html#doNotRespond-com.idevicesinc.sweetblue.BleServer.OutgoingListener-"><code>BleServer.IncomingListener.Please.doNotRespond(BleServer.OutgoingListener)</code></a> was used.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#status--">status()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.ServiceAddEvent</a></dt> +<dd> +<div class="block">Indicates the success or reason for failure for adding the service.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#status--">status()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a></dt> +<dd> +<div class="block">Returns the <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.Status</code></a> of the current Stage.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html#stop--">stop()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue">BleWriteTransaction.FailListener.Please</a></dt> +<dd> +<div class="block">Stops the transaction, and clears all remaining writes from the queue.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html#stop--">stop()</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#stop--">stop()</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></dt> +<dd> +<div class="block">Bypass all remaining stages and move to the end of the last stage; enabler will finish at this point</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html#stop--">stop()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils">UpdateLoop</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#stopAdvertising--">stopAdvertising()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Stops the server from advertising.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#stopAllScanning--">stopAllScanning()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Convenience that will call both <a href="com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan--"><code>BleManager.stopPeriodicScan()</code></a> and <a href="com/idevicesinc/sweetblue/BleManager.html#stopScan--"><code>BleManager.stopScan()</code></a> for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/PI_BleScanner.html#stopLeScan-android.bluetooth.BluetoothAdapter.LeScanCallback-">stopLeScan(BluetoothAdapter.LeScanCallback)</a></span> - Method in interface com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_BleScanner.html" title="interface in com.idevicesinc.sweetblue">PI_BleScanner</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/compat/L_Util.html#stopNativeScan-com.idevicesinc.sweetblue.BleManager-">stopNativeScan(BleManager)</a></span> - Static method in class com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/L_Util.html" title="class in com.idevicesinc.sweetblue.compat">L_Util</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-">stopPeriodicScan(BleManagerConfig.ScanFilter)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan--"><code>BleManager.stopPeriodicScan()</code></a> but will also unregister any <a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleManagerConfig.ScanFilter</code></a> provided + through <a href="com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>BleManager.startPeriodicScan(Interval, Interval, BleManagerConfig.ScanFilter)</code></a> or other overloads.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan--">stopPeriodicScan()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Stops a periodic scan previously started either explicitly with <a href="com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>BleManager.startPeriodicScan(Interval, Interval)</code></a> or through + the <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanActiveTime"><code>BleManagerConfig.autoScanActiveTime</code></a> and <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#autoScanPauseInterval"><code>BleManagerConfig.autoScanPauseInterval</code></a> config options.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">stopPoll(UUID, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Stops a poll(s) started by either <a href="com/idevicesinc/sweetblue/BleDevice.html#startPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startPoll(UUID, Interval, ReadWriteListener)</code></a> or + <a href="com/idevicesinc/sweetblue/BleDevice.html#startChangeTrackingPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startChangeTrackingPoll(UUID, Interval, ReadWriteListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-">stopPoll(UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.stopPoll(java.util.UUID, BleDevice.ReadWriteListener)</code></a> but without the listener.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">stopPoll(UUID, Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.stopPoll(UUID, ReadWriteListener)</code></a> but with added filtering for the poll <a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><code>Interval</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-">stopPoll(UUID, Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.stopPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> but without the listener.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">stopPoll(UUID, UUID, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.stopPoll(UUID, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-java.util.UUID-">stopPoll(UUID, UUID)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-"><code>BleDevice.stopPoll(UUID)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">stopPoll(UUID, UUID, Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.stopPoll(UUID, Interval, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-">stopPoll(UUID, UUID, Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>BleDevice.stopPoll(UUID, Interval)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">stopPoll(UUID[], Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Calls <a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.stopPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> multiple times for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID:A-com.idevicesinc.sweetblue.utils.Interval-">stopPoll(UUID[], Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Calls <a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>BleDevice.stopPoll(java.util.UUID, Interval)</code></a> multiple times for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID:A-">stopPoll(UUID[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Calls <a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-"><code>BleDevice.stopPoll(java.util.UUID)</code></a> multiple times for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">stopPoll(Iterable<UUID>, Interval, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Calls <a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.stopPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)</code></a> multiple times for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.lang.Iterable-com.idevicesinc.sweetblue.utils.Interval-">stopPoll(Iterable<UUID>, Interval)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Calls <a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-com.idevicesinc.sweetblue.utils.Interval-"><code>BleDevice.stopPoll(java.util.UUID, Interval)</code></a> multiple times for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.lang.Iterable-">stopPoll(Iterable<UUID>)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Calls <a href="com/idevicesinc/sweetblue/BleDevice.html#stopPoll-java.util.UUID-"><code>BleDevice.stopPoll(java.util.UUID)</code></a> multiple times for you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#stopRetrying--">stopRetrying()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a></dt> +<dd> +<div class="block">Return this from <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html#onEvent-com.idevicesinc.sweetblue.BleNodeConfig.ReconnectFilter.ReconnectEvent-"><code>BleNodeConfig.ReconnectFilter.onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)</code></a> to stop a reconnect attempt loop.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#stopRetryingIf-boolean-">stopRetryingIf(boolean)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Please</a></dt> +<dd> +<div class="block">Returns <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#stopRetrying--"><code>BleNodeConfig.ReconnectFilter.Please.stopRetrying()</code></a> if the condition holds, <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html#persist--"><code>BleNodeConfig.ReconnectFilter.Please.persist()</code></a> otherwise.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#stopRssiPoll--">stopRssiPoll()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Stops an RSSI poll previously started either by <a href="com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-"><code>BleDevice.startRssiPoll(Interval)</code></a> or <a href="com/idevicesinc/sweetblue/BleDevice.html#startRssiPoll-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.startRssiPoll(Interval, ReadWriteListener)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#stopScan--">stopScan()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Stops a scan previously started by <a href="com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a> or its various overloads.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#stopScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-">stopScan(BleManagerConfig.ScanFilter)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Same as <a href="com/idevicesinc/sweetblue/BleManager.html#stopScan--"><code>BleManager.stopScan()</code></a> but also unregisters any filter supplied to various overloads of + <a href="com/idevicesinc/sweetblue/BleManager.html#startScan--"><code>BleManager.startScan()</code></a> or <a href="com/idevicesinc/sweetblue/BleManager.html#startPeriodicScan-com.idevicesinc.sweetblue.utils.Interval-com.idevicesinc.sweetblue.utils.Interval-"><code>BleManager.startPeriodicScan(Interval, Interval)</code></a> that take an <a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><code>BleManagerConfig.ScanFilter</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#stopScanOnPause">stopScanOnPause</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <code>true</code> - makes it so <a href="com/idevicesinc/sweetblue/BleManager.html#stopScan--"><code>BleManager.stopScan()</code></a> is called automatically after <a href="com/idevicesinc/sweetblue/BleManager.html#onPause--"><code>BleManager.onPause()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#subBytes-byte:A-int-int-">subBytes(byte[], int, int)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#subBytes-byte:A-int-">subBytes(byte[], int)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTransaction.html#succeed--">succeed()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></dt> +<dd> +<div class="block">Call this from subclasses to indicate that the transaction has succeeded.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">SweetLogger</span></a> - Interface in <a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#SYSTEM_ID">SYSTEM_ID</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +</dl> +<a name="I:T"> +<!-- --> +</a> +<h2 class="title">T</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#target--">target()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">The type of GATT object this <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> is for, currently characteristic, descriptor, or rssi.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#target--">target()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></dt> +<dd> +<div class="block">The type of GATT object this <a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleServer.ExchangeListener.ExchangeEvent</code></a> is for, characteristic or descriptor.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#task--">task()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a></dt> +<dd> +<div class="block">The type of task for which we are requesting a timeout.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#TaskTimeoutRequestEvent--">TaskTimeoutRequestEvent()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.html#taskTimeoutRequestFilter">taskTimeoutRequestFilter</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig</a></dt> +<dd> +<div class="block">Default is an instance of <a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue"><code>BleNodeConfig.DefaultTaskTimeoutRequestFilter</code></a> - set an implementation here to + have fine control over how long individual <a href="com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><code>BleTask</code></a> instances can take before they + are considered "timed out" and failed.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#TEN_SECS">TEN_SECS</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> +<div class="block">Convenience value representing ten seconds.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#thenStopAllScanning--">thenStopAllScanning()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></dt> +<dd> +<div class="block">Shorthand for calling both <a href="com/idevicesinc/sweetblue/BleManager.html#stopScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>BleManager.stopScan(BleManagerConfig.ScanFilter)</code></a> and <a href="com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>BleManager.stopPeriodicScan(BleManagerConfig.ScanFilter)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#thenStopPeriodicScan--">thenStopPeriodicScan()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></dt> +<dd> +<div class="block">Shorthand for calling <a href="com/idevicesinc/sweetblue/BleManager.html#stopPeriodicScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>BleManager.stopPeriodicScan(BleManagerConfig.ScanFilter)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html#thenStopScan--">thenStopScan()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.Please</a></dt> +<dd> +<div class="block">Shorthand for calling <a href="com/idevicesinc/sweetblue/BleManager.html#stopScan-com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter-"><code>BleManager.stopScan(BleManagerConfig.ScanFilter)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#time_ota--">time_ota()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Time spent "over the air" - so in the native stack, processing in + the peripheral's embedded software, what have you.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#time_total--">time_total()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Total time it took for the operation to complete, whether success + or failure.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">TimeEstimator</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">A zero-dependency utility class to track running average time of operations + and estimate the completion time of long running operations like firmware updates.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html#TimeEstimator-int-double-int-">TimeEstimator(int, double, int)</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils">TimeEstimator</a></dt> +<dd> +<div class="block">Lets this class act as a "time remaining" estimator for long-running operations.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html#TimeEstimator-int-">TimeEstimator(int)</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils">TimeEstimator</a></dt> +<dd> +<div class="block">Lets this class act as a utility for calculating the running average completion time of arbitrary operations.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Unit.html#times-com.idevicesinc.sweetblue.utils.Unit-">times(Unit<T>)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></dt> +<dd> +<div class="block">Returns a new instance that is the result of doing <code>this * other</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#timing--">timing()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">Further timing information for <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#NATIVE_CONNECTION_FAILED"><code>BleDevice.ConnectionFailListener.Status.NATIVE_CONNECTION_FAILED</code></a>, <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#BONDING_FAILED"><code>BleDevice.ConnectionFailListener.Status.BONDING_FAILED</code></a>, and <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#DISCOVERING_SERVICES_FAILED"><code>BleDevice.ConnectionFailListener.Status.DISCOVERING_SERVICES_FAILED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#to--">to()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> +<div class="block">Returns the "to" date passed into the constructor, + or <a href="com/idevicesinc/sweetblue/utils/EpochTime.html#NULL"><code>EpochTime.NULL</code></a> if <code>null</code> + was originally passed in.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServerState.html#toBits-com.idevicesinc.sweetblue.BleServerState...-">toBits(BleServerState...)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#toBits-com.idevicesinc.sweetblue.utils.BitwiseEnum...-">toBits(BitwiseEnum...)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTime.html#toDate--">toDate()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></dt> +<dd> +<div class="block">Converts to Java's built-in date class.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#toDiskValue--">toDiskValue()</a></span> - Method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a></dt> +<dd> +<div class="block">The integer value to write to disk.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#toDiskValue-com.idevicesinc.sweetblue.utils.State.ChangeIntent-">toDiskValue(State.ChangeIntent)</a></span> - Static method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Percent.html#toDouble--">toDouble()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></dt> +<dd> +<div class="block">Returns the <code>double</code> value of this instance.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_String.html#toFixed-double-">toFixed(double)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils">Utils_String</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Percent.html#toFraction--">toFraction()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></dt> +<dd> +<div class="block">Returns .5 for 50%, for example.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#toHistoricalDataSource--">toHistoricalDataSource()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a></dt> +<dd> +<div class="block">Returns the <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue"><code>BleNodeConfig.HistoricalDataLogFilter.Source</code></a> equivalent + for this <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.Type</code></a>, or <a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#NULL"><code>BleNodeConfig.HistoricalDataLogFilter.Source.NULL</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Percent.html#toInt_ceil--">toInt_ceil()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></dt> +<dd> +<div class="block"><code>int</code> from <a href="http://d.android.com/reference/java/lang/Math.html?is-external=true#ceil-double-" title="class or interface in java.lang"><code>Math.ceil(double)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Percent.html#toInt_floor--">toInt_floor()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></dt> +<dd> +<div class="block"><code>int</code> from <a href="http://d.android.com/reference/java/lang/Math.html?is-external=true#floor-double-" title="class or interface in java.lang"><code>Math.floor(double)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Percent.html#toInt_round--">toInt_round()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></dt> +<dd> +<div class="block"><code>int</code> from <a href="http://d.android.com/reference/java/lang/Math.html?is-external=true#round-double-" title="class or interface in java.lang"><code>Math.round(double)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTime.html#toMilliseconds--">toMilliseconds()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></dt> +<dd> +<div class="block">Converts to milliseconds since 1970, which is currently also how the value is stored internally.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTime.html#toSeconds--">toSeconds()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></dt> +<dd> +<div class="block">Converts to seconds since 1970.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.StateListener.StateEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Returns the device's name and current state for logging and debugging purposes.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.AssertListener.AssertEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.DiscoveryEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.ResetListener.ResetEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.StateListener.StateEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOhEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.IncomingListener.IncomingEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.ServiceAddEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.StateListener.StateEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue">BleServer</a></dt> +<dd> +<div class="block">Pretty-prints the list of connecting or connected clients.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Distance.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTime.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalData.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalData</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Percent.html#toString--">toString()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_String.html#toString-int-com.idevicesinc.sweetblue.utils.State:A-">toString(int, State[])</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils">Utils_String</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_String.html#toString-java.lang.Class-java.lang.Object...-">toString(Class<?>, Object...)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils">Utils_String</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#totalTimeReconnecting--">totalTimeReconnecting()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a></dt> +<dd> +<div class="block">The total amount of time since the device disconnected and we started the reconnect process.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#tryBondingWhileDisconnected">tryBondingWhileDisconnected</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <code>true</code> - some devices can only reliably become <a href="com/idevicesinc/sweetblue/BleDeviceState.html#BONDED"><code>BleDeviceState.BONDED</code></a> while <a href="com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>, + so this option controls whether the library will internally change any bonding flow dictated by <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#bondFilter"><code>BleDeviceConfig.bondFilter</code></a> when a bond fails and try + to bond again the next time the device is <a href="com/idevicesinc/sweetblue/BleDeviceState.html#DISCONNECTED"><code>BleDeviceState.DISCONNECTED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#tryBondingWhileDisconnected_manageOnDisk">tryBondingWhileDisconnected_manageOnDisk</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <code>true</code> - controls whether any bonding issues worked around if <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#tryBondingWhileDisconnected"><code>BleDeviceConfig.tryBondingWhileDisconnected</code></a> is <code>true</code> are remembered on disk + (through <a href="http://d.android.com/reference/android/content/SharedPreferences.html?is-external=true" title="class or interface in android.content"><code>SharedPreferences</code></a>) so that bonding is as stable as possible across application sessions.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#turnOff--">turnOff()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Disables BLE if manager is <a href="com/idevicesinc/sweetblue/BleManagerState.html#ON"><code>BleManagerState.ON</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#turnOn--">turnOn()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Enables BLE if manager is currently <a href="com/idevicesinc/sweetblue/BleManagerState.html#OFF"><code>BleManagerState.OFF</code></a> or <a href="com/idevicesinc/sweetblue/BleManagerState.html#TURNING_OFF"><code>BleManagerState.TURNING_OFF</code></a>, otherwise does nothing.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forOsServices-android.app.Activity-int-">turnOnLocationWithIntent_forOsServices(Activity, int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">If <a href="com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byOsServices--"><code>BleManager.isLocationEnabledForScanning_byOsServices()</code></a> returns <code>false</code>, you can use this method to allow the user to enable location services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forOsServices-android.app.Activity-">turnOnLocationWithIntent_forOsServices(Activity)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forOsServices-android.app.Activity-int-"><code>BleManager.turnOnLocationWithIntent_forOsServices(Activity, int)</code></a> if you don't care about result.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forPermissions-android.app.Activity-int-">turnOnLocationWithIntent_forPermissions(Activity, int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">If <a href="com/idevicesinc/sweetblue/BleManager.html#isLocationEnabledForScanning_byOsServices--"><code>BleManager.isLocationEnabledForScanning_byOsServices()</code></a> returns <code>false</code>, you can use this method to allow the user to enable location + through an OS intent.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#turnOnWithIntent-android.app.Activity-int-">turnOnWithIntent(Activity, int)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Convenience method to request your user to enable ble in a "standard" way + with an <a href="http://d.android.com/reference/android/content/Intent.html?is-external=true" title="class or interface in android.content"><code>Intent</code></a> instead of using <a href="com/idevicesinc/sweetblue/BleManager.html#turnOn--"><code>BleManager.turnOn()</code></a> directly.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#txnFailReason--">txnFailReason()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.ConnectionFailEvent</a></dt> +<dd> +<div class="block">If <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html#status--"><code>BleDevice.ConnectionFailListener.ConnectionFailEvent.status()</code></a> is <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#AUTHENTICATION_FAILED"><code>BleDevice.ConnectionFailListener.Status.AUTHENTICATION_FAILED</code></a> or + <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#INITIALIZATION_FAILED"><code>BleDevice.ConnectionFailListener.Status.INITIALIZATION_FAILED</code></a> and <a href="com/idevicesinc/sweetblue/BleTransaction.html#fail--"><code>BleTransaction.fail()</code></a> was called somewhere in or + downstream of <a href="com/idevicesinc/sweetblue/utils/GenericListener_Void.html#onEvent-T_Event-"><code>GenericListener_Void.onEvent(Event)</code></a>, then the <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice.ReadWriteListener.ReadWriteEvent</code></a> passed there will be returned + here.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html#txPower--">txPower()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter.ScanEvent</a></dt> +<dd> +<div class="block">Returns the transmission power of the device in decibels, or <a href="com/idevicesinc/sweetblue/BleNodeConfig.html#INVALID_TX_POWER"><code>BleNodeConfig.INVALID_TX_POWER</code></a> if device is not advertising its transmission power.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#type--">type()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">The type of operation, read, write, etc.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html#type--">type()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEvent</a></dt> +<dd> +<div class="block">Returns the type of characteristic operation, read, write, etc.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html#type--">type()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.ReconnectEvent</a></dt> +<dd> +<div class="block">See <a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue"><code>BleNodeConfig.ReconnectFilter.Type</code></a> for more info.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html#type--">type()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ExchangeListener.ExchangeEvent</a></dt> +<dd> +<div class="block">The type of operation, read or write.</div> +</dd> +</dl> +<a name="I:U"> +<!-- --> +</a> +<h2 class="title">U</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html#uhOh--">uhOh()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOhEvent</a></dt> +<dd> +<div class="block">Returns the type of <a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a> that occurred.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#uhOhCallbackThrottle">uhOhCallbackThrottle</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#DEFAULT_UH_OH_CALLBACK_THROTTLE">30.0</a> seconds - <a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a> callbacks from <a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener</code></a> + can be a little spammy at times so this is an option to throttle them back on a per-<a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.UhOhListener.UhOh</code></a> basis.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#unbond--">unbond()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Opposite of <a href="com/idevicesinc/sweetblue/BleDevice.html#bond--"><code>BleDevice.bond()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#unbond--">unbond()</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></dt> +<dd> +<div class="block">Device should be unbonded if it isn't already.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_AUTH_CANCELED">UNBOND_REASON_AUTH_CANCELED</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> +<div class="block">A bond attempt failed because we canceled the bonding process.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_AUTH_FAILED">UNBOND_REASON_AUTH_FAILED</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> +<div class="block">A bond attempt failed because pins did not match, or remote device did not respond to pin request in time.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_AUTH_REJECTED">UNBOND_REASON_AUTH_REJECTED</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> +<div class="block">A bond attempt failed because the other side explicitly rejected bonding.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_AUTH_TIMEOUT">UNBOND_REASON_AUTH_TIMEOUT</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> +<div class="block">A bond attempt failed because of authentication timeout.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_DISCOVERY_IN_PROGRESS">UNBOND_REASON_DISCOVERY_IN_PROGRESS</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> +<div class="block">A bond attempt failed because a discovery is in progress.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_REMOTE_AUTH_CANCELED">UNBOND_REASON_REMOTE_AUTH_CANCELED</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> +<div class="block">A bond attempt failed because we received an Authentication Cancel by remote end.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_REMOTE_DEVICE_DOWN">UNBOND_REASON_REMOTE_DEVICE_DOWN</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> +<div class="block">A bond attempt failed because we could not contact the remote device.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleStatuses.html#UNBOND_REASON_REPEATED_ATTEMPTS">UNBOND_REASON_REPEATED_ATTEMPTS</a></span> - Static variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue">BleStatuses</a></dt> +<dd> +<div class="block">A bond attempt failed because of repeated attempts.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#unbondAll--">unbondAll()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Removes bonds for all devices that are <a href="com/idevicesinc/sweetblue/BleDeviceState.html#BONDED"><code>BleDeviceState.BONDED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#unbondIf-boolean-">unbondIf(boolean)</a></span> - Static method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.Please</a></dt> +<dd> +<div class="block">Returns <a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#bond--"><code>BleDeviceConfig.BondFilter.Please.bond()</code></a> if the given condition holds <code>true</code>, <a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html#doNothing--"><code>BleDeviceConfig.BondFilter.Please.doNothing()</code></a> otherwise.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#undiscover--">undiscover()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Convenience method that calls <a href="com/idevicesinc/sweetblue/BleManager.html#undiscover-com.idevicesinc.sweetblue.BleDevice-"><code>BleManager.undiscover(BleDevice)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#undiscover-com.idevicesinc.sweetblue.BleDevice-">undiscover(BleDevice)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Forcefully undiscovers a device, disconnecting it first if needed and removing it from this manager's internal list.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#undiscoverAll--">undiscoverAll()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Undiscovers all devices that are <a href="com/idevicesinc/sweetblue/BleDeviceState.html#DISCOVERED"><code>BleDeviceState.DISCOVERED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#undiscoverDeviceWhenBleTurnsOff">undiscoverDeviceWhenBleTurnsOff</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <code>true</code> - only applicable if <a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#retainDeviceWhenBleTurnsOff"><code>BleDeviceConfig.retainDeviceWhenBleTurnsOff</code></a> is also true.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#undiscoveryKeepAlive">undiscoveryKeepAlive</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is disabled - If a device exceeds this amount of time since its + last discovery then it is a candidate for being undiscovered.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Unit</span></a><<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="type parameter in Unit">T</a> extends <a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a>> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Common abstract base class for all units of measurement, providing default convenience methods + for things like comparison.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Unit.html#Unit--">Unit()</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils">Unit</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/annotations/UnitTest.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">UnitTest</span></a> - Annotation Type in <a href="com/idevicesinc/sweetblue/annotations/package-summary.html">com.idevicesinc.sweetblue.annotations</a></dt> +<dd> +<div class="block">This annotation is used to dictate certain classes and/or fields which are + only used for Unit testing, and should be ignored.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#unregisterContentObserver-android.database.ContentObserver-">unregisterContentObserver(ContentObserver)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html#unregisterDataSetObserver-android.database.DataSetObserver-">unregisterDataSetObserver(DataSetObserver)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils">EmptyCursor</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html#unsignedByte-byte-">unsignedByte(byte)</a></span> - Static method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils">Utils_Byte</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#update-double-">update(double)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">This method is made public in case you want to tie the library in to an update loop + from another codebase.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTransaction.html#update-double-">update(double)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue">BleTransaction</a></dt> +<dd> +<div class="block">Optional convenience method to override if you want to do periodic updates or time-based calculations.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/P_Task_BatteryLevel.html#update-double-">update(double)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_Task_BatteryLevel.html" title="class in com.idevicesinc.sweetblue">P_Task_BatteryLevel</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">UpdateLoop</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Zero-dependency (besides Android) utility class for creating an update loop.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#updateLoopCallback">updateLoopCallback</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <code>null</code> - provide an instance here that will be called at the end of <a href="com/idevicesinc/sweetblue/BleManager.html#update-double-"><code>BleManager.update(double)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#updateLoopFactory">updateLoopFactory</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">This allows the use of custom <a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue"><code>PI_UpdateLoop</code></a> for the internal processing of SweetBlue.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#useGattRefresh">useGattRefresh</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">Default is <code>false</code> - whether to use <code>BluetoothGatt.refresh()</code> right before service discovery.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.html#useLeTransportForBonding">useLeTransportForBonding</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue">BleDeviceConfig</a></dt> +<dd> +<div class="block">The below explanation is wrong, only in that the default is now <code>false</code>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTask.html#usesCharUuid--">usesCharUuid()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a></dt> +<dd> +<div class="block">Returns <code>true</code> if the task can have a characteristic UUID associated with it - for now <a href="com/idevicesinc/sweetblue/BleTask.html#READ"><code>BleTask.READ</code></a>, <a href="com/idevicesinc/sweetblue/BleTask.html#WRITE"><code>BleTask.WRITE</code></a>, <a href="com/idevicesinc/sweetblue/BleTask.html#TOGGLE_NOTIFY"><code>BleTask.TOGGLE_NOTIFY</code></a>, <a href="com/idevicesinc/sweetblue/BleTask.html#READ_DESCRIPTOR"><code>BleTask.READ_DESCRIPTOR</code></a> and <a href="com/idevicesinc/sweetblue/BleTask.html#WRITE_DESCRIPTOR"><code>BleTask.WRITE_DESCRIPTOR</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">UsesCustomNull</span></a> - Interface in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Interface implemented by some enums and mostly other <a href="com/idevicesinc/sweetblue/annotations/Immutable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><code>Immutable</code></a> structs + that have custom "null" behavior in place of Java's built-in <code>null</code>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Some static utility methods that are probably not very useful outside the library.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Utils.html#Utils--">Utils()</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils">Utils</a></dt> +<dd> </dd> +<dt><a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_Byte</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Utility methods for byte and bit twiddling.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/Utils_Reflection.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_Reflection</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Some utilities for dealing with raw byte array scan records.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/Utils_Rssi.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_Rssi</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Some static utility methods for RSSI-related calculations.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_ScanRecord</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Some utilities for dealing with raw byte array scan records.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/Utils_State.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_State</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Some helper utilities for dealing with <a href="com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><code>State</code></a> implementors.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_String</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Utility methods for string manipulation and creation needed by SweetBlue, mostly for debug purposes.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/Utils_Time.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_Time</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Utilities for dealing with time with an emphasis on BLE.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html#uuid--">uuid()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</a></dt> +<dd> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> that the data is being loaded for.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#uuid--">uuid()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a></dt> +<dd> +<div class="block">The <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a> that the data is being queried for.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">UuidNameMap</span></a> - Interface in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Provide an implementation to <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#uuidNameMaps"><code>BleManagerConfig.uuidNameMaps</code></a>.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">UuidNameMap_ListWrapper</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Convenience implementation that wraps a <a href="http://d.android.com/reference/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code></a> of other <a href="com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils"><code>UuidNameMap</code></a> instances.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html#UuidNameMap_ListWrapper-java.util.List-">UuidNameMap_ListWrapper(List<UuidNameMap>)</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html" title="class in com.idevicesinc.sweetblue.utils">UuidNameMap_ListWrapper</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html#UuidNameMap_ListWrapper--">UuidNameMap_ListWrapper()</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html" title="class in com.idevicesinc.sweetblue.utils">UuidNameMap_ListWrapper</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerConfig.html#uuidNameMaps">uuidNameMaps</a></span> - Variable in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue">BleManagerConfig</a></dt> +<dd> +<div class="block">Default is <code>null</code> - optional, only used if <a href="com/idevicesinc/sweetblue/BleManagerConfig.html#loggingEnabled"><code>BleManagerConfig.loggingEnabled</code></a> is true.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Uuids</span></a> - Class in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">A collection of standard <a href="http://d.android.com/reference/java/util/UUID.html?is-external=true" title="class or interface in java.util"><code>UUID</code></a>s for services, characteristics, and descriptors.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Uuids.html#Uuids--">Uuids()</a></span> - Constructor for class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils">Uuids</a></dt> +<dd> </dd> +</dl> +<a name="I:V"> +<!-- --> +</a> +<h2 class="title">V</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Pointer.html#value">value</a></span> - Variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils">Pointer</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.annotations.<a href="com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations">Nullable.Prevalence</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleCharacteristicPermission.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleCharacteristicProperty.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleConnectionPriority.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDescriptorPermission.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEventType</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceOrigin.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue">BleDeviceOrigin</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceState.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue">BleManager.ResetListener.Progress</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerState.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleScanMode.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleScanPower.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Target</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServerState.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTask.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTransaction.EndReason.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a></dt> +<dd> +<div class="block">Returns the enum constant of this type with the specified name.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.annotations.<a href="com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations">Nullable.Prevalence</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingPacket.Option</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleAdvertisingMode</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue">BleAdvertisingSettings.BleTransmissionPower</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleCharacteristicPermission.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicPermission</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleCharacteristicProperty.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue">BleCharacteristicProperty</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleConnectionPriority.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue">BleConnectionPriority</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDescriptorPermission.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue">BleDescriptorPermission</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Timing</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Target</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Type</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter.CharacteristicEventType</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceOrigin.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue">BleDeviceOrigin</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceState.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDeviceState.html#VALUES--">VALUES()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue">BleDeviceState</a></dt> +<dd> +<div class="block">Returns same as <a href="com/idevicesinc/sweetblue/BleDeviceState.html#values--"><code>BleDeviceState.values()</code></a>, but for performance reasons this does not return a new array every time.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.LifeCycle</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue">BleManager.ResetListener.Progress</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.Remedy</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue">BleManager.UhOhListener.UhOh</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManagerState.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue">BleManagerState</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue">BleNode.ConnectionFailListener.AutoConnectUsage</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.Status</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.Status</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter.Source</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter.Type</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleScanMode.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue">BleScanMode</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleScanPower.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue">BleScanPower</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.Status</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Target</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue">BleServer.ExchangeListener.Type</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.OutgoingListener.Status</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServerState.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue">BleServerState</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTask.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue">BleTask</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleTransaction.EndReason.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue">BleTransaction.EndReason</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Stage</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils">HistoricalDataColumn</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html#values--">values()</a></span> - Static method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils">State.ChangeIntent</a></dt> +<dd> +<div class="block">Returns an array containing the constants of this enum type, in +the order they are declared.</div> +</dd> +</dl> +<a name="I:W"> +<!-- --> +</a> +<h2 class="title">W</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#was-com.idevicesinc.sweetblue.BleManager.DiscoveryListener.LifeCycle-">was(BleManager.DiscoveryListener.LifeCycle)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue">BleManager.DiscoveryListener.DiscoveryEvent</a></dt> +<dd> +<div class="block">Convenience method for checking equality of given <a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue"><code>BleManager.DiscoveryListener.LifeCycle</code></a> and <a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html#lifeCycle--"><code>BleManager.DiscoveryListener.DiscoveryEvent.lifeCycle()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#wasCancelled--">wasCancelled()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a></dt> +<dd> +<div class="block">Forwards <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#wasCancelled--"><code>BleDevice.ConnectionFailListener.Status.wasCancelled()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#wasCancelled--">wasCancelled()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.BondListener.Status</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#wasCancelled--">wasCancelled()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener.Status</a></dt> +<dd> +<div class="block">Returns true for <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#EXPLICIT_DISCONNECT"><code>BleDevice.ConnectionFailListener.Status.EXPLICIT_DISCONNECT</code></a> or <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#BLE_TURNING_OFF"><code>BleDevice.ConnectionFailListener.Status.BLE_TURNING_OFF</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#wasCancelled--">wasCancelled()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Forwards <a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html#wasCancelled--"><code>BleDevice.ConnectionFailListener.Status.wasCancelled()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#wasCancelled--">wasCancelled()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.Status</a></dt> +<dd> +<div class="block">Returns <code>true</code> for <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#CANCELLED_FROM_DISCONNECT"><code>BleDevice.ReadWriteListener.Status.CANCELLED_FROM_DISCONNECT</code></a> or <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#CANCELLED_FROM_BLE_TURNING_OFF"><code>BleDevice.ReadWriteListener.Status.CANCELLED_FROM_BLE_TURNING_OFF</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#wasCancelled--">wasCancelled()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener.Status</a></dt> +<dd> +<div class="block">Returns true for <a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#CANCELLED_FROM_DISCONNECT"><code>BleServer.ConnectionFailListener.Status.CANCELLED_FROM_DISCONNECT</code></a> or <a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html#CANCELLED_FROM_BLE_TURNING_OFF"><code>BleServer.ConnectionFailListener.Status.CANCELLED_FROM_BLE_TURNING_OFF</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#wasPreviouslyNotEnabled--">wasPreviouslyNotEnabled()</a></span> - Method in enum com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Status</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#wasSuccess--">wasSuccess()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.BondListener.BondEvent</a></dt> +<dd> +<div class="block">Shortcut for checking if <a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html#status--"><code>BleDevice.BondListener.BondEvent.status()</code></a> == <a href="com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html#SUCCESS"><code>BleDevice.BondListener.Status.SUCCESS</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#wasSuccess--">wasSuccess()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue">BleDevice.ReadWriteListener.ReadWriteEvent</a></dt> +<dd> +<div class="block">Convenience method for checking if <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html#status--"><code>BleDevice.ReadWriteListener.ReadWriteEvent.status()</code></a> equals <a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html#SUCCESS"><code>BleDevice.ReadWriteListener.Status.SUCCESS</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html#wasSuccess--">wasSuccess()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</a></dt> +<dd> +<div class="block">Returns <code>true</code> if <a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html#status--"><code>BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.status()</code></a> is either <a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#LOADED"><code>BleNode.HistoricalDataLoadListener.Status.LOADED</code></a> or + <a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html#ALREADY_LOADED"><code>BleNode.HistoricalDataLoadListener.Status.ALREADY_LOADED</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#wasSuccess--">wasSuccess()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</a></dt> +<dd> +<div class="block">Returns <code>true</code> if <a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html#status--"><code>BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.status()</code></a> is <a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html#SUCCESS"><code>BleNode.HistoricalDataQueryListener.Status.SUCCESS</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html#wasSuccess--">wasSuccess()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.AdvertisingListener.AdvertisingEvent</a></dt> +<dd> +<div class="block">Whether or not <a href="com/idevicesinc/sweetblue/BleServer.html#startAdvertising-com.idevicesinc.sweetblue.BleAdvertisingPacket-"><code>BleServer.startAdvertising(BleAdvertisingPacket)</code></a> was successful or not.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#wasSuccess--">wasSuccess()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.OutgoingListener.OutgoingEvent</a></dt> +<dd> +<div class="block">Checks if <a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html#status--"><code>BleServer.OutgoingListener.OutgoingEvent.status()</code></a> is <a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html#SUCCESS"><code>BleServer.OutgoingListener.Status.SUCCESS</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html#wasSuccess--">wasSuccess()</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.ServiceAddEvent</a></dt> +<dd> +<div class="block">Convenience forwarding of <a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#wasSuccess--"><code>BleServer.ServiceAddListener.Status.wasSuccess()</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#wasSuccess--">wasSuccess()</a></span> - Method in enum com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue">BleServer.ServiceAddListener.Status</a></dt> +<dd> +<div class="block">Returns true if <code>this</code> equals <a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html#SUCCESS"><code>BleServer.ServiceAddListener.Status.SUCCESS</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html#where--">where()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils">HistoricalDataQuery</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleManager.html#willLocationPermissionSystemDialogBeShown-android.app.Activity-">willLocationPermissionSystemDialogBeShown(Activity)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue">BleManager</a></dt> +<dd> +<div class="block">Returns <code>true</code> if <a href="com/idevicesinc/sweetblue/BleManager.html#turnOnLocationWithIntent_forPermissions-android.app.Activity-int-"><code>BleManager.turnOnLocationWithIntent_forPermissions(Activity, int)</code></a> will pop a system dialog, <code>false</code> if it will bring + you to the OS's Application Settings.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#withActivity-android.app.Activity-">withActivity(Activity)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#withAppData-java.lang.Object-">withAppData(Object)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></dt> +<dd> +<div class="block">Add arbitrary app-specific data which will be passed to the next <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils"><code>BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</code></a> + through</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#withDialog-java.lang.String-">withDialog(String)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></dt> +<dd> +<div class="block">If the next stage isn't skipped or <a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html#ALREADY_ENABLED"><code>BluetoothEnabler.BluetoothEnablerFilter.Status.ALREADY_ENABLED</code></a> then pop a dialog before</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#withImplicitActivityResultHandling--">withImplicitActivityResultHandling()</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#withRequestCode-int-">withRequestCode(int)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></dt> +<dd> +<div class="block">Perform the next stage with the given requestCode</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html#withToast-java.lang.String-">withToast(String)</a></span> - Method in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter.Please</a></dt> +<dd> +<div class="block">Perform the next stage with a Toast</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#write-com.idevicesinc.sweetblue.BleDevice.WriteBuilder-">write(BleDevice.WriteBuilder)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Writes to the device without a callback.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#write-com.idevicesinc.sweetblue.BleDevice.WriteBuilder-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">write(BleDevice.WriteBuilder, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Writes to the device with a callback.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-">write(UUID, byte[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Writes to the device without a callback.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">write(UUID, byte[], BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Writes to the device with a callback.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-java.util.UUID-byte:A-">write(UUID, UUID, byte[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-"><code>BleDevice.write(UUID, byte[])</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">write(UUID, UUID, byte[], BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.write(UUID, byte[], ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-">write(UUID, FutureData)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Writes to the device without a callback.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">write(UUID, FutureData, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Writes to the device with a callback.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-">write(UUID, UUID, FutureData)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-"><code>BleDevice.write(UUID, FutureData)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">write(UUID, UUID, FutureData, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#write-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.write(UUID, FutureData, ReadWriteListener)</code></a> for when you have characteristics with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder--">WriteBuilder()</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></dt> +<dd> +<div class="block">Basic constructor.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-boolean-">WriteBuilder(boolean)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-boolean-java.util.UUID-java.util.UUID-"><code>BleDevice.WriteBuilder.BleDevice.WriteBuilder(boolean, UUID, UUID)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-boolean-java.util.UUID-">WriteBuilder(boolean, UUID)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-boolean-java.util.UUID-java.util.UUID-"><code>BleDevice.WriteBuilder.BleDevice.WriteBuilder(boolean, UUID, UUID)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-java.util.UUID-">WriteBuilder(UUID)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-boolean-java.util.UUID-java.util.UUID-"><code>BleDevice.WriteBuilder.BleDevice.WriteBuilder(boolean, UUID, UUID)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-java.util.UUID-java.util.UUID-">WriteBuilder(UUID, UUID)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-boolean-java.util.UUID-java.util.UUID-"><code>BleDevice.WriteBuilder.BleDevice.WriteBuilder(boolean, UUID, UUID)</code></a>.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html#WriteBuilder-boolean-java.util.UUID-java.util.UUID-">WriteBuilder(boolean, UUID, UUID)</a></span> - Constructor for class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue">BleDevice.WriteBuilder</a></dt> +<dd> +<div class="block">Main constructor to use.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-">writeDescriptor(UUID, byte[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Writes to the device descriptor without a callback.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">writeDescriptor(UUID, byte[], BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Writes to the device descriptor with a callback.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-java.util.UUID-byte:A-">writeDescriptor(UUID, UUID, byte[])</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-"><code>BleDevice.writeDescriptor(UUID, byte[])</code></a> for when you have descriptors with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">writeDescriptor(UUID, UUID, byte[], BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.writeDescriptor(UUID, byte[], ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">writeDescriptor(UUID, UUID, UUID, byte[], BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.writeDescriptor(UUID, byte[], ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics and/or services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-">writeDescriptor(UUID, FutureData)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Writes to the device descriptor without a callback.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">writeDescriptor(UUID, FutureData, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Writes to the device with a callback.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-">writeDescriptor(UUID, UUID, FutureData)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-"><code>BleDevice.writeDescriptor(UUID, byte[])</code></a> for when you have descriptors with identical uuids under different services.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">writeDescriptor(UUID, UUID, FutureData, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.writeDescriptor(UUID, byte[], ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-java.util.UUID-java.util.UUID-com.idevicesinc.sweetblue.utils.FutureData-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-">writeDescriptor(UUID, UUID, UUID, FutureData, BleDevice.ReadWriteListener)</a></span> - Method in class com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue">BleDevice</a></dt> +<dd> +<div class="block">Overload of <a href="com/idevicesinc/sweetblue/BleDevice.html#writeDescriptor-java.util.UUID-byte:A-com.idevicesinc.sweetblue.BleDevice.ReadWriteListener-"><code>BleDevice.writeDescriptor(UUID, byte[], ReadWriteListener)</code></a> for when you have descriptors with identical uuids under different characteristics and/or services.</div> +</dd> +<dt><a href="com/idevicesinc/sweetblue/utils/WrongThreadError.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">WrongThreadError</span></a> - Error in <a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></dt> +<dd> +<div class="block">Most of the methods of core SweetBlue classes like <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a>, <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a>, and <a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><code>BleServer</code></a> + must be called from the main thread, similar to how Android will complain if you try to edit a <a href="http://d.android.com/reference/android/view/View.html?is-external=true" title="class or interface in android.view"><code>View</code></a> + from another thread.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/WrongThreadError.html#WrongThreadError-java.lang.String-">WrongThreadError(String)</a></span> - Constructor for error com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/WrongThreadError.html" title="class in com.idevicesinc.sweetblue.utils">WrongThreadError</a></dt> +<dd> </dd> +</dl> +<a name="I:Z"> +<!-- --> +</a> +<h2 class="title">Z</h2> +<dl> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Distance.html#ZERO">ZERO</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils">Distance</a></dt> +<dd> +<div class="block">Convenience value for zero meters.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTime.html#ZERO">ZERO</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils">EpochTime</a></dt> +<dd> +<div class="block">Convenience instance representing the start date of 1970.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html#ZERO">ZERO</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils">EpochTimeRange</a></dt> +<dd> </dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Interval.html#ZERO">ZERO</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils">Interval</a></dt> +<dd> +<div class="block">Convenience value for zero time.</div> +</dd> +<dt><span class="memberNameLink"><a href="com/idevicesinc/sweetblue/utils/Percent.html#ZERO">ZERO</a></span> - Static variable in class com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils">Percent</a></dt> +<dd> +<div class="block">Convenience value representing 0%.</div> +</dd> +</dl> +<a href="#I:A">A</a> <a href="#I:B">B</a> <a href="#I:C">C</a> <a href="#I:D">D</a> <a href="#I:E">E</a> <a href="#I:F">F</a> <a href="#I:G">G</a> <a href="#I:H">H</a> <a href="#I:I">I</a> <a href="#I:K">K</a> <a href="#I:L">L</a> <a href="#I:M">M</a> <a href="#I:N">N</a> <a href="#I:O">O</a> <a href="#I:P">P</a> <a href="#I:Q">Q</a> <a href="#I:R">R</a> <a href="#I:S">S</a> <a href="#I:T">T</a> <a href="#I:U">U</a> <a href="#I:V">V</a> <a href="#I:W">W</a> <a href="#I:Z">Z</a> </div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="overview-summary.html">Overview</a></li> +<li>Package</li> +<li>Class</li> +<li><a href="overview-tree.html">Tree</a></li> +<li><a href="deprecated-list.html">Deprecated</a></li> +<li class="navBarCell1Rev">Index</li> +<li><a href="help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev</li> +<li>Next</li> +</ul> +<ul class="navList"> +<li><a href="index.html?index-all.html" target="_top">Frames</a></li> +<li><a href="index-all.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/index.html b/dev/android/sweetblue/docs/api/index.html new file mode 100644 index 0000000000000000000000000000000000000000..c9440667dfd5a7cbfadcea021d2d0c2f6cec2105 --- /dev/null +++ b/dev/android/sweetblue/docs/api/index.html @@ -0,0 +1,74 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>SweetBlue</title> +<script type="text/javascript"> + targetPage = "" + window.location.search; + if (targetPage != "" && targetPage != "undefined") + targetPage = targetPage.substring(1); + if (targetPage.indexOf(":") != -1 || (targetPage != "" && !validURL(targetPage))) + targetPage = "undefined"; + function validURL(url) { + try { + url = decodeURIComponent(url); + } + catch (error) { + return false; + } + var pos = url.indexOf(".html"); + if (pos == -1 || pos != url.length - 5) + return false; + var allowNumber = false; + var allowSep = false; + var seenDot = false; + for (var i = 0; i < url.length - 5; i++) { + var ch = url.charAt(i); + if ('a' <= ch && ch <= 'z' || + 'A' <= ch && ch <= 'Z' || + ch == '$' || + ch == '_' || + ch.charCodeAt(0) > 127) { + allowNumber = true; + allowSep = true; + } else if ('0' <= ch && ch <= '9' + || ch == '-') { + if (!allowNumber) + return false; + } else if (ch == '/' || ch == '.') { + if (!allowSep) + return false; + allowNumber = false; + allowSep = false; + if (ch == '.') + seenDot = true; + if (ch == '/' && seenDot) + return false; + } else { + return false; + } + } + return true; + } + function loadFrames() { + if (targetPage != "" && targetPage != "undefined") + top.classFrame.location = top.targetPage; + } +</script> +</head> +<frameset cols="20%,80%" title="Documentation frame" onload="top.loadFrames()"> +<frameset rows="30%,70%" title="Left frames" onload="top.loadFrames()"> +<frame src="overview-frame.html" name="packageListFrame" title="All Packages"> +<frame src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)"> +</frameset> +<frame src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes"> +<noframes> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<h2>Frame Alert</h2> +<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p> +</noframes> +</frameset> +</html> diff --git a/dev/android/sweetblue/docs/api/overview-frame.html b/dev/android/sweetblue/docs/api/overview-frame.html new file mode 100644 index 0000000000000000000000000000000000000000..33f4cd5dc09cf9e38f861166ff793873909316bb --- /dev/null +++ b/dev/android/sweetblue/docs/api/overview-frame.html @@ -0,0 +1,26 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>Overview List (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="doc_style.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +</head> +<body> +<div class="indexHeader"><span><a href="allclasses-frame.html" target="packageFrame">All Classes</a></span></div> +<div class="indexContainer"> +<h2 title="Packages">Packages</h2> +<ul title="Packages"> +<li><a href="com/idevicesinc/sweetblue/package-frame.html" target="packageFrame">com.idevicesinc.sweetblue</a></li> +<li><a href="com/idevicesinc/sweetblue/annotations/package-frame.html" target="packageFrame">com.idevicesinc.sweetblue.annotations</a></li> +<li><a href="com/idevicesinc/sweetblue/backend/package-frame.html" target="packageFrame">com.idevicesinc.sweetblue.backend</a></li> +<li><a href="com/idevicesinc/sweetblue/backend/historical/package-frame.html" target="packageFrame">com.idevicesinc.sweetblue.backend.historical</a></li> +<li><a href="com/idevicesinc/sweetblue/compat/package-frame.html" target="packageFrame">com.idevicesinc.sweetblue.compat</a></li> +<li><a href="com/idevicesinc/sweetblue/utils/package-frame.html" target="packageFrame">com.idevicesinc.sweetblue.utils</a></li> +</ul> +</div> +<p> </p> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/overview-summary.html b/dev/android/sweetblue/docs/api/overview-summary.html new file mode 100644 index 0000000000000000000000000000000000000000..189b73e1abf92b174dd6afe1b45c1fe4af4ced5f --- /dev/null +++ b/dev/android/sweetblue/docs/api/overview-summary.html @@ -0,0 +1,170 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>Overview (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="doc_style.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Overview (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li class="navBarCell1Rev">Overview</li> +<li>Package</li> +<li>Class</li> +<li><a href="overview-tree.html">Tree</a></li> +<li><a href="deprecated-list.html">Deprecated</a></li> +<li><a href="index-all.html">Index</a></li> +<li><a href="help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev</li> +<li>Next</li> +</ul> +<ul class="navList"> +<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li> +<li><a href="overview-summary.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 class="title">SweetBlue 2.51.58 API</h1> +</div> +<div class="contentContainer"> +<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Packages table, listing packages, and an explanation"> +<caption><span>Packages</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Package</th> +<th class="colLast" scope="col">Description</th> +</tr> +<tbody> +<tr class="altColor"> +<td class="colFirst"><a href="com/idevicesinc/sweetblue/package-summary.html">com.idevicesinc.sweetblue</a></td> +<td class="colLast"> +<div class="block">Contains the core public-facing classes <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> and <a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><code>BleManager</code></a> + and most of the internal guts for SweetBlue, the easiest way to do BLE on Android.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="com/idevicesinc/sweetblue/annotations/package-summary.html">com.idevicesinc.sweetblue.annotations</a></td> +<td class="colLast"> +<div class="block">Contains <a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation"><code>Annotation</code></a> declarations used throughout the library.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="com/idevicesinc/sweetblue/backend/package-summary.html">com.idevicesinc.sweetblue.backend</a></td> +<td class="colLast"> +<div class="block">Contains specification and default implementation of "backend" modules for SweetBlue.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="com/idevicesinc/sweetblue/backend/historical/package-summary.html">com.idevicesinc.sweetblue.backend.historical</a></td> +<td class="colLast"> +<div class="block">Contains specification and default implementation of a "backend" for instances of <a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><code>BleDevice</code></a> + that stores and manages historical data.</div> +</td> +</tr> +<tr class="altColor"> +<td class="colFirst"><a href="com/idevicesinc/sweetblue/compat/package-summary.html">com.idevicesinc.sweetblue.compat</a></td> +<td class="colLast"> +<div class="block">Contains utility classes for hiding away newer API calls.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><a href="com/idevicesinc/sweetblue/utils/package-summary.html">com.idevicesinc.sweetblue.utils</a></td> +<td class="colLast"> +<div class="block">Contains a few optional utilities that you may find useful, but nothing in here is a core part of the library as far as the library user is concerned.</div> +</td> +</tr> +</tbody> +</table> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li class="navBarCell1Rev">Overview</li> +<li>Package</li> +<li>Class</li> +<li><a href="overview-tree.html">Tree</a></li> +<li><a href="deprecated-list.html">Deprecated</a></li> +<li><a href="index-all.html">Index</a></li> +<li><a href="help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev</li> +<li>Next</li> +</ul> +<ul class="navList"> +<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li> +<li><a href="overview-summary.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/overview-tree.html b/dev/android/sweetblue/docs/api/overview-tree.html new file mode 100644 index 0000000000000000000000000000000000000000..d4c8efcf8a3839415f71d57d5d9b97338a693c42 --- /dev/null +++ b/dev/android/sweetblue/docs/api/overview-tree.html @@ -0,0 +1,447 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>Class Hierarchy (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="doc_style.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Class Hierarchy (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="overview-summary.html">Overview</a></li> +<li>Package</li> +<li>Class</li> +<li class="navBarCell1Rev">Tree</li> +<li><a href="deprecated-list.html">Deprecated</a></li> +<li><a href="index-all.html">Index</a></li> +<li><a href="help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev</li> +<li>Next</li> +</ul> +<ul class="navList"> +<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li> +<li><a href="overview-tree.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 class="title">Hierarchy For All Packages</h1> +<span class="packageHierarchyLabel">Package Hierarchies:</span> +<ul class="horizontal"> +<li><a href="com/idevicesinc/sweetblue/package-tree.html">com.idevicesinc.sweetblue</a>, </li> +<li><a href="com/idevicesinc/sweetblue/annotations/package-tree.html">com.idevicesinc.sweetblue.annotations</a>, </li> +<li><a href="com/idevicesinc/sweetblue/backend/package-tree.html">com.idevicesinc.sweetblue.backend</a>, </li> +<li><a href="com/idevicesinc/sweetblue/backend/historical/package-tree.html">com.idevicesinc.sweetblue.backend.historical</a>, </li> +<li><a href="com/idevicesinc/sweetblue/compat/package-tree.html">com.idevicesinc.sweetblue.compat</a>, </li> +<li><a href="com/idevicesinc/sweetblue/utils/package-tree.html">com.idevicesinc.sweetblue.utils</a></li> +</ul> +</div> +<div class="contentContainer"> +<h2 title="Class Hierarchy">Class Hierarchy</h2> +<ul> +<li type="circle">java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Backend_HistoricalDatabase_Default</span></a> (implements com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDatabase</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.html" title="class in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Backend_HistoricalDataList_Default</span></a> (implements com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical">Backend_HistoricalDataList</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.backend.<a href="com/idevicesinc/sweetblue/backend/Backend_Modules.html" title="class in com.idevicesinc.sweetblue.backend"><span class="typeNameLink">Backend_Modules</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BasicUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BasicUuidNameMap</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleAdvertisingPacket</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleAdvertisingSettings</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristic.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleCharacteristic</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDescriptor.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDescriptor</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.DefaultConnectionFailListener</span></a> (implements com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleDevice.ConnectionFailListener</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.WriteBuilder.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.WriteBuilder</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig.BondFilter.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.DefaultBondFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig.DefaultBondFilter</span></a> (implements com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue">BleDeviceConfig.BondFilter</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceIterator.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceIterator</span></a> (implements java.util.<a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><E>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.DefaultScanFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerConfig.DefaultScanFilter</span></a> (implements com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue">BleManagerConfig.ScanFilter</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.DeviceNameComparator.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerConfig.DeviceNameComparator</span></a> (implements java.util.<a href="http://d.android.com/reference/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a><T>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerConfig.ScanFilter.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>) +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer</span></a></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.ConnectionFailListener.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig</span></a> (implements java.lang.<a href="http://d.android.com/reference/java/lang/Cloneable.html?is-external=true" title="class or interface in java.lang">Cloneable</a>) +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerConfig</span></a></li> +</ul> +</li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultHistoricalDataLogFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.DefaultHistoricalDataLogFilter</span></a> (implements com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.HistoricalDataLogFilter</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultReconnectFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.DefaultReconnectFilter</span></a> (implements com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.ReconnectFilter</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.DefaultTaskTimeoutRequestFilter.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.DefaultTaskTimeoutRequestFilter</span></a> (implements com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue">BleNodeConfig.TaskTimeoutRequestFilter</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.HistoricalDataLogFilter.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.ReconnectFilter.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.TaskTimeoutRequestFilter.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BleScanInfo.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BleScanInfo</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.DefaultConnectionFailListener.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.DefaultConnectionFailListener</span></a> (implements com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue">BleServer.ConnectionFailListener</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.IncomingListener.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleService.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleService</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServices.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServices</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleStatuses.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleStatuses</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleTransaction</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.Auth.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleTransaction.Auth</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.Init.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleTransaction.Init</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.Ota.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleTransaction.Ota</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleWriteTransaction</span></a></li> +</ul> +</li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleWriteTransaction.FailListener.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.Please.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleWriteTransaction.WriteQueueListener.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Please.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler.BluetoothEnablerFilter.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.DefaultBluetoothEnablerFilter.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler.DefaultBluetoothEnablerFilter</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils">BluetoothEnabler.BluetoothEnablerFilter</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/DebugLogger.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">DebugLogger</span></a> (implements com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue">SweetLogger</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/DefaultLogger.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">DefaultLogger</span></a> (implements com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue">SweetLogger</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyCursor.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">EmptyCursor</span></a> (implements android.database.<a href="http://d.android.com/reference/android/database/Cursor.html?is-external=true" title="class or interface in android.database">Cursor</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EmptyIterator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">EmptyIterator</span></a><T> (implements java.util.<a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><E>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTime.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">EpochTime</span></a> (implements java.lang.<a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EpochTimeRange.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">EpochTimeRange</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Event.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Event</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.BondListener.BondEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.BondListener.BondEvent</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.ReadWriteEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ReadWriteListener.ReadWriteEvent</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig.BondFilter.CharacteristicEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.AssertListener.AssertEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.AssertListener.AssertEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.DiscoveryEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.DiscoveryListener.DiscoveryEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.ResetListener.ResetEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.ResetListener.ResetEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOhEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.UhOhListener.UhOhEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.ScanEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerConfig.ScanFilter.ScanEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.ConnectionFailListener.ConnectionFailEvent</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>) +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ConnectionFailListener.ConnectionFailEvent</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.ConnectionFailEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ConnectionFailListener.ConnectionFailEvent</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.HistoricalDataLoadListener.HistoricalDataLoadEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.HistoricalDataQueryListener.HistoricalDataQueryEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.HistoricalDataLogFilter.HistoricalDataLogEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.ReconnectEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.ReconnectFilter.ReconnectEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.AdvertisingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.AdvertisingListener.AdvertisingEvent</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.ExchangeEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ExchangeListener.ExchangeEvent</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.IncomingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.IncomingListener.IncomingEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.OutgoingEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.OutgoingListener.OutgoingEvent</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.ServiceAddEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ServiceAddListener.ServiceAddEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeEvent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">State.ChangeEvent</span></a><T_State> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.StateListener.StateEvent</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.StateChangeEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig.BondFilter.StateChangeEvent</span></a></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.StateListener.StateEvent</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.NativeStateListener.NativeStateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.NativeStateListener.NativeStateEvent</span></a></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.StateListener.StateEvent.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.StateListener.StateEvent</span></a></li> +</ul> +</li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/EventQueue.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">EventQueue</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.Please.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">ForEach_Breakable.Please</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalData.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalData</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsSelectColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_AllowsSelectColumn</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_AllowsFrom.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_AllowsFrom</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Function.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_Function</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Select.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_Select</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_SelectColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_SelectColumn</span></a></li> +</ul> +</li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_ClauseColumn.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_ClauseColumn</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_From.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_From</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataQuery.Part_Where.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataQuery.Part_Where</span></a></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/K_Util.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">K_Util</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/L_Util.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">L_Util</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/L_Util.ScanResult.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">L_Util.ScanResult</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/M_Util.html" title="class in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">M_Util</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_StringHandler.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">P_StringHandler</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/P_Task_BatteryLevel.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">P_Task_BatteryLevel</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.DefaultUpdateLoopFactory.html" title="class in com.idevicesinc.sweetblue"><span class="typeNameLink">PI_UpdateLoop.DefaultUpdateLoopFactory</span></a> (implements com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop.IUpdateLoopFactory</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Pointer.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Pointer</span></a><T></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/PresentData.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">PresentData</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils">FutureData</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">ReflectionUuidNameMap</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/SingleElementIterator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">SingleElementIterator</span></a><T> (implements java.util.<a href="http://d.android.com/reference/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a><E>)</li> +<li type="circle">java.lang.<a href="http://d.android.com/reference/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>) +<ul> +<li type="circle">java.lang.<a href="http://d.android.com/reference/java/lang/Error.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Error</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/WrongThreadError.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">WrongThreadError</span></a></li> +</ul> +</li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/TimeEstimator.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">TimeEstimator</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Unit.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Unit</span></a><T> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Distance.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Distance</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Interval.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Interval</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Percent.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Percent</span></a></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UpdateLoop.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">UpdateLoop</span></a> (implements com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue">PI_UpdateLoop</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Byte.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_Byte</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Reflection.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_Reflection</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Rssi.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_Rssi</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_ScanRecord.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_ScanRecord</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_State.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_State</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_String.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_String</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Utils_Time.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Utils_Time</span></a></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">UuidNameMap_ListWrapper</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils">UuidNameMap</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/Uuids.html" title="class in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">Uuids</span></a></li> +</ul> +</li> +</ul> +<h2 title="Interface Hierarchy">Interface Hierarchy</h2> +<ul> +<li type="circle">com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Backend_HistoricalDatabase</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Backend_HistoricalDataList</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.backend.historical.<a href="com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.AsyncLoadCallback.html" title="interface in com.idevicesinc.sweetblue.backend.historical"><span class="typeNameLink">Backend_HistoricalDataList.AsyncLoadCallback</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BitwiseEnum</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">State</span></a> (also extends com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.BondListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.BondListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.StateListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig.BondFilter</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.AssertListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.AssertListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.DiscoveryListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.NativeStateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.NativeStateListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.ResetListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.ResetListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.StateListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.UhOhListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerConfig.ScanFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerConfig.ScanFilter</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.ConnectionFailListener</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ConnectionFailListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ConnectionFailListener</span></a></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.HistoricalDataLoadListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.HistoricalDataQueryListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataFactory.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.HistoricalDataFactory</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.HistoricalDataLogFilter</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.ReconnectFilter</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.TaskTimeoutRequestFilter.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.TaskTimeoutRequestFilter</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.AdvertisingListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ExchangeListener</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.IncomingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.IncomingListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.OutgoingListener</span></a></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ServiceAddListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.StateListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.StateListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.FailListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleWriteTransaction.FailListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleWriteTransaction.WriteQueueListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleWriteTransaction.WriteQueueListener</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler.BluetoothEnablerFilter</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/ForEach_Breakable.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">ForEach_Breakable</span></a><T></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/ForEach_Returning.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">ForEach_Returning</span></a><T></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/ForEach_Void.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">ForEach_Void</span></a><T></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/FutureData.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">FutureData</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/GenericListener_Void.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">GenericListener_Void</span></a><T_Event> +<ul> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ReadWriteListener</span></a></li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataCursor.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataCursor</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.compat.<a href="com/idevicesinc/sweetblue/compat/L_Util.ScanCallback.html" title="interface in com.idevicesinc.sweetblue.compat"><span class="typeNameLink">L_Util.ScanCallback</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_BleScanner.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">PI_BleScanner</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_BleStatusHelper.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">PI_BleStatusHelper</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">PI_UpdateLoop</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.Callback.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">PI_UpdateLoop.Callback</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/PI_UpdateLoop.IUpdateLoopFactory.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">PI_UpdateLoop.IUpdateLoopFactory</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/SweetLogger.html" title="interface in com.idevicesinc.sweetblue"><span class="typeNameLink">SweetLogger</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">UsesCustomNull</span></a> +<ul> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">State</span></a> (also extends com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>)</li> +</ul> +</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UuidNameMap.html" title="interface in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">UuidNameMap</span></a></li> +</ul> +<h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2> +<ul> +<li type="circle">com.idevicesinc.sweetblue.annotations.<a href="com/idevicesinc/sweetblue/annotations/Advanced.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Advanced</span></a> (implements java.lang.annotation.<a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.annotations.<a href="com/idevicesinc/sweetblue/annotations/Alpha.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Alpha</span></a> (implements java.lang.annotation.<a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.annotations.<a href="com/idevicesinc/sweetblue/annotations/Immutable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Immutable</span></a> (implements java.lang.annotation.<a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.annotations.<a href="com/idevicesinc/sweetblue/annotations/Lambda.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Lambda</span></a> (implements java.lang.annotation.<a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.annotations.<a href="com/idevicesinc/sweetblue/annotations/Nullable.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Nullable</span></a> (implements java.lang.annotation.<a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.annotations.<a href="com/idevicesinc/sweetblue/annotations/UnitTest.html" title="annotation in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">UnitTest</span></a> (implements java.lang.annotation.<a href="http://d.android.com/reference/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li> +</ul> +<h2 title="Enum Hierarchy">Enum Hierarchy</h2> +<ul> +<li type="circle">java.lang.<a href="http://d.android.com/reference/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a> +<ul> +<li type="circle">java.lang.<a href="http://d.android.com/reference/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a><E> (implements java.lang.<a href="http://d.android.com/reference/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>, java.io.<a href="http://d.android.com/reference/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>) +<ul> +<li type="circle">com.idevicesinc.sweetblue.annotations.<a href="com/idevicesinc/sweetblue/annotations/Nullable.Prevalence.html" title="enum in com.idevicesinc.sweetblue.annotations"><span class="typeNameLink">Nullable.Prevalence</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingPacket.Option.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleAdvertisingPacket.Option</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleAdvertisingMode.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleAdvertisingSettings.BleAdvertisingMode</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleAdvertisingSettings.BleTransmissionPower.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleAdvertisingSettings.BleTransmissionPower</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristicPermission.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleCharacteristicPermission</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleCharacteristicProperty.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleCharacteristicProperty</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleConnectionPriority.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleConnectionPriority</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDescriptorPermission.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDescriptorPermission</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BitwiseEnum.html" title="interface in com.idevicesinc.sweetblue.utils">BitwiseEnum</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ReadWriteListener.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ReadWriteListener.Type</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ReadWriteListener.Target.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ReadWriteListener.Target</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ConnectionFailListener.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.ConnectionFailListener.Timing.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.ConnectionFailListener.Timing</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDevice.BondListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDevice.BondListener.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceConfig.BondFilter.CharacteristicEventType.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceConfig.BondFilter.CharacteristicEventType</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceOrigin.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceOrigin</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleDeviceState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleDeviceState</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.DiscoveryListener.LifeCycle.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.DiscoveryListener.LifeCycle</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.UhOh.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.UhOhListener.UhOh</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.UhOhListener.Remedy.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.UhOhListener.Remedy</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManager.ResetListener.Progress.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManager.ResetListener.Progress</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleManagerState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleManagerState</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.ConnectionFailListener.AutoConnectUsage.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.ConnectionFailListener.AutoConnectUsage</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataLoadListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.HistoricalDataLoadListener.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNode.HistoricalDataQueryListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNode.HistoricalDataQueryListener.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.HistoricalDataLogFilter.Source.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.HistoricalDataLogFilter.Source</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleNodeConfig.ReconnectFilter.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleNodeConfig.ReconnectFilter.Type</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleScanMode.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleScanMode</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleScanPower.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleScanPower</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Target.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ExchangeListener.Target</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ExchangeListener.Type.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ExchangeListener.Type</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.OutgoingListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.OutgoingListener.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.AdvertisingListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.AdvertisingListener.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ConnectionFailListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ConnectionFailListener.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServer.ServiceAddListener.Status.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServer.ServiceAddListener.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleServerState.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleServerState</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.html" title="interface in com.idevicesinc.sweetblue.utils">State</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTask.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleTask</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.<a href="com/idevicesinc/sweetblue/BleTransaction.EndReason.html" title="enum in com.idevicesinc.sweetblue"><span class="typeNameLink">BleTransaction.EndReason</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Stage.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler.BluetoothEnablerFilter.Stage</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/BluetoothEnabler.BluetoothEnablerFilter.Status.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">BluetoothEnabler.BluetoothEnablerFilter.Status</span></a> (implements com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/UsesCustomNull.html" title="interface in com.idevicesinc.sweetblue.utils">UsesCustomNull</a>)</li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/HistoricalDataColumn.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">HistoricalDataColumn</span></a></li> +<li type="circle">com.idevicesinc.sweetblue.utils.<a href="com/idevicesinc/sweetblue/utils/State.ChangeIntent.html" title="enum in com.idevicesinc.sweetblue.utils"><span class="typeNameLink">State.ChangeIntent</span></a></li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="overview-summary.html">Overview</a></li> +<li>Package</li> +<li>Class</li> +<li class="navBarCell1Rev">Tree</li> +<li><a href="deprecated-list.html">Deprecated</a></li> +<li><a href="index-all.html">Index</a></li> +<li><a href="help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev</li> +<li>Next</li> +</ul> +<ul class="navList"> +<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li> +<li><a href="overview-tree.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/docs/api/package-list b/dev/android/sweetblue/docs/api/package-list new file mode 100644 index 0000000000000000000000000000000000000000..84f48e1dfcb55c4894884796ba9f98adba4fe907 --- /dev/null +++ b/dev/android/sweetblue/docs/api/package-list @@ -0,0 +1,6 @@ +com.idevicesinc.sweetblue +com.idevicesinc.sweetblue.annotations +com.idevicesinc.sweetblue.backend +com.idevicesinc.sweetblue.backend.historical +com.idevicesinc.sweetblue.compat +com.idevicesinc.sweetblue.utils diff --git a/dev/android/sweetblue/docs/api/script.js b/dev/android/sweetblue/docs/api/script.js new file mode 100644 index 0000000000000000000000000000000000000000..b34635693143ac308ba6d22c29554e5631f64b74 --- /dev/null +++ b/dev/android/sweetblue/docs/api/script.js @@ -0,0 +1,30 @@ +function show(type) +{ + count = 0; + for (var key in methods) { + var row = document.getElementById(key); + if ((methods[key] & type) != 0) { + row.style.display = ''; + row.className = (count++ % 2) ? rowColor : altColor; + } + else + row.style.display = 'none'; + } + updateTabs(type); +} + +function updateTabs(type) +{ + for (var value in tabs) { + var sNode = document.getElementById(tabs[value][0]); + var spanNode = sNode.firstChild; + if (value == type) { + sNode.className = activeTableTab; + spanNode.innerHTML = tabs[value][1]; + } + else { + sNode.className = tableTab; + spanNode.innerHTML = "<a href=\"javascript:show("+ value + ");\">" + tabs[value][1] + "</a>"; + } + } +} diff --git a/dev/android/sweetblue/docs/api/serialized-form.html b/dev/android/sweetblue/docs/api/serialized-form.html new file mode 100644 index 0000000000000000000000000000000000000000..3a0a60f5d98344f2b40da6da604ff2476070ec0b --- /dev/null +++ b/dev/android/sweetblue/docs/api/serialized-form.html @@ -0,0 +1,135 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (1.8.0_112-release) on Thu Jan 26 13:09:06 EST 2017 --> +<title>Serialized Form (SweetBlue)</title> +<meta name="date" content="2017-01-26"> +<link rel="stylesheet" type="text/css" href="doc_style.css" title="Style"> +<script type="text/javascript" src="script.js"></script> +</head> +<body> +<script type="text/javascript"><!-- + try { + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Serialized Form (SweetBlue)"; + } + } + catch(err) { + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar.top"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.top.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="overview-summary.html">Overview</a></li> +<li>Package</li> +<li>Class</li> +<li><a href="overview-tree.html">Tree</a></li> +<li><a href="deprecated-list.html">Deprecated</a></li> +<li><a href="index-all.html">Index</a></li> +<li><a href="help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev</li> +<li>Next</li> +</ul> +<ul class="navList"> +<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li> +<li><a href="serialized-form.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<div class="header"> +<h1 title="Serialized Form" class="title">Serialized Form</h1> +</div> +<div class="serializedFormContainer"> +<ul class="blockList"> +<li class="blockList"> +<h2 title="Package">Package com.idevicesinc.sweetblue.utils</h2> +<ul class="blockList"> +<li class="blockList"><a name="com.idevicesinc.sweetblue.utils.WrongThreadError"> +<!-- --> +</a> +<h3>Class <a href="com/idevicesinc/sweetblue/utils/WrongThreadError.html" title="class in com.idevicesinc.sweetblue.utils">com.idevicesinc.sweetblue.utils.WrongThreadError</a> extends <a href="http://d.android.com/reference/java/lang/Error.html?is-external=true" title="class or interface in java.lang">Error</a> implements Serializable</h3> +</li> +</ul> +</li> +</ul> +</div> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar.bottom"> +<!-- --> +</a> +<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div> +<a name="navbar.bottom.firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="overview-summary.html">Overview</a></li> +<li>Package</li> +<li>Class</li> +<li><a href="overview-tree.html">Tree</a></li> +<li><a href="deprecated-list.html">Deprecated</a></li> +<li><a href="index-all.html">Index</a></li> +<li><a href="help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li>Prev</li> +<li>Next</li> +</ul> +<ul class="navList"> +<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li> +<li><a href="serialized-form.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<a name="skip.navbar.bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +</body> +</html> diff --git a/dev/android/sweetblue/jars/sweetblue_2_51_58-javadoc.jar b/dev/android/sweetblue/jars/sweetblue_2_51_58-javadoc.jar new file mode 100644 index 0000000000000000000000000000000000000000..eb495aefe26c6cea1a15d2ed00a50ee8063b6692 Binary files /dev/null and b/dev/android/sweetblue/jars/sweetblue_2_51_58-javadoc.jar differ diff --git a/dev/android/sweetblue/jars/sweetblue_2_51_58-sources.jar b/dev/android/sweetblue/jars/sweetblue_2_51_58-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..7144cc70cee251dbc63acba80818d1e08b4298d4 Binary files /dev/null and b/dev/android/sweetblue/jars/sweetblue_2_51_58-sources.jar differ diff --git a/dev/android/sweetblue/jars/sweetblue_2_51_58-sources.jar.asc b/dev/android/sweetblue/jars/sweetblue_2_51_58-sources.jar.asc new file mode 100644 index 0000000000000000000000000000000000000000..93ddd46ac1fd0b40d41ea5de490953674f6dbca1 --- /dev/null +++ b/dev/android/sweetblue/jars/sweetblue_2_51_58-sources.jar.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: BCPG v1.51 + +iQIcBAABAgAGBQJYijrpAAoJEAoETVz0BrT+DVgQAJbF83ipii5InRO4IdtWTNgH +XN++pZrgklx2FDvvVUDbmWs+KWcVNxbLmLdJBhzyPp2F40+J4R+8CsyqHTDR7lM6 +19SmEK5bagI4WkLUfCenA/ULTPxWgQbZ/WD+7/15YFU73qiKx/5Nss4m55SpXW00 +xrgX2I/49vzf5Q4LG2HGYxyFJigmpKIeyrm6Dr1d0QuWTuvRR18v+FCbke20BQ+E +4ntmO02E5jIIWzmBdHFlkeo+VozYJbqeuQ6GupSyKidc3xb18EFTTO3H6aXNWLA4 +WmXWVshRDTfF9Gh+OKXtz3ju/Zm5EemHP6EuAY7zwGYQnY2aB2s99Up9oo9PD/YZ +G52iYDGDrT29S+kuQrEzIwIAee7itSRmjUa41Iw6jX+9TGEkmY3KUXnx/GTbTyYG +GEzBiYAJROFm5fztqTwApq9VkS9VpX/APzA3rIvLQuBbY2glZL+wpIYBwUmImJ1D +NXM0jL6Jplr/pd0srq1UzXhwnZkUd/xBs91hOkXECTqn6EACsCI9YQ8ErhuALMkR +l01LCR47XNYTxjl/cqCptKRFB8OmSFQ0HH97vVzmFfPl5k2kZ11OmX634+ZAD1eU ++PsHqMDEB6tL5ffOaPg/RCDps6EWtwYynUEXs750yCfnoCcgZcDsU+X3T6E/iqt9 +sbjdBfuEQv27A01E1PgK +=rBLc +-----END PGP SIGNATURE----- diff --git a/dev/android/sweetblue/jars/sweetblue_2_51_58.jar b/dev/android/sweetblue/jars/sweetblue_2_51_58.jar new file mode 100644 index 0000000000000000000000000000000000000000..dc5f6329dbfe534d9c8ee98f288e1cf4c4137d17 Binary files /dev/null and b/dev/android/sweetblue/jars/sweetblue_2_51_58.jar differ diff --git a/dev/android/sweetblue/res/values-cs/strings.xml b/dev/android/sweetblue/res/values-cs/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..8917877b8b66bce31a4b80ee3529e0ebedc01ced --- /dev/null +++ b/dev/android/sweetblue/res/values-cs/strings.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<resources> + <string name="sb_denying_location_access">Zakázání přístupu ke službám zjišťování polohy znamená, že nebude fungovat nízkoenergetické vyhledávání.</string> + <string name="sb_app_needs_permission">Aplikace vyžaduje v souboru AndroidManifest.xml oprávnění android.permission.ACCESS_COARSE_LOCATION nebo android.permission.ACCESS_FINE_LOCATION!</string> + <string name="sb_location_permission_toast">Klikněte na tlačítko Oprávnění, povolte položku Poloha a stiskněte dvakrát tlačítko Zpět.</string> + <string name="sb_requires_location_permission">Systém Android Marshmallow (6.0+) požaduje k vyhledávání zařízení Bluetooth oprávnění Poloha. Kliknutím na tlačítko Přijmout povolte oprávnění Poloha.</string> + <string name="sb_requires_location_permission_and_services">Systém Android Marshmallow (6.0+) požaduje, aby aplikace, která vyhledává zařízení Bluetooth, měla oprávnění Poloha.\n\nSystém Marshmallow rovněž požaduje ke zlepšení zjišťování zařízení Bluetooth služby zjišťování polohy. Tyto služby nejsou nutné k používání této aplikace, ale jsou doporučeny k lepšímu zjišťování zařízení.\n\nKliknutím na tlačítko Přijmout povolte oprávnění Poloha a služby zjišťování polohy.</string> + <string name="sb_location_services_needs_enabling">Systém Android Marshmallow (6.0+) požaduje ke zlepšení vyhledávání zařízení Bluetooth služby zjišťování polohy. Tyto služby nejsou nutné, ale je doporučeno je zapnout, aby bylo možné zlepšit zjišťování zařízení.</string> + <string name="sb_location_services_toast">Povolte služby zjišťování polohy a stiskněte tlačítko Zpět.</string> + <string name="sb_ok">OK</string> + <string name="sb_deny">Odmítnout</string> + <string name="sb_accept">Přijmout</string> +</resources> \ No newline at end of file diff --git a/dev/android/sweetblue/res/values-da/strings.xml b/dev/android/sweetblue/res/values-da/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..b4db934aa1ef2af7dc2a1ae14d77dc4450ad5875 --- /dev/null +++ b/dev/android/sweetblue/res/values-da/strings.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<resources> + <string name="sb_denying_location_access">Hvis du nægter adgang til placering, virker lavenergiscanning ikke.</string> + <string name="sb_app_needs_permission">Appen har brug for android.permission.ACCESS_COARSE_LOCATION eller android.permission.ACCESS_FINE_LOCATION i dens AndroidManifest.xml!</string> + <string name="sb_location_permission_toast">Klik på knappen Tilladelser, aktiver Placering, og tryk så to gange på tilbage.</string> + <string name="sb_requires_location_permission">Android Marshmallow (6.0+) kræver placeringstilladelse for at kunne scanne for Bluetooth-enheder. Accepter for at give placeringstilladelse.</string> + <string name="sb_requires_location_permission_and_services">Android Marshmallow (6.0+) kræver placeringstilladelse, for at appen kan scanne for Bluetooth-enheder.\n\nMarshmallow kræver også placeringsservices for at forbedre opdagelse af Bluetooth-enheder. Selvom det ikke kræves til brug i denne app, anbefales det for bedre at kunne opdage enheder.\n\nAccepter for at give placeringstilladelse og tillade placeringsservices.</string> + <string name="sb_location_services_needs_enabling">Android Marshmallow (6.0+) kræver placeringsservices for at forbedre scanning for Bluetooth-enheder. Det er ikke obligatorisk, men det anbefales at slå placeringsservices til for at forbedre opdagelse af enheder.</string> + <string name="sb_location_services_toast">Aktiver placeringsservices, og tryk så på tilbage.</string> + <string name="sb_ok">OK</string> + <string name="sb_deny">Nægt</string> + <string name="sb_accept">Accepter</string> +</resources> \ No newline at end of file diff --git a/dev/android/sweetblue/res/values-de/strings.xml b/dev/android/sweetblue/res/values-de/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..7e92523836147cdd1dc6caf3406169596c532dad --- /dev/null +++ b/dev/android/sweetblue/res/values-de/strings.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<resources> + <string name="sb_denying_location_access">Wenn Sie den Zugriff auf Standortdienste verweigern, können mit BLE keine Geräte erkannt werden.</string> + <string name="sb_app_needs_permission">Die App erfordert android.permission.ACCESS_COARSE_LOCATION oder android.permission.ACCESS_FINE_LOCATION in AndroidManifest.xml!</string> + <string name="sb_location_permission_toast">Bitte klicken Sie auf den Button der Genehmigungen, erlauben Sie den Zugriff auf die Standortdienste und drücken Sie dann zweimal auf die Zurück-Taste.</string> + <string name="sb_requires_location_permission">Bei Android Marshmallow (ab 6.0) ist der Zugriff auf Standortdienste erforderlich, um Bluetooth-Geräte zu finden. Bitte gewähren Sie den Zugriff.</string> + <string name="sb_requires_location_permission_and_services">Bei Android Marshmallow (ab 6.0) ist der Zugriff auf Standortdienste erforderlich, um Bluetooth-Geräte zu finden.\n\nBei Marshmallow ist der Zugriff auf Standortdienste hilfreich, jedoch nicht zwingend für die Verwendung der App erforderlich. Er wird empfohlen, um Geräte besser zu erkennen.\n\nBitte gewähren Sie den Zugriff auf Standortdienste.</string> + <string name="sb_location_services_needs_enabling">Bei Android Marshmallow (ab 6.0) ist der Zugriff auf Standortdienste hilfreich, jedoch nicht zwingend für die Verwendung der App erforderlich. Er wird empfohlen, um Geräte über Bluetooth besser zu erkennen.</string> + <string name="sb_location_services_toast">Bitte gewähren Sie den Zugriff auf Standortdienste und drücken Sie dann auf die Zurück-Taste.</string> + <string name="sb_ok">OK</string> + <string name="sb_deny">Ablehnen</string> + <string name="sb_accept">Akzeptieren</string> +</resources> \ No newline at end of file diff --git a/dev/android/sweetblue/res/values-es/strings.xml b/dev/android/sweetblue/res/values-es/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..d0d75f76780dd10a36a03dc2e55221551b9cfc69 --- /dev/null +++ b/dev/android/sweetblue/res/values-es/strings.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<resources> + <string name="sb_denying_location_access">Si se deniega el acceso a la localización el escaneo de baja energía no funcionará.</string> + <string name="sb_app_needs_permission">La aplicación necesita android.permission.ACCESS_COARSE_LOCATION o android.permission.ACCESS_FINE_LOCATION en su AndroidManifest.xml.</string> + <string name="sb_location_permission_toast">Haz clic en el botón Permisos, activa la Localización y luego pulsa atrás dos veces.</string> + <string name="sb_requires_location_permission">Android Marshmallow (6.0+) necesita permiso de localización para poder escanear en busca de dispositivos Bluetooth. Acepta este mensaje para permitir el permiso de localización.</string> + <string name="sb_requires_location_permission_and_services">Android Marshmallow (6.0+) necesita permiso de localización para la aplicación para que se pueda escanear en busca de dispositivos Bluetooth.\n\nMarshmallow también necesita los servicios de localización para mejorar la detección de dispositivos Bluetooth. A pesar de que su uso no es obligatorio en esta aplicación, se recomienda para mejorar la detección de dispositivos.\n\nAcepta este mensaje para permitir el permiso y los servicios de localización.</string> + <string name="sb_location_services_needs_enabling">Android Marshmallow (6.0+) necesita los servicios de localización para el escaneo de dispositivos Bluetooth de baja energía. Se recomienda encarecidamente activar los servicios de localización para mejorar la detección de dispositivos.</string> + <string name="sb_location_services_toast">Activa los servicios de localización y luego pulsa atrás.</string> + <string name="sb_ok">Aceptar</string> + <string name="sb_deny">Denegar</string> + <string name="sb_accept">Aceptar</string> +</resources> \ No newline at end of file diff --git a/dev/android/sweetblue/res/values-fr-rCA/strings.xml b/dev/android/sweetblue/res/values-fr-rCA/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..b5b3930e2487bd3d25e0f57a850b89b5e555b3b5 --- /dev/null +++ b/dev/android/sweetblue/res/values-fr-rCA/strings.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<resources> + <string name="sb_denying_location_access">Refuser l\'accès de localisation signifie que le balayage à faible énergie ne fonctionnera pas.</string> + <string name="sb_app_needs_permission">L\'application nécessite : android.permission.ACCESS_COARSE_LOCATION or android.permission.ACCESS_FINE_LOCATION in its AndroidManifest.xml!</string> + <string name="sb_location_permission_toast">Veuillez appuyer sur la touche des permissions, ensuite activer la localisation, puis appuyer sur le retour deux fois.</string> + <string name="sb_requires_location_permission">Android Marshmallow (6.0+) requiert la permission de localisation afin de pouvoir balayer pour des appareils Bluetooth. Veuillez accepter pour autoriser la permission de localisation. </string> + <string name="sb_requires_location_permission_and_services">Android Marshmallow (6.0+) requiert la permission de localisation afin de pouvoir balayer pour des appareils Bluetooth.\n\nMarshmallow requiert aussi les services de localisation pour améliorer la découverte d\'appareils Bluetooth. Bien qu\'elle ne soit pas requise pour l\'utilisation de cette application, elle est recommandée afin de mieux découvrir des appareils.\n\nVeuillez accepter afin d\'autoriser la permission et les services de localisation.</string> + <string name="sb_location_services_needs_enabling">Android Marshmallow (6.0+) requiert les services de localisation pour le balayage amélioré d\'appareils Bluetooth. Il est recommandé que les services de localisation soient activés pour améliorer la découverte d\'appareils.</string> + <string name="sb_location_services_toast">Veuillez activer la localisation des services puis appuyez sur le retour.</string> + <string name="sb_ok">OK</string> + <string name="sb_deny">Refuser</string> + <string name="sb_accept">Accepter</string> +</resources> \ No newline at end of file diff --git a/dev/android/sweetblue/res/values-fr/strings.xml b/dev/android/sweetblue/res/values-fr/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..b0555111ac61f5ba2816747a72ec2600a604bdd8 --- /dev/null +++ b/dev/android/sweetblue/res/values-fr/strings.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<resources> + <string name="sb_denying_location_access">Refuser l\'accès à la position empêche le fonctionnement de l\'analyse \"énergie basse\".</string> + <string name="sb_app_needs_permission">L\'application doit android.permission.ACCESS_COARSE_LOCATION ou android.permission.ACCESS_FINE_LOCATION dans son AndroidManifest.xml !</string> + <string name="sb_location_permission_toast">Cliquez sur le bouton Autorisations, autorisez les services de localisation puis appuyez deux fois sur Retour.</string> + <string name="sb_requires_location_permission">Android Marshmallow (6.0+) demande l\'Autorisation des Services de localisation pour pouvoir rechercher des appareils Bluetooth. Veuillez autoriser les services de localisation.</string> + <string name="sb_requires_location_permission_and_services">Android Marshmallow (6.0+) demande l\'autorisation des Services de localisation pour que l\'application puisse détecter les appareils Bluetooth.\n\nMarshmallow demande également l\'activation des Services de localisation pour améliorer la détection d\'appareils Bluetooth. Si l\'activation des services de localisation n\'est pas obligatoire, elle est conseillée pour améliorer la détection d\'appareils.\n\nVeuillez autoriser les Services de localisation.</string> + <string name="sb_location_services_needs_enabling">Android Marshmallow (6.0+) demande l\'autorisation des Services de localisation pour rechercher des appareils Bluetooth avec plus d\'efficacité. Si l\'activation des services de localisation n\'est pas obligatoire, elle est conseillée pour améliorer la détection d\'appareils.</string> + <string name="sb_location_services_toast">Activez les services de localisation puis appuyez sur Retour.</string> + <string name="sb_ok">OK</string> + <string name="sb_deny">Refuser</string> + <string name="sb_accept">Accepter</string> +</resources> \ No newline at end of file diff --git a/dev/android/sweetblue/res/values-it/strings.xml b/dev/android/sweetblue/res/values-it/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..cf3ccb1cd18b9fadd46e38c2de30f065217c3b95 --- /dev/null +++ b/dev/android/sweetblue/res/values-it/strings.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<resources> + <string name="sb_denying_location_access">Se rifiuti l\'accesso alla tua posizione, la scansione a basa potenza non funzionerà.</string> + <string name="sb_app_needs_permission">L\'app necessita di android.permission.ACCESS_COARSE_LOCATION o android.permission.ACCESS_FINE_LOCATION in AndroidManifest.xml!</string> + <string name="sb_location_permission_toast">Fare clic sul pulsante Autorizzazioni, abilitare Posizione e quindi premere due volte su Indietro.</string> + <string name="sb_requires_location_permission">Android Marshmallow (6.0+) richiede l\'autorizzazione alla geolocalizzazione per eseguire la scansione dei dispositivi Bluetooth. Si prega di fornire tale autorizzazione.</string> + <string name="sb_requires_location_permission_and_services">Android Marshmallow (6.0+) richiede l\'autorizzazione alla geolocalizzazione per eseguire la scansione dei dispositivi Bluetooth.\n\nMarshmallow richiede inoltre i servizi di localizzazione per migliorare la rilevazione dei dispositivi Bluetooth. Tale autorizzazione non è necessaria per l\'app, ma è consigliata per migliorare l\'individuazione dei dispositivi.\n\nSi prega di fornire l\'autorizzazione e di abilitare i servizi.</string> + <string name="sb_location_services_needs_enabling">Android Marshmallow (6.0+) richiede i servizi di localizzazione per migliorare la scansione dei dispositivi Bluetooth. È consigliabile, anche se non obbligatorio, abilitare questi servizi per migliorare la rilevazione dei dispositivi.</string> + <string name="sb_location_services_toast">Abilitare i servizi di localizzazione e quindi premere Indietro</string> + <string name="sb_ok">OK</string> + <string name="sb_deny">Rifiuta</string> + <string name="sb_accept">Accetta</string> +</resources> \ No newline at end of file diff --git a/dev/android/sweetblue/res/values-ja/strings.xml b/dev/android/sweetblue/res/values-ja/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..45e0a75bde8b519de78021c30ac24bc0abcdcea7 --- /dev/null +++ b/dev/android/sweetblue/res/values-ja/strings.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<resources> + <string name="sb_denying_location_access">位置情報へのアクセスを許可しない場合、省エネルギーのスキャン機能はご利用いただけません。</string> + <string name="sb_app_needs_permission">android.permission.ACCESS_COARSE_LOCATIONまたはandroid.permission.ACCESS_FINE_LOCATIONがアプリのAndroidManifest.xmlに含まれている必要があります。</string> + <string name="sb_location_permission_toast">パーミッションボタンをクリックしてから位置情報をオンにし、2回押して戻ります。</string> + <string name="sb_requires_location_permission">Android Marshmallow (6.0+)では、Bluetooth端末をスキャンする際に位置情報のパーミッション(許可)が必要となります。必ず許可するようにしてください。</string> + <string name="sb_requires_location_permission_and_services">Android Marshmallow (6.0+)では、アプリ内でBluetooth端末をスキャンする際に位置情報のパーミッション(許可)が必要となります。\n\nMarshmallowではさらに、Bluetooth端末をより検出しやすくするため、位置情報サービスの使用が求められます。位置情報サービスはアプリ内では必須ではありませんが、端末を検出しやすくするため使用が推奨されています。\n\n位置情報のパーミッションとサービスを許可するようにしてください。</string> + <string name="sb_location_services_needs_enabling">Android Marshmallow (6.0+)では、Bluetooth省エネ端末のスキャンの向上のため、位置情報サービスが必要となります。端末の検出をより行いやすくするため、位置情報サービスをオンにすることを強くお勧めします。</string> + <string name="sb_location_services_toast">位置情報サービスをオンにしてから戻ってください。</string> + <string name="sb_ok">OK</string> + <string name="sb_deny">拒否</string> + <string name="sb_accept">許可</string> +</resources> \ No newline at end of file diff --git a/dev/android/sweetblue/res/values-ko/strings.xml b/dev/android/sweetblue/res/values-ko/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..7a368c3c630b7b81bd0cd26f14d6a2a1c88b9a8d --- /dev/null +++ b/dev/android/sweetblue/res/values-ko/strings.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<resources> + <string name="sb_denying_location_access">위치 서비스를 사용하지 않으면 저전력 스캔이 불가능합니다.</string> + <string name="sb_app_needs_permission">앱의 AndroidManifest.xml 안에 android.permission.ACCESS_COARSE_LOCATION 또는 android.permission.ACCESS_FINE_LOCATION이 필요합니다!</string> + <string name="sb_location_permission_toast">허용 버튼을 클릭하고 위치 서비스를 켠 후 뒤로 가기를 두 번 누르세요.</string> + <string name="sb_requires_location_permission">Android Marshmallow(6.0+)가 블루투스 기기를 스캔하려면 위치 서비스를 허용해야 합니다. 위치 서비스 허용을 선택해주세요.</string> + <string name="sb_requires_location_permission_and_services">Android Marshmallow(6.0+)가 블루투스 기기를 스캔하려면 위치 서비스를 허용해야 합니다.\n\n또한 Marshmallow가 블루투스 기기 스캔 성능을 향상시키려면 위치 서비스가 필요합니다. 이 앱에서 반드시 필요하지는 않으나 스캔 성능 향상에 권장합니다.\n\n위치 서비스 허용 및 서비스 사용을 선택해주세요.</string> + <string name="sb_location_services_needs_enabling">Android Marshmallow(6.0+)가 블루투스 기기를 보다 정확히 스캔하려면 위치 서비스를 허용해야 합니다. 이 앱에서 반드시 필요하지는 않으나 스캔 성능 향상에 권장합니다.</string> + <string name="sb_location_services_toast">위치 서비스를 켠 후 뒤로 가기를 누르세요.</string> + <string name="sb_ok">확인</string> + <string name="sb_deny">허용 안함</string> + <string name="sb_accept">허용</string> +</resources> \ No newline at end of file diff --git a/dev/android/sweetblue/res/values-nl/strings.xml b/dev/android/sweetblue/res/values-nl/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..13c6b4ddcba70b85df20c71efa44eb6e5598f4fe --- /dev/null +++ b/dev/android/sweetblue/res/values-nl/strings.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<resources> + <string name="sb_denying_location_access">Zonder locatietoegang werkt Low Energy-scannen niet.</string> + <string name="sb_app_needs_permission">App vereist android.permission.ACCESS_COARSE_LOCATION of android.permission.ACCESS_FINE_LOCATION in AndroidManifest.xml!</string> + <string name="sb_location_permission_toast">Klik op de knop Toestemmingen, schakel Locatie in en druk vervolgens tweemaal op terug.</string> + <string name="sb_requires_location_permission">Android Marshmallow (6.0+) vereist Locatietoestemming om te scannen naar Bluetooth-apparaten. Accepteer om Locatietoestemming toe te staan.</string> + <string name="sb_requires_location_permission_and_services">Android Marshmallow (6.0+) vereist Locatietoestemming voor de app om te scannen naar Bluetooth-apparaten.\n\nMarshmallow vereist ook Locatieservices om het detecteren van Bluetooth-apparaten te verbeteren. Het is niet vereist voor gebruik in de app, het wordt wel aanbevolen om apparaten beter te detecteren.\n\nAccepteer om Locatietoestemming- en services toe te staan.</string> + <string name="sb_location_services_needs_enabling">Android Marshmallow (6.0+) vereist Locatieservices om beter Bluetooth-apparaten te kunnen detecteren. We raden de inschakeling van Locatieservices aan om apparaatdetectie te verbeteren.</string> + <string name="sb_location_services_toast">Schakel Locatieservices in en druk op terug.</string> + <string name="sb_ok">OK</string> + <string name="sb_deny">Afwijzen</string> + <string name="sb_accept">Accepteren</string> +</resources> \ No newline at end of file diff --git a/dev/android/sweetblue/res/values-nn/strings.xml b/dev/android/sweetblue/res/values-nn/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..f6cb22ff310fcaed84e4f4617e1351698f934a8f --- /dev/null +++ b/dev/android/sweetblue/res/values-nn/strings.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<resources> + <string name="sb_denying_location_access">Hvis du avslår stedstjenester, vil du ikke kunne bruke enhetsoppdagelse på lav energi.</string> + <string name="sb_app_needs_permission">Appen trenger android.permission.ACCESS_COARSE_LOCATION eller android.permission.ACCESS_FINE_LOCATION i AndroidManifest.xml!</string> + <string name="sb_location_permission_toast">Vennligst klikk på knappen Tillatelser, deretter aktiver Sted og trykk tilbake to ganger.</string> + <string name="sb_requires_location_permission">Android Marshmallow (6.0+) krever Stedstjenester for å kunne se etter andre Bluetooth-enheter. Vennligst godta å bruke Stedstjenester.</string> + <string name="sb_requires_location_permission_and_services">Android Marshmallow (6.0+) krever Stedstillatelse for å kunne se etter andre Bluetooth-enheter.\n\nMarshmallow krever også Stedstjenester for å forbedre Bluetooth-scanning. Mens det imidlertid ikke er påkrevd for å bruke denne applikasjonen, er det anbefalt for bedre oppdagelse av andre enheter.\n\nVennligst godta å bruke Stedstjenester.</string> + <string name="sb_location_services_needs_enabling">Android Marshmallow (6.0+) krever Stedstjenester for forbedret Bluetooth-scanning. Mens det imidlertid ikke er påkrevd, er det anbefalt å slå denne innstillingen på for å forbedre enhetsoppdagelse.</string> + <string name="sb_location_services_toast">Vennligst tillat Stedstjenester og så trykk tilbake.</string> + <string name="sb_ok">OK</string> + <string name="sb_deny">Avslå</string> + <string name="sb_accept">Godta</string> +</resources> \ No newline at end of file diff --git a/dev/android/sweetblue/res/values-pl/strings.xml b/dev/android/sweetblue/res/values-pl/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..59649aa886ff03bc37a613160784615ed915c93c --- /dev/null +++ b/dev/android/sweetblue/res/values-pl/strings.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<resources> + <string name="sb_denying_location_access">Odrzucenie dostępu do lokalizacji spowoduje brak możliwości skanowania z ograniczonym poborem energii.</string> + <string name="sb_app_needs_permission">Aplikacja potrzebuje android.permission.ACCESS_COARSE_LOCATION or android.permission.ACCESS_FINE_LOCATION in its AndroidManifest.xml!</string> + <string name="sb_location_permission_toast">Proszę nacisnąć przycisk Pozwolenia, po czym włączyć opcję Lokalizacja i nacisnąć Wróć dwa razy.</string> + <string name="sb_requires_location_permission">Android Marshmallow (6.0+) potrzebuje zgody na dostęp do lokalizacji, aby móc skanować urządzenia Bluetooth. Proszę wyrazić zgodę na dostęp do lokalizacji.</string> + <string name="sb_requires_location_permission_and_services">Android Marshmallow (6.0+) potrzebuje zgody na dostęp do lokalizacji, aby móc skanować urządzenia Bluetooth.\n\nMarshmallow również potrzebuje dostępu do usług lokalizacyjnych, aby zapewnić lepsze wyszukiwanie urządzeń Bluetooth. Wyrażenie zgody na dostęp do lokalizacji nie jest wymagane do korzystania z tej aplikacji, jednak zalecane, aby zapewnić lepsze wyszukiwanie urządzeń.\n\nProszę wyrazić zgodę na dostęp do lokalizacji i na usługi lokalizacyjne.</string> + <string name="sb_location_services_needs_enabling">Android Marshmallow (6.0+) potrzebuje zgody na dostęp do lokalizacji, aby zapewnić lepsze skanowanie urządzeń Bluetooth. Wyrażenie zgody na dostęp do lokalizacji nie jest wymagane, jednak zaleca się włączenie usług lokalizacyjnych, aby zapewnić lepsze wyszukiwanie urządzeń.</string> + <string name="sb_location_services_toast">Proszę włączyć Usługi lokalizacyjne, po czym nacisnąć \"Wróć\" dwa razy.</string> + <string name="sb_ok">OK</string> + <string name="sb_deny">Odmów</string> + <string name="sb_accept">Akceptuj</string> +</resources> \ No newline at end of file diff --git a/dev/android/sweetblue/res/values-pt-rBR/strings.xml b/dev/android/sweetblue/res/values-pt-rBR/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..117b9197a942dd309b2914a03a6a0c01f2391d11 --- /dev/null +++ b/dev/android/sweetblue/res/values-pt-rBR/strings.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<resources> + <string name="sb_denying_location_access">Recusar o acesso à localização fará com que o escaneamento com pouca energia não funcione.</string> + <string name="sb_app_needs_permission">O aplicativo precisa de android.permission.ACCESS_COARSE_LOCATION ou android.permission.ACCESS_FINE_LOCATION iem seu AndroidManifest.xml.</string> + <string name="sb_location_permission_toast">Clique no botão Permissões, ative a Localização e pressione Voltar duas vezes.</string> + <string name="sb_requires_location_permission">O Android Marshmallow (6.0+) requer a Permissão de localização para poder escanear dispositivos Bluetooth. Aceite para ativar a Permissão de localização.</string> + <string name="sb_requires_location_permission_and_services">O Android Marshmallow (6.0+) requer a Permissão de localização para poder escanear dispositivos Bluetooth.\n\nO Marshmallow também requer Serviços de localização para melhorar a detecção de dispositivos Bluetooth. Embora não seja necessário para usar neste aplicativo, é recomendado para detectar melhor os dispositivos.\n\nAceite para ativar Permissão e serviços de localização.</string> + <string name="sb_location_services_needs_enabling">O Android Marshmallow (6.0+) requer Serviços de localização para um melhor escaneamento de dispositivos Bluetooth. Embora não seja necessário, é recomendado que os Serviços de localização estejam ativados para uma melhor detecção de dispositivos.</string> + <string name="sb_location_services_toast">Ative Serviços de localização e pressione Voltar.</string> + <string name="sb_ok">OK</string> + <string name="sb_deny">Recusar</string> + <string name="sb_accept">Aceitar</string> +</resources> \ No newline at end of file diff --git a/dev/android/sweetblue/res/values-ru/strings.xml b/dev/android/sweetblue/res/values-ru/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..7c1fe510ce2fc8401425cc2c45bf3741133ef415 --- /dev/null +++ b/dev/android/sweetblue/res/values-ru/strings.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<resources> + <string name="sb_denying_location_access">Если запретить доступ к геоданным, BLE-сканирование перестанет работать.</string> + <string name="sb_app_needs_permission">Для приложения нужно указать android.permission.ACCESS_COARSE_LOCATION или android.permission.ACCESS_FINE_LOCATION в файле AndroidManifest.xml!</string> + <string name="sb_location_permission_toast">Нажмите кнопку «Разрешения», включите определение местоположения, а затем дважды нажмите «Назад».</string> + <string name="sb_requires_location_permission">Чтобы можно было сканировать устройства с Bluetooth, системе Android Marshmallow (6.0 и более поздней версии) требуется доступ к геоданным. Нажмите «Принять», чтобы разрешить доступ.</string> + <string name="sb_requires_location_permission_and_services">Чтобы приложение сканировало устройства с Bluetooth, системе Android Marshmallow (6.0 и более поздней версии) требуется доступ к геоданным.\n\nТакже для улучшенного обнаружения устройств с Bluetooth системе нужно определение местоположения. Когда оно не требуется в приложении, рекомендуем его использовать.\n\nНажмите «Принять», чтобы разрешить доступ к геоданным и включить определение местоположения.</string> + <string name="sb_location_services_needs_enabling">Для улучшенного сканирования устройств с Bluetooth системе Android Marshmallow (6.0 и более поздней версии) нужно определение местоположения. Когда эта функция не требуется, рекомендуем включить ее, чтобы улучшить обнаружение устройств.</string> + <string name="sb_location_services_toast">Включите определение местоположения и нажмите «Назад».</string> + <string name="sb_ok">ОК</string> + <string name="sb_deny">Отклонить</string> + <string name="sb_accept">Принять</string> +</resources> \ No newline at end of file diff --git a/dev/android/sweetblue/res/values-sv/strings.xml b/dev/android/sweetblue/res/values-sv/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..72844c697dbb6eab8e7a212cacdfd8209a843996 --- /dev/null +++ b/dev/android/sweetblue/res/values-sv/strings.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<resources> + <string name="sb_denying_location_access">Om du nekar tillgång till platstjänster fungerar inte low energy-skanning.</string> + <string name="sb_app_needs_permission">Appen behöver android.permission.ACCESS_COARSE_LOCATION eller android.permission.ACCESS_FINE_LOCATION i sitt AndroidManifest.xml!</string> + <string name="sb_location_permission_toast">Vänligen tryck på Behörigheter-knappen, aktivera Plats och tryck sedan på Tillbaka två gånger.</string> + <string name="sb_requires_location_permission">Android Marshmallow (6.0+) kräver Platsåtkomst för att kunna skanna efter Bluetooth-enheter. Vänligen acceptera för att tillåta Platsåtkomst.</string> + <string name="sb_requires_location_permission_and_services">Android Marshmallow (6.0+) kräver Platsåtkomst för att appen ska kunna skanna efter Bluetooth-enhterer.\n\nMarshmallow behöver Platstjänster för att förbättra upptäckt av Bluetooth-enheter. Det är inget krav för att appen ska fungea, men rekommenderas för att bättre upptäcka andra enheter.\n\nVänligen acceptera för att tillåta Platsåtkomst och Platstjänster.</string> + <string name="sb_location_services_needs_enabling">Android Marshmallow (6.0+) använder Platstjänster för att förbättra skanning efter Bluetooth-enheter. Det är inget krav för att appen ska fungera, men det rekommenderas att Platstjänster är aktiverat för att bättre upptäcka andra enheter.</string> + <string name="sb_location_services_toast">Vänligen aktivera Platstjänster och knacka därefter på tillbaka.</string> + <string name="sb_ok">OK</string> + <string name="sb_deny">Neka</string> + <string name="sb_accept">Godkänn</string> +</resources> \ No newline at end of file diff --git a/dev/android/sweetblue/res/values-zh-rCN/strings.xml b/dev/android/sweetblue/res/values-zh-rCN/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..c05b3a44450675718c09e1b7eab932c50fc32f8b --- /dev/null +++ b/dev/android/sweetblue/res/values-zh-rCN/strings.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<resources> + <string name="sb_denying_location_access">如果拒絕位置資訊存取權限,則無法使用低功耗掃描功能。</string> + <string name="sb_app_needs_permission">此應用程式的 AndroidManifest.xml 中必須有 android.permission.ACCESS_COARSE_LOCATION 或 android.permission.ACCESS_FINE_LOCATION!</string> + <string name="sb_location_permission_toast">請按一下 [權限] 按鈕,然後啟用定位功能,最後按返回兩次。</string> + <string name="sb_requires_location_permission">Android Marshmallow (6.0+) 需要位置權限才能搜尋藍牙裝置。請按下 [接受] 以便授予位置權限。</string> + <string name="sb_requires_location_permission_and_services">Android Marshmallow (6.0+) 需要應用程式的位置權限才能搜尋藍牙裝置。\n\nMarshmallow 也需要定位服務才能提高藍牙裝置搜尋能力。雖然這並非應用程式的必要選項,但還是建議您啟用這項功能,以便提高裝置搜尋能力。\n\n請按下 [接受] 以便授予位置權限和定位服務權限。</string> + <string name="sb_location_services_needs_enabling">Android Marshmallow (6.0+) 需要定位服務才能提高藍牙裝置掃描能力。雖然這並非必要選項,但還是建議您啟用定位服務,以便提高裝置搜尋能力。</string> + <string name="sb_location_services_toast">請啟用定位服務,然後按返回。</string> + <string name="sb_ok">好</string> + <string name="sb_deny">拒絕</string> + <string name="sb_accept">接受</string> +</resources> \ No newline at end of file diff --git a/dev/android/sweetblue/res/values-zh-rTW/strings.xml b/dev/android/sweetblue/res/values-zh-rTW/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..3192154ec7515a25e965b2328e14a68661034aa5 --- /dev/null +++ b/dev/android/sweetblue/res/values-zh-rTW/strings.xml @@ -0,0 +1,13 @@ +<?xml version='1.0' encoding='utf-8' standalone='no'?> +<resources> + <string name="sb_denying_location_access">拒绝位置服务,意味着将不能进行低能量扫描。</string> + <string name="sb_app_needs_permission">本应用需要在其 AndroidManifest.xml 文件中有 android.permission.ACCESS_COARSE_LOCATION 或 android.permission.ACCESS_FINE_LOCATION!</string> + <string name="sb_location_permission_toast">请点按”权限“按钮,启用”定位“,然后按两次后退。</string> + <string name="sb_requires_location_permission">Android Marshmallow (6.0+) 需要定位权限才能扫描蓝牙设备。请接受以允许定位权限。</string> + <string name="sb_requires_location_permission_and_services">Android Marshmallow (6.0+) 需要定位权限才能扫描蓝牙设备。\n\nMarshmallow 也需要定位服务,才能改进蓝牙设备发现。尽管本应用不需要,但建议您将定位服务打开,以获得更好的设备发现能力。\n\n请接受,以允许使用定位权限和定位服务。</string> + <string name="sb_location_services_needs_enabling">Android Marshmallow (6.0+) 需要定位服务才能使用改进的蓝牙设备扫描功能。尽管不需要,但建议将定位服务打开,以提高设备发现能力。</string> + <string name="sb_location_services_toast">请启用定位服务,然后按后退。</string> + <string name="sb_ok">好</string> + <string name="sb_deny">拒绝</string> + <string name="sb_accept">接受</string> +</resources> \ No newline at end of file diff --git a/dev/android/sweetblue/res/values/strings.xml b/dev/android/sweetblue/res/values/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..2d227b174a8a7920831e15c7c8542a41f743c141 --- /dev/null +++ b/dev/android/sweetblue/res/values/strings.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <string name="sb_denying_location_access">Denying location access means low-energy scanning will not work.</string> + <string name="sb_app_needs_permission">App needs android.permission.ACCESS_COARSE_LOCATION or android.permission.ACCESS_FINE_LOCATION in its AndroidManifest.xml!</string> + <string name="sb_location_permission_toast">Please click the Permissions button, then enable Location, then press back twice.</string> + <string name="sb_requires_location_permission">Android Marshmallow (6.0+) requires Location Permission to be able to scan for Bluetooth devices. Please accept to allow Location Permission.</string> + <string name="sb_requires_location_permission_and_services">Android Marshmallow (6.0+) requires Location Permission to the app to be able to scan for Bluetooth devices. + +Marshmallow also requires Location Services to improve Bluetooth device discovery. While it is not required for use in this app, it is recommended to better discover devices. + +Please accept to allow Location Permission and Services.</string> + <string name="sb_location_services_needs_enabling">Android Marshmallow (6.0+) requires Location Services for improved Bluetooth device scanning. While it is not required, it is recommended that Location Services are turned on to improve device discovery.</string> + <string name="sb_location_services_toast">Please enable Location Services then press back.</string> + <string name="sb_ok">OK</string> + <string name="sb_deny">Deny</string> + <string name="sb_accept">Accept</string> +</resources> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/.idea/.name b/dev/android/sweetblue/samples/ble_util/android_studio/.idea/.name new file mode 100644 index 0000000000000000000000000000000000000000..b3a3b3a4097fc5893cb043cc5a29f89e2625711d --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/.idea/.name @@ -0,0 +1 @@ +android_studio \ No newline at end of file diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/.idea/compiler.xml b/dev/android/sweetblue/samples/ble_util/android_studio/.idea/compiler.xml new file mode 100644 index 0000000000000000000000000000000000000000..96cc43efa6a0885098044e976cd780bb42c68a70 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/.idea/compiler.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="CompilerConfiguration"> + <resourceExtensions /> + <wildcardResourcePatterns> + <entry name="!?*.java" /> + <entry name="!?*.form" /> + <entry name="!?*.class" /> + <entry name="!?*.groovy" /> + <entry name="!?*.scala" /> + <entry name="!?*.flex" /> + <entry name="!?*.kt" /> + <entry name="!?*.clj" /> + <entry name="!?*.aj" /> + </wildcardResourcePatterns> + <annotationProcessing> + <profile default="true" name="Default" enabled="false"> + <processorPath useClasspath="true" /> + </profile> + </annotationProcessing> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/.idea/copyright/profiles_settings.xml b/dev/android/sweetblue/samples/ble_util/android_studio/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000000000000000000000000000000000000..e7bedf3377d40335424fd605124d4761390218bb --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ +<component name="CopyrightManager"> + <settings default="" /> +</component> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/.idea/gradle.xml b/dev/android/sweetblue/samples/ble_util/android_studio/.idea/gradle.xml new file mode 100644 index 0000000000000000000000000000000000000000..8d2df476e5f1ebbf2170b74c8edb13f53e322331 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/.idea/gradle.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="GradleSettings"> + <option name="linkedExternalProjectsSettings"> + <GradleProjectSettings> + <option name="distributionType" value="DEFAULT_WRAPPED" /> + <option name="externalProjectPath" value="$PROJECT_DIR$" /> + <option name="gradleJvm" value="1.8" /> + <option name="modules"> + <set> + <option value="$PROJECT_DIR$" /> + <option value="$PROJECT_DIR$/app" /> + </set> + </option> + </GradleProjectSettings> + </option> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/.idea/misc.xml b/dev/android/sweetblue/samples/ble_util/android_studio/.idea/misc.xml new file mode 100644 index 0000000000000000000000000000000000000000..fbb68289f4352bf149aa31a2c9940faa99174224 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/.idea/misc.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="EntryPointsManager"> + <entry_points version="2.0" /> + </component> + <component name="NullableNotNullManager"> + <option name="myDefaultNullable" value="android.support.annotation.Nullable" /> + <option name="myDefaultNotNull" value="android.support.annotation.NonNull" /> + <option name="myNullables"> + <value> + <list size="4"> + <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" /> + <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" /> + <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" /> + <item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" /> + </list> + </value> + </option> + <option name="myNotNulls"> + <value> + <list size="4"> + <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" /> + <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" /> + <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" /> + <item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" /> + </list> + </value> + </option> + </component> + <component name="ProjectLevelVcsManager" settingsEditedManually="false"> + <OptionsSetting value="true" id="Add" /> + <OptionsSetting value="true" id="Remove" /> + <OptionsSetting value="true" id="Checkout" /> + <OptionsSetting value="true" id="Update" /> + <OptionsSetting value="true" id="Status" /> + <OptionsSetting value="true" id="Edit" /> + <ConfirmationsSetting value="0" id="Add" /> + <ConfirmationsSetting value="0" id="Remove" /> + </component> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> + <output url="file://$PROJECT_DIR$/build/classes" /> + </component> + <component name="ProjectType"> + <option name="id" value="Android" /> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/.idea/modules.xml b/dev/android/sweetblue/samples/ble_util/android_studio/.idea/modules.xml new file mode 100644 index 0000000000000000000000000000000000000000..d71b044feb5ae068b7731f8daf3ea263e711e65d --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/.idea/modules.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/android_studio.iml" filepath="$PROJECT_DIR$/android_studio.iml" /> + <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/.idea/runConfigurations.xml b/dev/android/sweetblue/samples/ble_util/android_studio/.idea/runConfigurations.xml new file mode 100644 index 0000000000000000000000000000000000000000..7f68460d8b38ac04e3a3224d7c79ef719b1991a9 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="RunConfigurationProducerService"> + <option name="ignoredProducers"> + <set> + <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" /> + <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" /> + <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" /> + </set> + </option> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/.idea/vcs.xml b/dev/android/sweetblue/samples/ble_util/android_studio/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..c2365ab11f9ba6b763735c8fd976420234bb3521 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$/../../.." vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/build.gradle b/dev/android/sweetblue/samples/ble_util/android_studio/app/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..9f5dba6c8c9ca7840d477af70a0abc2894c2f636 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/app/build.gradle @@ -0,0 +1,23 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 24 + buildToolsVersion '24.0.3' + + defaultConfig { + applicationId "com.idevicesinc.sweetblue.ble_util" + minSdkVersion 18 + targetSdkVersion 24 + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' + } + } + + dependencies { + compile fileTree(dir: 'libs', include: '*.jar') + } +} diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/libs/sweetblue-javadoc.jar b/dev/android/sweetblue/samples/ble_util/android_studio/app/libs/sweetblue-javadoc.jar new file mode 100644 index 0000000000000000000000000000000000000000..eb495aefe26c6cea1a15d2ed00a50ee8063b6692 Binary files /dev/null and b/dev/android/sweetblue/samples/ble_util/android_studio/app/libs/sweetblue-javadoc.jar differ diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/libs/sweetblue-sources.jar b/dev/android/sweetblue/samples/ble_util/android_studio/app/libs/sweetblue-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..7144cc70cee251dbc63acba80818d1e08b4298d4 Binary files /dev/null and b/dev/android/sweetblue/samples/ble_util/android_studio/app/libs/sweetblue-sources.jar differ diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/libs/sweetblue.jar b/dev/android/sweetblue/samples/ble_util/android_studio/app/libs/sweetblue.jar new file mode 100644 index 0000000000000000000000000000000000000000..dc5f6329dbfe534d9c8ee98f288e1cf4c4137d17 Binary files /dev/null and b/dev/android/sweetblue/samples/ble_util/android_studio/app/libs/sweetblue.jar differ diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/AndroidManifest.xml b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..ce0370805ac8d611f7cf3569c5c5ce79803d111a --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/AndroidManifest.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.idevicesinc.sweetblue.ble_util" + android:versionCode="1" + android:versionName="1.0" > + + <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19" /> + + <uses-permission android:name="android.permission.BLUETOOTH" /> + <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> + <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" /> + <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> + <uses-permission android:name="android.permission.WAKE_LOCK" /> + + <uses-feature android:name="android.hardware.bluetooth_le" android:required="true" /> + + + <application + android:icon="@drawable/ic_launcher" + android:label="@string/app_name" + android:theme="@style/NoActionBar" > + + <activity + android:name="com.idevicesinc.sweetblue.ble_util.MainActivity" + android:configChanges="keyboardHidden|orientation|screenSize" + android:label="@string/app_name" + android:launchMode="singleTop" + android:screenOrientation="portrait" > + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + + </application> + +</manifest> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/AlertManager.java b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/AlertManager.java new file mode 100644 index 0000000000000000000000000000000000000000..83ef2e536e431729200d6eee7510dd24a667fdda --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/AlertManager.java @@ -0,0 +1,92 @@ +package com.idevicesinc.sweetblue.ble_util; + +import com.idevicesinc.sweetblue.BleManager; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; +import android.view.Window; + +/** + * + * @author dougkoellmer + */ +public class AlertManager implements BleManager.UhOhListener +{ + private final Context m_context; + private final BleManager m_bleMngr; + + public AlertManager(Context context, BleManager bleMngr) + { + m_context = context; + m_bleMngr = bleMngr; + + m_bleMngr.setListener_UhOh(this); + } + + public void showBleNotSupported() + { + AlertDialog.Builder builder = new AlertDialog.Builder(m_context); + final AlertDialog dialog = builder.create(); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + + String dismiss = m_context.getResources().getString(R.string.generic_ok); + String message = m_context.getResources().getString(R.string.ble_not_supported); + + OnClickListener clickListener = new OnClickListener() + { + @Override + public void onClick(DialogInterface dialog, int which) + { + dialog.dismiss(); + } + }; + + dialog.setMessage(message); + dialog.setButton(DialogInterface.BUTTON_NEUTRAL, dismiss, clickListener); + dialog.show(); + } + + @Override public void onEvent(UhOhEvent event) + { + AlertDialog.Builder builder = new AlertDialog.Builder(m_context); + final AlertDialog dialog = builder.create(); + + OnClickListener clickListener = new OnClickListener() + { + @Override public void onClick(DialogInterface dialog, int which) + { + dialog.dismiss(); + + if( which == DialogInterface.BUTTON_POSITIVE ) + { + m_bleMngr.reset(); + } + } + }; + + String title = m_context.getResources().getString(R.string.uhoh_title); + title = title.replace("{{reason}}", event.uhOh().name()); + dialog.setTitle(title); + + if( event.uhOh().getRemedy() == Remedy.RESET_BLE ) + { + dialog.setMessage(m_context.getResources().getString(R.string.uhoh_message_nuke)); + dialog.setButton(DialogInterface.BUTTON_POSITIVE, m_context.getResources().getString(R.string.uhoh_message_nuke_drop), clickListener); + dialog.setButton(DialogInterface.BUTTON_NEGATIVE, m_context.getResources().getString(R.string.uhoh_message_nuke_cancel), clickListener); + } + else if( event.uhOh().getRemedy() == Remedy.RESTART_PHONE ) + { + dialog.setMessage(m_context.getResources().getString(R.string.uhoh_message_phone_restart)); + dialog.setButton(DialogInterface.BUTTON_NEUTRAL, m_context.getResources().getString(R.string.uhoh_message_phone_restart_ok), clickListener); + } + else if( event.uhOh().getRemedy() == Remedy.WAIT_AND_SEE ) + { + dialog.setMessage(m_context.getResources().getString(R.string.uhoh_message_weirdness)); + dialog.setButton(DialogInterface.BUTTON_NEUTRAL, m_context.getResources().getString(R.string.uhoh_message_weirdness_ok), clickListener); + } + + dialog.show(); + } +} diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/BleBar.java b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/BleBar.java new file mode 100644 index 0000000000000000000000000000000000000000..aa6453f3960831b2551f7b63e6f82240f60f0e41 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/BleBar.java @@ -0,0 +1,140 @@ +package com.idevicesinc.sweetblue.ble_util; + +import android.app.Activity; +import android.content.Context; +import android.text.SpannableString; +import android.util.DisplayMetrics; +import android.view.LayoutInflater; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.Button; +import android.widget.FrameLayout; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.LinearLayout.LayoutParams; + +import com.idevicesinc.sweetblue.*; +import com.idevicesinc.sweetblue.utils.Interval; + +/** + * + * @author dougkoellmer + */ +public class BleBar extends LinearLayout +{ + private static final Interval SCAN_TIMEOUT = Interval.secs(5.0); + + private final Button m_enable; + private final Button m_disable; + private final Button m_unbondAll; + private final Button m_nuke; + private final Button m_infiniteScan; + private final Button m_xSec; + private final Button m_xSecRepeated; + private final Button m_stop; + + private final BleManager m_bleMngr; + + public BleBar(Context context, BleManager bleMngr) + { + super(context); + + m_bleMngr = bleMngr; + + setOrientation(VERTICAL); + int padding = context.getResources().getDimensionPixelSize(R.dimen.default_padding); + this.setPadding(padding, padding, padding, padding); + + LayoutInflater li = LayoutInflater.from(context); + View inner = li.inflate(R.layout.ble_button_bar, null); + + m_enable = (Button) inner.findViewById(R.id.ble_enable_button); + m_disable = (Button) inner.findViewById(R.id.ble_disable_button); + m_unbondAll = (Button) inner.findViewById(R.id.ble_unbond_all_button); + m_nuke = (Button) inner.findViewById(R.id.ble_nuke_button); + + + m_enable.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_bleMngr.turnOn(); + } + }); + + m_disable.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_bleMngr.turnOff(); + } + }); + + m_unbondAll.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_bleMngr.unbondAll(); + } + }); + + m_nuke.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_bleMngr.reset(); + } + }); + + m_infiniteScan = (Button) inner.findViewById(R.id.scan_infinite_button); + m_xSec = (Button) inner.findViewById(R.id.scan_for_x_sec_button); + m_xSecRepeated = (Button) inner.findViewById(R.id.scan_for_x_sec_repeated_button); + m_stop = (Button) inner.findViewById(R.id.scan_stop_button); + + m_infiniteScan.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_bleMngr.startScan(); + } + }); + + m_xSec.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_bleMngr.startScan(SCAN_TIMEOUT); + } + }); + + m_xSecRepeated.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_bleMngr.startPeriodicScan(SCAN_TIMEOUT, SCAN_TIMEOUT); + } + }); + + m_stop.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + //--- DRK > Catch-all, stop both periodic and manual scanning. + m_bleMngr.stopPeriodicScan(); + m_bleMngr.stopScan(); + } + }); + + int timeout = (int) SCAN_TIMEOUT.secs(); + + m_xSec.setText(m_xSec.getText().toString().replace("{{seconds}}", timeout+"")); + String repeatedText = m_xSecRepeated.getText().toString().replace("{{seconds}}", timeout+""); + m_xSecRepeated.setText(repeatedText); + + this.addView(inner); + + BleStatusBar scanBar = new BleStatusBar(context, bleMngr); + scanBar.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); + this.addView(scanBar); + } +} diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/BleStatusBar.java b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/BleStatusBar.java new file mode 100644 index 0000000000000000000000000000000000000000..0d919aa512a7616c8391268646e91f2dfb4db1da --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/BleStatusBar.java @@ -0,0 +1,68 @@ +package com.idevicesinc.sweetblue.ble_util; + +import android.content.Context; +import android.text.SpannableString; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.Button; +import android.widget.CompoundButton; +import android.widget.CompoundButton.OnCheckedChangeListener; +import android.widget.FrameLayout; +import android.widget.TextView; +import android.widget.ToggleButton; + +import com.idevicesinc.sweetblue.*; +import com.idevicesinc.sweetblue.BleManager.NativeStateListener; +import com.idevicesinc.sweetblue.BleManager.StateListener; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Utils_String; + +/** + * + * @author dougkoellmer + */ +public class BleStatusBar extends FrameLayout implements BleManager.StateListener, BleManager.NativeStateListener +{ + private final BleManager m_bleMngr; + + private final TextView m_status; + private final TextView m_nativeStatus; + + public BleStatusBar(Context context, BleManager bleMngr) + { + super(context); + + m_bleMngr = bleMngr; + m_bleMngr.setListener_State(this); + m_bleMngr.setListener_NativeState(this); + + LayoutInflater li = LayoutInflater.from(context); + View inner = li.inflate(R.layout.ble_status_bar, null); + + m_status = (TextView) inner.findViewById(R.id.ble_status); + m_nativeStatus = (TextView) inner.findViewById(R.id.native_ble_status); + + updateStatus(); + + this.addView(inner); + } + + private void updateStatus() + { + SpannableString status = Utils_String.makeStateString(BleManagerState.values(), m_bleMngr.getStateMask()); + m_status.setText(status); + + status = Utils_String.makeStateString(BleManagerState.values(), m_bleMngr.getNativeStateMask()); + m_nativeStatus.setText(status); + } + + @Override public void onEvent(StateListener.StateEvent event) + { + updateStatus(); + } + + @Override public void onEvent(NativeStateListener.NativeStateEvent event) + { + updateStatus(); + } +} diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/DeviceList.java b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/DeviceList.java new file mode 100644 index 0000000000000000000000000000000000000000..0c3d528eaa7d2f04dc0af85e61bf40e4c7bae4c7 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/DeviceList.java @@ -0,0 +1,83 @@ +package com.idevicesinc.sweetblue.ble_util; + +import java.util.List; +import java.util.UUID; + +import android.content.Context; +import android.view.View; +import android.widget.LinearLayout; +import android.widget.ScrollView; +import android.widget.TextView; + +import com.idevicesinc.sweetblue.*; +import com.idevicesinc.sweetblue.utils.State; +import com.idevicesinc.sweetblue.utils.State.ChangeIntent; + +/** + * + * @author dougkoellmer + */ +public class DeviceList extends ScrollView implements BleManager.DiscoveryListener +{ + private static final int BASE_COLOR = 0x00115395; + private static final int LIGHT_ALPHA = 0x33000000; + private static final int DARK_ALPHA = 0x44000000; + + private final LinearLayout m_list; + private final BleManager m_bleMngr; + + public DeviceList(Context context, BleManager bleMngr) + { + super(context); + + m_bleMngr = bleMngr; + m_bleMngr.setListener_Discovery(this); + + m_list = new LinearLayout(context); + m_list.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); + m_list.setOrientation(LinearLayout.VERTICAL); + this.addView(m_list); + } + + private void colorList() + { + for( int i = 0; i < m_list.getChildCount(); i++ ) + { + View ithView = m_list.getChildAt(i); + + int alphaMask = i%2 == 0 ? LIGHT_ALPHA : DARK_ALPHA; + int color = BASE_COLOR | alphaMask; + + ithView.setBackgroundColor(color); + } + } + + @Override public void onEvent(DiscoveryEvent event) + { + if( event.was(LifeCycle.DISCOVERED) ) + { + DeviceListEntry entry = new DeviceListEntry(getContext(), event.device()); + entry.setLayoutParams(new ScrollView.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); + entry.setBackgroundColor(0xff00ff00); + + m_list.addView(entry); + + colorList(); + } + else if( event.was(LifeCycle.UNDISCOVERED) ) + { + for( int i = 0; i < m_list.getChildCount(); i++ ) + { + DeviceListEntry entry = (DeviceListEntry) m_list.getChildAt(i); + + if( entry.getDevice().equals(event.device()) ) + { + m_list.removeViewAt(i); + colorList(); + + return; + } + } + } + } +} diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/DeviceListEntry.java b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/DeviceListEntry.java new file mode 100644 index 0000000000000000000000000000000000000000..278e79fef856bb4e2f98e1ed7c4d018e5f66a1ce --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/DeviceListEntry.java @@ -0,0 +1,143 @@ +package com.idevicesinc.sweetblue.ble_util; + +import android.content.Context; +import android.text.SpannableString; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.Button; +import android.widget.FrameLayout; +import android.widget.TextView; +import android.widget.Toast; + +import com.idevicesinc.sweetblue.*; +import com.idevicesinc.sweetblue.BleNode.ConnectionFailListener.Please; +import com.idevicesinc.sweetblue.utils.Interval; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Utils_String; +import com.idevicesinc.sweetblue.utils.State.ChangeIntent; + +/** + * + * @author dougkoellmer + */ +public class DeviceListEntry extends FrameLayout implements BleDevice.StateListener +{ + private final BleDevice m_device; + private final Button m_connect; + private final Button m_disconnect; + private final Button m_bond; + private final Button m_unbond; + private final TextView m_status; + private final TextView m_name; + + public DeviceListEntry(Context context, BleDevice device) + { + super(context); + + m_device = device; + m_device.setListener_State(this); + m_device.setListener_ConnectionFail(new BleDevice.DefaultConnectionFailListener() + { + @Override public Please onEvent(ConnectionFailEvent event) + { + Please please = super.onEvent(event); + + if( !please.isRetry() ) + { + final String toast = event.device().getName_debug() + " connection failed with " + event.failureCountSoFar() + " retries - " + event.status(); + Toast.makeText(getContext(), toast, Toast.LENGTH_LONG).show(); + } + + return please; + } + }); + + m_device.setListener_Bond(new BleDevice.BondListener() + { + @Override public void onEvent(BondEvent event) + { + final String toast = event.device().getName_debug() + " bond attempt finished with status " + event.status(); + Toast.makeText(getContext(), toast, Toast.LENGTH_LONG).show(); + } + }); + + LayoutInflater li = LayoutInflater.from(context); + View inner = li.inflate(R.layout.device_entry, null); + + m_connect = (Button) inner.findViewById(R.id.connect_button); + m_disconnect = (Button) inner.findViewById(R.id.disconnect_button); + m_bond = (Button) inner.findViewById(R.id.bond_button); + m_unbond = (Button) inner.findViewById(R.id.unbond_button); + m_status = (TextView) inner.findViewById(R.id.device_status); + m_name = (TextView) inner.findViewById(R.id.device_name); + + m_connect.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_device.connect(); + } + }); + + m_disconnect.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_device.disconnect(); + } + }); + + m_bond.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_device.bond(); + } + }); + + m_unbond.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_device.unbond(); + } + }); + + updateStatus(m_device.getStateMask()); + + String name = m_device.getName_normalized(); + if( name.length() == 0 ) + { + name = m_device.getMacAddress(); + } + else + { + name += "(" + m_device.getMacAddress() + ")"; + } + m_name.setText(name); + + this.addView(inner); + + if( device.getLastDisconnectIntent() == ChangeIntent.UNINTENTIONAL ) + { + device.connect(); + } + } + + public BleDevice getDevice() + { + return m_device; + } + + private void updateStatus(int deviceStateMask) + { + SpannableString status = Utils_String.makeStateString(BleDeviceState.values(), deviceStateMask); + m_status.setText(status); + } + + @Override public void onEvent(StateEvent event) + { + updateStatus(event.newStateBits()); + } +} diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/MainActivity.java b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/MainActivity.java new file mode 100644 index 0000000000000000000000000000000000000000..f16c5f72d478daeb3fc1380fe0025abb1fa1a341 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/MainActivity.java @@ -0,0 +1,87 @@ +package com.idevicesinc.sweetblue.ble_util; + + +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.BleManagerConfig; +import com.idevicesinc.sweetblue.BleManagerState; +import com.idevicesinc.sweetblue.utils.BluetoothEnabler; +import com.idevicesinc.sweetblue.utils.Interval; +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.view.Window; + +/** + * + * @author dougkoellmer + */ +public class MainActivity extends Activity +{ + private static final int BLE_TURN_ON_REQUEST_CODE = 2; + + private BleManager m_bleMngr; + private ViewController m_viewController; + private AlertManager m_alertMngr; + + private final BleManagerConfig m_bleManagerConfig = new BleManagerConfig() + {{ + // Mostly using default options for this demo, but provide overrides here if desired. + + // Disabling undiscovery so the list doesn't jump around...ultimately a UI problem so should be fixed there eventually. + this.undiscoveryKeepAlive = Interval.DISABLED; + + this.loggingEnabled = true; + }}; + + public MainActivity() + { + } + + @Override protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + + //--- DRK > Get rid of various android UI bits. + getWindow().requestFeature(Window.FEATURE_ACTION_BAR); + if(getActionBar() != null) + { + getActionBar().hide(); + } + this.closeOptionsMenu(); + this.closeContextMenu(); + + BluetoothEnabler.start(this); + m_bleMngr = BleManager.get(getApplication(), m_bleManagerConfig); + m_alertMngr = new AlertManager(this, m_bleMngr); + m_viewController = new ViewController(this, m_bleMngr); + this.setContentView(m_viewController); + + if( !m_bleMngr.isBleSupported() ) + { + m_alertMngr.showBleNotSupported(); + } + else if( !m_bleMngr.is(BleManagerState.ON) ) + { + m_bleMngr.turnOnWithIntent(this, BLE_TURN_ON_REQUEST_CODE); + } + } + + @Override protected void onResume() + { + super.onResume(); + + m_bleMngr.onResume(); + } + + @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) + { + super.onActivityResult(requestCode, resultCode, data); + } + + @Override protected void onPause() + { + super.onPause(); + + m_bleMngr.onPause(); + } +} diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/ViewController.java b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/ViewController.java new file mode 100644 index 0000000000000000000000000000000000000000..e517d6d06629522806d45f421f999e7ff5a28799 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/ViewController.java @@ -0,0 +1,73 @@ +package com.idevicesinc.sweetblue.ble_util; + +import com.idevicesinc.sweetblue.BleManager; + +import android.content.Context; +import android.view.View; +import android.widget.FrameLayout; +import android.widget.LinearLayout; + +/** + * + * @author dougkoellmer + */ +public class ViewController extends LinearLayout +{ + private static enum State + { + DEVICE_LIST, + DEVICE_DETAIL; + } + + private final BleManager m_bleMngr; + private final FrameLayout m_inner; + + private State m_state = null; + + public ViewController(Context context, BleManager bleMngr) + { + super(context); + + m_bleMngr = bleMngr; + + this.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); + this.setOrientation(VERTICAL); + + BleBar bleStateBar = new BleBar(context, bleMngr); + bleStateBar.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); + bleStateBar.setBackgroundColor(0x33A21615); + this.addView(bleStateBar); + + m_inner = new FrameLayout(context); + m_inner.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); + this.addView(m_inner); + + setState(State.DEVICE_LIST); + } + + private void setState(State state) + { + if( m_state != null ) + { + m_inner.removeAllViews(); + } + + m_state = state; + + View newView = null; + + if( m_state == State.DEVICE_LIST ) + { + newView = new DeviceList(getContext(), m_bleMngr); + } + else if( m_state == State.DEVICE_DETAIL ) + { + } + + if( newView != null ) + { + newView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); + m_inner.addView(newView); + } + } +} diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/drawable-hdpi/ic_launcher.png b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..96a442e5b8e9394ccf50bab9988cb2316026245d Binary files /dev/null and b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/drawable-hdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/drawable-ldpi/ic_launcher.png b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/drawable-ldpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..99238729d8753585237a65b91c7cde426c90baef Binary files /dev/null and b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/drawable-ldpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/drawable-mdpi/ic_launcher.png b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..359047dfa4ed206e41e2354f9c6b307e713efe32 Binary files /dev/null and b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/drawable-mdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/drawable-xhdpi/ic_launcher.png b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..71c6d760f05183ef8a47c614d8d13380c8528499 Binary files /dev/null and b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/drawable-xhdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/layout/ble_button_bar.xml b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/layout/ble_button_bar.xml new file mode 100644 index 0000000000000000000000000000000000000000..18335498601c74a5664760c75bef571545732d2d --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/layout/ble_button_bar.xml @@ -0,0 +1,133 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal"> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="vertical" > + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center|left" + android:text="@string/ble_options" + android:textSize="@dimen/title_font_size" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="@dimen/scan_button_height" > + + <Button + android:id="@+id/ble_enable_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/ble_enable" + android:textSize="@dimen/button_font_size" /> + + <Button + android:id="@+id/ble_disable_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/ble_disable" + android:textSize="@dimen/button_font_size" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <Button + android:id="@+id/ble_unbond_all_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/ble_unbond_all" + android:textSize="@dimen/button_font_size" /> + + <Button + android:id="@+id/ble_nuke_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/ble_nuke" + android:textSize="@dimen/button_font_size" /> + </LinearLayout> + </LinearLayout> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_gravity="right" + android:orientation="vertical" > + + <TextView + android:id="@+id/device_name" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center|right" + android:text="@string/scan_options" + android:textSize="@dimen/title_font_size" /> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:layout_gravity="right" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" > + + <Button + android:id="@+id/scan_infinite_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/scan_infinite" + android:textSize="@dimen/button_font_size" /> + + <Button + android:id="@+id/scan_stop_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/stop_scanning" + android:textSize="@dimen/button_font_size" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <Button + android:id="@+id/scan_for_x_sec_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/scan_for_x_sec" + android:textSize="@dimen/button_font_size" /> + + <Button + android:id="@+id/scan_for_x_sec_repeated_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/scan_for_x_sec_repeated" + android:textSize="@dimen/button_font_size" /> + </LinearLayout> + </LinearLayout> + </LinearLayout> + +</LinearLayout> diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/layout/ble_status_bar.xml b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/layout/ble_status_bar.xml new file mode 100644 index 0000000000000000000000000000000000000000..5215f93dfc54e9fc01e89ef1800ab3af28c77f8f --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/layout/ble_status_bar.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <TextView + android:id="@+id/TextView01" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/ble_status" + android:textSize="@dimen/default_font_size" + android:visibility="visible" /> + + <TextView + android:id="@+id/ble_status" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:singleLine="false" + android:text="@string/not_scanning" + android:textSize="@dimen/status_font_size" + android:visibility="visible" /> + + <TextView + android:id="@+id/textView2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/ble_native_status" + android:textSize="@dimen/default_font_size" + android:visibility="visible" /> + + <TextView + android:id="@+id/native_ble_status" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:singleLine="false" + android:text="@string/not_scanning" + android:textSize="@dimen/status_font_size" /> + +</LinearLayout> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/layout/device_entry.xml b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/layout/device_entry.xml new file mode 100644 index 0000000000000000000000000000000000000000..9b304fc58f061d009fe655aae0e43c0965d3271c --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/layout/device_entry.xml @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:padding="@dimen/bar_padding" > + + <TextView + android:id="@+id/device_name" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center|left" + android:textSize="@dimen/title_font_size" /> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="@dimen/scan_button_height" > + + <Button + android:id="@+id/connect_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/device_connect" + android:textSize="@dimen/button_font_size" /> + + <Button + android:id="@+id/disconnect_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/device_disconnect" + android:textSize="@dimen/button_font_size" /> + + <Button + android:id="@+id/bond_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/device_bond" + android:textSize="@dimen/button_font_size" /> + + <Button + android:id="@+id/unbond_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/device_unbond" + android:textSize="@dimen/button_font_size" /> + </LinearLayout> + + <TextView + android:id="@+id/device_status" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:ellipsize="marquee" + android:gravity="center|left" + android:singleLine="false" + android:text="@string/not_scanning" + android:textSize="@dimen/status_font_size" /> + +</LinearLayout> diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/values/dimens.xml b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..1582f7690dbe26a8407c828a9f03338db6102a59 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/values/dimens.xml @@ -0,0 +1,14 @@ +<resources> + + <dimen name="row_height">25dp</dimen> + <dimen name="default_font_size">15sp</dimen> + <dimen name="title_font_size">@dimen/default_font_size</dimen> + <dimen name="scan_button_width">80dp</dimen> + <dimen name="scan_button_height">40dp</dimen> + <dimen name="default_padding">10dp</dimen> + <dimen name="bar_padding">@dimen/default_padding</dimen> + <dimen name="title_height">40dp</dimen> + <dimen name="button_font_size">10sp</dimen> + <dimen name="status_font_size">12sp</dimen> + +</resources> diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/values/strings.xml b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/values/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..c6d2e76fafb8745b4c5be61754aee94a5e316476 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/values/strings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <string name="app_name">Bluetooth Utility</string> + + <string name="scan_options">Scan Options</string> + <string name="scan_status">Status</string> + + + <string name="scanning">ON</string> + <string name="not_scanning">OFF</string> + + <string name="natively_scanning">native on</string> + <string name="natively_not_scanning">native off</string> + + <string name="scan_infinite">\u221E</string> + <string name="scan_for_x_sec">{{seconds}}sec 1x</string> + <string name="scan_for_x_sec_repeated">{{seconds}}sec pulses</string> + <string name="stop_scanning">Stop</string> + + <string name="generic_ok">OK</string> + + <string name="ble_not_supported">It does not appear that Bluetooth Low Energy is supported on this device.</string> + + <string name="ble_options">Ble Options</string> + <string name="ble_enable">Enable</string> + <string name="ble_disable">Disable</string> + <string name="ble_status">Abstracted Status: </string> + <string name="ble_native_status">Native Status: </string> + <string name="ble_unbond_all">Unbond All</string> + <string name="ble_nuke">Nuke</string> + + + <string name="device_status">Status</string> + <string name="device_connect">Connect</string> + <string name="device_disconnect">Disconnect</string> + <string name="device_bond">Bond</string> + <string name="device_unbond">Unbond</string> + + + <string name="uhoh_title">{{reason}}</string> + <string name="uhoh_message_nuke">It appears that Android\'s less-than-perfect bluetooth stack has gone astray. It is suggested that you drop a nuke to perhaps alleviate the problem.</string> + <string name="uhoh_message_nuke_drop">Drop Nuke</string> + <string name="uhoh_message_nuke_cancel">Cancel</string> + <string name="uhoh_message_phone_restart">It appears that Android\'s bluetooth stack is completely broken. A phone restart may be required.</string> + <string name="uhoh_message_phone_restart_ok">OK</string> + <string name="uhoh_message_weirdness">Something weird happened with the underlying ble stack. It will probably recover but you may have to nuke the stack or restart your phone if you keep seeing this.</string> + <string name="uhoh_message_weirdness_ok">OK</string> + +</resources> diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/values/styles.xml b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/values/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..36d6755d5e430471877f00ffc5deaa69c4706a93 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/app/src/main/res/values/styles.xml @@ -0,0 +1,26 @@ +<resources> + + <!-- + Base application theme, dependent on API level. This theme is replaced + by AppBaseTheme from res/values-vXX/styles.xml on newer devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Light"> + <!-- + Theme customizations available in newer API levels can go in + res/values-vXX/styles.xml, while customizations related to + backward-compatibility can go here. + --> + </style> + + <!-- Application theme. --> + <style name="AppTheme" parent="AppBaseTheme"> + <!-- All customizations that are NOT specific to a particular API-level can go here. --> + </style> + + <style name="NoActionBar" parent="@android:style/Theme.Holo.Light"> + <item name="android:windowActionBar">false</item> + <item name="android:windowNoTitle">true</item> + <item name="android:windowTitleSize">0dp</item> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/build.gradle b/dev/android/sweetblue/samples/ble_util/android_studio/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..739ceb5cde8c843d05c4e601997a0126f1ce3b19 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/build.gradle @@ -0,0 +1,15 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.0.0' + } +} + +allprojects { + repositories { + jcenter() + } +} diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/gradle/wrapper/gradle-wrapper.jar b/dev/android/sweetblue/samples/ble_util/android_studio/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..8c0fb64a8698b08ecc4158d828ca593c4928e9dd Binary files /dev/null and b/dev/android/sweetblue/samples/ble_util/android_studio/gradle/wrapper/gradle-wrapper.jar differ diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/gradle/wrapper/gradle-wrapper.properties b/dev/android/sweetblue/samples/ble_util/android_studio/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000000000000000000000000000000000..d57051703e32b305b0071fed7cef094fd0504f39 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Wed Apr 10 15:27:10 PDT 2013 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/gradlew b/dev/android/sweetblue/samples/ble_util/android_studio/gradlew new file mode 100644 index 0000000000000000000000000000000000000000..91a7e269e19dfc62e27137a0b57ef3e430cee4fd --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/gradlew.bat b/dev/android/sweetblue/samples/ble_util/android_studio/gradlew.bat new file mode 100644 index 0000000000000000000000000000000000000000..8a0b282aa6885fb573c106b3551f7275c5f17e8e --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/dev/android/sweetblue/samples/ble_util/android_studio/settings.gradle b/dev/android/sweetblue/samples/ble_util/android_studio/settings.gradle new file mode 100644 index 0000000000000000000000000000000000000000..e7b4def49cb53d9aa04228dd3edb14c9e635e003 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/android_studio/settings.gradle @@ -0,0 +1 @@ +include ':app' diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/.classpath b/dev/android/sweetblue/samples/ble_util/eclipse/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..1a8ceb642880a29a12a0ae01cf2c072b7cdccb70 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/eclipse/.classpath @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="src" path="gen"/> + <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> + <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> + <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> + <classpathentry exported="true" kind="lib" path="lib/sweetblue.jar" sourcepath="lib/sweetblue-sources.jar"/> + <classpathentry kind="output" path="bin/classes"/> +</classpath> diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/.project b/dev/android/sweetblue/samples/ble_util/eclipse/.project new file mode 100644 index 0000000000000000000000000000000000000000..e1f3a68a88df12635894c2c1cf300066269fcdb6 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/eclipse/.project @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>ble_util</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>com.android.ide.eclipse.adt.ApkBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>com.android.ide.eclipse.adt.AndroidNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/AndroidManifest.xml b/dev/android/sweetblue/samples/ble_util/eclipse/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..f6c49e3d71850a052e0a9514f7a5521ac8f568fe --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/eclipse/AndroidManifest.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.idevicesinc.sweetblue.ble_util" + android:versionCode="1" + android:versionName="1.0" > + + <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19" /> + + <uses-permission android:name="android.permission.BLUETOOTH" /> + <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> + <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" /> + <uses-permission android:name="android.permission.WAKE_LOCK" /> + + <uses-feature android:name="android.hardware.bluetooth_le" android:required="true" /> + + + <application + android:icon="@drawable/ic_launcher" + android:label="@string/app_name" + android:theme="@style/NoActionBar" > + + <activity + android:name="com.idevicesinc.sweetblue.ble_util.MainActivity" + android:configChanges="keyboardHidden|orientation|screenSize" + android:label="@string/app_name" + android:launchMode="singleTop" + android:screenOrientation="portrait" > + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + + </application> + +</manifest> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/lib/sweetblue-javadoc.jar b/dev/android/sweetblue/samples/ble_util/eclipse/lib/sweetblue-javadoc.jar new file mode 100644 index 0000000000000000000000000000000000000000..eb495aefe26c6cea1a15d2ed00a50ee8063b6692 Binary files /dev/null and b/dev/android/sweetblue/samples/ble_util/eclipse/lib/sweetblue-javadoc.jar differ diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/lib/sweetblue-sources.jar b/dev/android/sweetblue/samples/ble_util/eclipse/lib/sweetblue-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..7144cc70cee251dbc63acba80818d1e08b4298d4 Binary files /dev/null and b/dev/android/sweetblue/samples/ble_util/eclipse/lib/sweetblue-sources.jar differ diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/lib/sweetblue.jar b/dev/android/sweetblue/samples/ble_util/eclipse/lib/sweetblue.jar new file mode 100644 index 0000000000000000000000000000000000000000..dc5f6329dbfe534d9c8ee98f288e1cf4c4137d17 Binary files /dev/null and b/dev/android/sweetblue/samples/ble_util/eclipse/lib/sweetblue.jar differ diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/proguard-project.txt b/dev/android/sweetblue/samples/ble_util/eclipse/proguard-project.txt new file mode 100644 index 0000000000000000000000000000000000000000..f2fe1559a217865a5454add526dcc446f892385b --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/eclipse/proguard-project.txt @@ -0,0 +1,20 @@ +# To enable ProGuard in your project, edit project.properties +# to define the proguard.config property as described in that file. +# +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in ${sdk.dir}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the ProGuard +# include property in project.properties. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/project.properties b/dev/android/sweetblue/samples/ble_util/eclipse/project.properties new file mode 100644 index 0000000000000000000000000000000000000000..4ab125693c7c484a0252ee7eca9616e0f9b1ac67 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/eclipse/project.properties @@ -0,0 +1,14 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system edit +# "ant.properties", and override values to adapt the script to your +# project structure. +# +# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): +#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt + +# Project target. +target=android-19 diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/res/drawable-hdpi/ic_launcher.png b/dev/android/sweetblue/samples/ble_util/eclipse/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..96a442e5b8e9394ccf50bab9988cb2316026245d Binary files /dev/null and b/dev/android/sweetblue/samples/ble_util/eclipse/res/drawable-hdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/res/drawable-ldpi/ic_launcher.png b/dev/android/sweetblue/samples/ble_util/eclipse/res/drawable-ldpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..99238729d8753585237a65b91c7cde426c90baef Binary files /dev/null and b/dev/android/sweetblue/samples/ble_util/eclipse/res/drawable-ldpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/res/drawable-mdpi/ic_launcher.png b/dev/android/sweetblue/samples/ble_util/eclipse/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..359047dfa4ed206e41e2354f9c6b307e713efe32 Binary files /dev/null and b/dev/android/sweetblue/samples/ble_util/eclipse/res/drawable-mdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/res/drawable-xhdpi/ic_launcher.png b/dev/android/sweetblue/samples/ble_util/eclipse/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..71c6d760f05183ef8a47c614d8d13380c8528499 Binary files /dev/null and b/dev/android/sweetblue/samples/ble_util/eclipse/res/drawable-xhdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/res/layout/ble_button_bar.xml b/dev/android/sweetblue/samples/ble_util/eclipse/res/layout/ble_button_bar.xml new file mode 100644 index 0000000000000000000000000000000000000000..18335498601c74a5664760c75bef571545732d2d --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/eclipse/res/layout/ble_button_bar.xml @@ -0,0 +1,133 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal"> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="vertical" > + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center|left" + android:text="@string/ble_options" + android:textSize="@dimen/title_font_size" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="@dimen/scan_button_height" > + + <Button + android:id="@+id/ble_enable_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/ble_enable" + android:textSize="@dimen/button_font_size" /> + + <Button + android:id="@+id/ble_disable_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/ble_disable" + android:textSize="@dimen/button_font_size" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <Button + android:id="@+id/ble_unbond_all_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/ble_unbond_all" + android:textSize="@dimen/button_font_size" /> + + <Button + android:id="@+id/ble_nuke_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/ble_nuke" + android:textSize="@dimen/button_font_size" /> + </LinearLayout> + </LinearLayout> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_gravity="right" + android:orientation="vertical" > + + <TextView + android:id="@+id/device_name" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center|right" + android:text="@string/scan_options" + android:textSize="@dimen/title_font_size" /> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:layout_gravity="right" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" > + + <Button + android:id="@+id/scan_infinite_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/scan_infinite" + android:textSize="@dimen/button_font_size" /> + + <Button + android:id="@+id/scan_stop_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/stop_scanning" + android:textSize="@dimen/button_font_size" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <Button + android:id="@+id/scan_for_x_sec_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/scan_for_x_sec" + android:textSize="@dimen/button_font_size" /> + + <Button + android:id="@+id/scan_for_x_sec_repeated_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/scan_for_x_sec_repeated" + android:textSize="@dimen/button_font_size" /> + </LinearLayout> + </LinearLayout> + </LinearLayout> + +</LinearLayout> diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/res/layout/ble_status_bar.xml b/dev/android/sweetblue/samples/ble_util/eclipse/res/layout/ble_status_bar.xml new file mode 100644 index 0000000000000000000000000000000000000000..5215f93dfc54e9fc01e89ef1800ab3af28c77f8f --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/eclipse/res/layout/ble_status_bar.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <TextView + android:id="@+id/TextView01" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/ble_status" + android:textSize="@dimen/default_font_size" + android:visibility="visible" /> + + <TextView + android:id="@+id/ble_status" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:singleLine="false" + android:text="@string/not_scanning" + android:textSize="@dimen/status_font_size" + android:visibility="visible" /> + + <TextView + android:id="@+id/textView2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/ble_native_status" + android:textSize="@dimen/default_font_size" + android:visibility="visible" /> + + <TextView + android:id="@+id/native_ble_status" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:singleLine="false" + android:text="@string/not_scanning" + android:textSize="@dimen/status_font_size" /> + +</LinearLayout> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/res/layout/device_entry.xml b/dev/android/sweetblue/samples/ble_util/eclipse/res/layout/device_entry.xml new file mode 100644 index 0000000000000000000000000000000000000000..9b304fc58f061d009fe655aae0e43c0965d3271c --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/eclipse/res/layout/device_entry.xml @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:padding="@dimen/bar_padding" > + + <TextView + android:id="@+id/device_name" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center|left" + android:textSize="@dimen/title_font_size" /> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="@dimen/scan_button_height" > + + <Button + android:id="@+id/connect_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/device_connect" + android:textSize="@dimen/button_font_size" /> + + <Button + android:id="@+id/disconnect_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/device_disconnect" + android:textSize="@dimen/button_font_size" /> + + <Button + android:id="@+id/bond_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/device_bond" + android:textSize="@dimen/button_font_size" /> + + <Button + android:id="@+id/unbond_button" + android:layout_width="@dimen/scan_button_width" + android:layout_height="@dimen/scan_button_height" + android:singleLine="true" + android:text="@string/device_unbond" + android:textSize="@dimen/button_font_size" /> + </LinearLayout> + + <TextView + android:id="@+id/device_status" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:ellipsize="marquee" + android:gravity="center|left" + android:singleLine="false" + android:text="@string/not_scanning" + android:textSize="@dimen/status_font_size" /> + +</LinearLayout> diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/res/values/dimens.xml b/dev/android/sweetblue/samples/ble_util/eclipse/res/values/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..1582f7690dbe26a8407c828a9f03338db6102a59 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/eclipse/res/values/dimens.xml @@ -0,0 +1,14 @@ +<resources> + + <dimen name="row_height">25dp</dimen> + <dimen name="default_font_size">15sp</dimen> + <dimen name="title_font_size">@dimen/default_font_size</dimen> + <dimen name="scan_button_width">80dp</dimen> + <dimen name="scan_button_height">40dp</dimen> + <dimen name="default_padding">10dp</dimen> + <dimen name="bar_padding">@dimen/default_padding</dimen> + <dimen name="title_height">40dp</dimen> + <dimen name="button_font_size">10sp</dimen> + <dimen name="status_font_size">12sp</dimen> + +</resources> diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/res/values/strings.xml b/dev/android/sweetblue/samples/ble_util/eclipse/res/values/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..c6d2e76fafb8745b4c5be61754aee94a5e316476 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/eclipse/res/values/strings.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <string name="app_name">Bluetooth Utility</string> + + <string name="scan_options">Scan Options</string> + <string name="scan_status">Status</string> + + + <string name="scanning">ON</string> + <string name="not_scanning">OFF</string> + + <string name="natively_scanning">native on</string> + <string name="natively_not_scanning">native off</string> + + <string name="scan_infinite">\u221E</string> + <string name="scan_for_x_sec">{{seconds}}sec 1x</string> + <string name="scan_for_x_sec_repeated">{{seconds}}sec pulses</string> + <string name="stop_scanning">Stop</string> + + <string name="generic_ok">OK</string> + + <string name="ble_not_supported">It does not appear that Bluetooth Low Energy is supported on this device.</string> + + <string name="ble_options">Ble Options</string> + <string name="ble_enable">Enable</string> + <string name="ble_disable">Disable</string> + <string name="ble_status">Abstracted Status: </string> + <string name="ble_native_status">Native Status: </string> + <string name="ble_unbond_all">Unbond All</string> + <string name="ble_nuke">Nuke</string> + + + <string name="device_status">Status</string> + <string name="device_connect">Connect</string> + <string name="device_disconnect">Disconnect</string> + <string name="device_bond">Bond</string> + <string name="device_unbond">Unbond</string> + + + <string name="uhoh_title">{{reason}}</string> + <string name="uhoh_message_nuke">It appears that Android\'s less-than-perfect bluetooth stack has gone astray. It is suggested that you drop a nuke to perhaps alleviate the problem.</string> + <string name="uhoh_message_nuke_drop">Drop Nuke</string> + <string name="uhoh_message_nuke_cancel">Cancel</string> + <string name="uhoh_message_phone_restart">It appears that Android\'s bluetooth stack is completely broken. A phone restart may be required.</string> + <string name="uhoh_message_phone_restart_ok">OK</string> + <string name="uhoh_message_weirdness">Something weird happened with the underlying ble stack. It will probably recover but you may have to nuke the stack or restart your phone if you keep seeing this.</string> + <string name="uhoh_message_weirdness_ok">OK</string> + +</resources> diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/res/values/styles.xml b/dev/android/sweetblue/samples/ble_util/eclipse/res/values/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..36d6755d5e430471877f00ffc5deaa69c4706a93 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/eclipse/res/values/styles.xml @@ -0,0 +1,26 @@ +<resources> + + <!-- + Base application theme, dependent on API level. This theme is replaced + by AppBaseTheme from res/values-vXX/styles.xml on newer devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Light"> + <!-- + Theme customizations available in newer API levels can go in + res/values-vXX/styles.xml, while customizations related to + backward-compatibility can go here. + --> + </style> + + <!-- Application theme. --> + <style name="AppTheme" parent="AppBaseTheme"> + <!-- All customizations that are NOT specific to a particular API-level can go here. --> + </style> + + <style name="NoActionBar" parent="@android:style/Theme.Holo.Light"> + <item name="android:windowActionBar">false</item> + <item name="android:windowNoTitle">true</item> + <item name="android:windowTitleSize">0dp</item> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/AlertManager.java b/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/AlertManager.java new file mode 100644 index 0000000000000000000000000000000000000000..83ef2e536e431729200d6eee7510dd24a667fdda --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/AlertManager.java @@ -0,0 +1,92 @@ +package com.idevicesinc.sweetblue.ble_util; + +import com.idevicesinc.sweetblue.BleManager; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.DialogInterface.OnClickListener; +import android.view.Window; + +/** + * + * @author dougkoellmer + */ +public class AlertManager implements BleManager.UhOhListener +{ + private final Context m_context; + private final BleManager m_bleMngr; + + public AlertManager(Context context, BleManager bleMngr) + { + m_context = context; + m_bleMngr = bleMngr; + + m_bleMngr.setListener_UhOh(this); + } + + public void showBleNotSupported() + { + AlertDialog.Builder builder = new AlertDialog.Builder(m_context); + final AlertDialog dialog = builder.create(); + dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); + + String dismiss = m_context.getResources().getString(R.string.generic_ok); + String message = m_context.getResources().getString(R.string.ble_not_supported); + + OnClickListener clickListener = new OnClickListener() + { + @Override + public void onClick(DialogInterface dialog, int which) + { + dialog.dismiss(); + } + }; + + dialog.setMessage(message); + dialog.setButton(DialogInterface.BUTTON_NEUTRAL, dismiss, clickListener); + dialog.show(); + } + + @Override public void onEvent(UhOhEvent event) + { + AlertDialog.Builder builder = new AlertDialog.Builder(m_context); + final AlertDialog dialog = builder.create(); + + OnClickListener clickListener = new OnClickListener() + { + @Override public void onClick(DialogInterface dialog, int which) + { + dialog.dismiss(); + + if( which == DialogInterface.BUTTON_POSITIVE ) + { + m_bleMngr.reset(); + } + } + }; + + String title = m_context.getResources().getString(R.string.uhoh_title); + title = title.replace("{{reason}}", event.uhOh().name()); + dialog.setTitle(title); + + if( event.uhOh().getRemedy() == Remedy.RESET_BLE ) + { + dialog.setMessage(m_context.getResources().getString(R.string.uhoh_message_nuke)); + dialog.setButton(DialogInterface.BUTTON_POSITIVE, m_context.getResources().getString(R.string.uhoh_message_nuke_drop), clickListener); + dialog.setButton(DialogInterface.BUTTON_NEGATIVE, m_context.getResources().getString(R.string.uhoh_message_nuke_cancel), clickListener); + } + else if( event.uhOh().getRemedy() == Remedy.RESTART_PHONE ) + { + dialog.setMessage(m_context.getResources().getString(R.string.uhoh_message_phone_restart)); + dialog.setButton(DialogInterface.BUTTON_NEUTRAL, m_context.getResources().getString(R.string.uhoh_message_phone_restart_ok), clickListener); + } + else if( event.uhOh().getRemedy() == Remedy.WAIT_AND_SEE ) + { + dialog.setMessage(m_context.getResources().getString(R.string.uhoh_message_weirdness)); + dialog.setButton(DialogInterface.BUTTON_NEUTRAL, m_context.getResources().getString(R.string.uhoh_message_weirdness_ok), clickListener); + } + + dialog.show(); + } +} diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/BleBar.java b/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/BleBar.java new file mode 100644 index 0000000000000000000000000000000000000000..aa6453f3960831b2551f7b63e6f82240f60f0e41 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/BleBar.java @@ -0,0 +1,140 @@ +package com.idevicesinc.sweetblue.ble_util; + +import android.app.Activity; +import android.content.Context; +import android.text.SpannableString; +import android.util.DisplayMetrics; +import android.view.LayoutInflater; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.Button; +import android.widget.FrameLayout; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.LinearLayout.LayoutParams; + +import com.idevicesinc.sweetblue.*; +import com.idevicesinc.sweetblue.utils.Interval; + +/** + * + * @author dougkoellmer + */ +public class BleBar extends LinearLayout +{ + private static final Interval SCAN_TIMEOUT = Interval.secs(5.0); + + private final Button m_enable; + private final Button m_disable; + private final Button m_unbondAll; + private final Button m_nuke; + private final Button m_infiniteScan; + private final Button m_xSec; + private final Button m_xSecRepeated; + private final Button m_stop; + + private final BleManager m_bleMngr; + + public BleBar(Context context, BleManager bleMngr) + { + super(context); + + m_bleMngr = bleMngr; + + setOrientation(VERTICAL); + int padding = context.getResources().getDimensionPixelSize(R.dimen.default_padding); + this.setPadding(padding, padding, padding, padding); + + LayoutInflater li = LayoutInflater.from(context); + View inner = li.inflate(R.layout.ble_button_bar, null); + + m_enable = (Button) inner.findViewById(R.id.ble_enable_button); + m_disable = (Button) inner.findViewById(R.id.ble_disable_button); + m_unbondAll = (Button) inner.findViewById(R.id.ble_unbond_all_button); + m_nuke = (Button) inner.findViewById(R.id.ble_nuke_button); + + + m_enable.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_bleMngr.turnOn(); + } + }); + + m_disable.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_bleMngr.turnOff(); + } + }); + + m_unbondAll.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_bleMngr.unbondAll(); + } + }); + + m_nuke.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_bleMngr.reset(); + } + }); + + m_infiniteScan = (Button) inner.findViewById(R.id.scan_infinite_button); + m_xSec = (Button) inner.findViewById(R.id.scan_for_x_sec_button); + m_xSecRepeated = (Button) inner.findViewById(R.id.scan_for_x_sec_repeated_button); + m_stop = (Button) inner.findViewById(R.id.scan_stop_button); + + m_infiniteScan.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_bleMngr.startScan(); + } + }); + + m_xSec.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_bleMngr.startScan(SCAN_TIMEOUT); + } + }); + + m_xSecRepeated.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_bleMngr.startPeriodicScan(SCAN_TIMEOUT, SCAN_TIMEOUT); + } + }); + + m_stop.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + //--- DRK > Catch-all, stop both periodic and manual scanning. + m_bleMngr.stopPeriodicScan(); + m_bleMngr.stopScan(); + } + }); + + int timeout = (int) SCAN_TIMEOUT.secs(); + + m_xSec.setText(m_xSec.getText().toString().replace("{{seconds}}", timeout+"")); + String repeatedText = m_xSecRepeated.getText().toString().replace("{{seconds}}", timeout+""); + m_xSecRepeated.setText(repeatedText); + + this.addView(inner); + + BleStatusBar scanBar = new BleStatusBar(context, bleMngr); + scanBar.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); + this.addView(scanBar); + } +} diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/BleStatusBar.java b/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/BleStatusBar.java new file mode 100644 index 0000000000000000000000000000000000000000..0d919aa512a7616c8391268646e91f2dfb4db1da --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/BleStatusBar.java @@ -0,0 +1,68 @@ +package com.idevicesinc.sweetblue.ble_util; + +import android.content.Context; +import android.text.SpannableString; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.Button; +import android.widget.CompoundButton; +import android.widget.CompoundButton.OnCheckedChangeListener; +import android.widget.FrameLayout; +import android.widget.TextView; +import android.widget.ToggleButton; + +import com.idevicesinc.sweetblue.*; +import com.idevicesinc.sweetblue.BleManager.NativeStateListener; +import com.idevicesinc.sweetblue.BleManager.StateListener; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Utils_String; + +/** + * + * @author dougkoellmer + */ +public class BleStatusBar extends FrameLayout implements BleManager.StateListener, BleManager.NativeStateListener +{ + private final BleManager m_bleMngr; + + private final TextView m_status; + private final TextView m_nativeStatus; + + public BleStatusBar(Context context, BleManager bleMngr) + { + super(context); + + m_bleMngr = bleMngr; + m_bleMngr.setListener_State(this); + m_bleMngr.setListener_NativeState(this); + + LayoutInflater li = LayoutInflater.from(context); + View inner = li.inflate(R.layout.ble_status_bar, null); + + m_status = (TextView) inner.findViewById(R.id.ble_status); + m_nativeStatus = (TextView) inner.findViewById(R.id.native_ble_status); + + updateStatus(); + + this.addView(inner); + } + + private void updateStatus() + { + SpannableString status = Utils_String.makeStateString(BleManagerState.values(), m_bleMngr.getStateMask()); + m_status.setText(status); + + status = Utils_String.makeStateString(BleManagerState.values(), m_bleMngr.getNativeStateMask()); + m_nativeStatus.setText(status); + } + + @Override public void onEvent(StateListener.StateEvent event) + { + updateStatus(); + } + + @Override public void onEvent(NativeStateListener.NativeStateEvent event) + { + updateStatus(); + } +} diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/DeviceList.java b/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/DeviceList.java new file mode 100644 index 0000000000000000000000000000000000000000..0c3d528eaa7d2f04dc0af85e61bf40e4c7bae4c7 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/DeviceList.java @@ -0,0 +1,83 @@ +package com.idevicesinc.sweetblue.ble_util; + +import java.util.List; +import java.util.UUID; + +import android.content.Context; +import android.view.View; +import android.widget.LinearLayout; +import android.widget.ScrollView; +import android.widget.TextView; + +import com.idevicesinc.sweetblue.*; +import com.idevicesinc.sweetblue.utils.State; +import com.idevicesinc.sweetblue.utils.State.ChangeIntent; + +/** + * + * @author dougkoellmer + */ +public class DeviceList extends ScrollView implements BleManager.DiscoveryListener +{ + private static final int BASE_COLOR = 0x00115395; + private static final int LIGHT_ALPHA = 0x33000000; + private static final int DARK_ALPHA = 0x44000000; + + private final LinearLayout m_list; + private final BleManager m_bleMngr; + + public DeviceList(Context context, BleManager bleMngr) + { + super(context); + + m_bleMngr = bleMngr; + m_bleMngr.setListener_Discovery(this); + + m_list = new LinearLayout(context); + m_list.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); + m_list.setOrientation(LinearLayout.VERTICAL); + this.addView(m_list); + } + + private void colorList() + { + for( int i = 0; i < m_list.getChildCount(); i++ ) + { + View ithView = m_list.getChildAt(i); + + int alphaMask = i%2 == 0 ? LIGHT_ALPHA : DARK_ALPHA; + int color = BASE_COLOR | alphaMask; + + ithView.setBackgroundColor(color); + } + } + + @Override public void onEvent(DiscoveryEvent event) + { + if( event.was(LifeCycle.DISCOVERED) ) + { + DeviceListEntry entry = new DeviceListEntry(getContext(), event.device()); + entry.setLayoutParams(new ScrollView.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); + entry.setBackgroundColor(0xff00ff00); + + m_list.addView(entry); + + colorList(); + } + else if( event.was(LifeCycle.UNDISCOVERED) ) + { + for( int i = 0; i < m_list.getChildCount(); i++ ) + { + DeviceListEntry entry = (DeviceListEntry) m_list.getChildAt(i); + + if( entry.getDevice().equals(event.device()) ) + { + m_list.removeViewAt(i); + colorList(); + + return; + } + } + } + } +} diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/DeviceListEntry.java b/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/DeviceListEntry.java new file mode 100644 index 0000000000000000000000000000000000000000..278e79fef856bb4e2f98e1ed7c4d018e5f66a1ce --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/DeviceListEntry.java @@ -0,0 +1,143 @@ +package com.idevicesinc.sweetblue.ble_util; + +import android.content.Context; +import android.text.SpannableString; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.Button; +import android.widget.FrameLayout; +import android.widget.TextView; +import android.widget.Toast; + +import com.idevicesinc.sweetblue.*; +import com.idevicesinc.sweetblue.BleNode.ConnectionFailListener.Please; +import com.idevicesinc.sweetblue.utils.Interval; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Utils_String; +import com.idevicesinc.sweetblue.utils.State.ChangeIntent; + +/** + * + * @author dougkoellmer + */ +public class DeviceListEntry extends FrameLayout implements BleDevice.StateListener +{ + private final BleDevice m_device; + private final Button m_connect; + private final Button m_disconnect; + private final Button m_bond; + private final Button m_unbond; + private final TextView m_status; + private final TextView m_name; + + public DeviceListEntry(Context context, BleDevice device) + { + super(context); + + m_device = device; + m_device.setListener_State(this); + m_device.setListener_ConnectionFail(new BleDevice.DefaultConnectionFailListener() + { + @Override public Please onEvent(ConnectionFailEvent event) + { + Please please = super.onEvent(event); + + if( !please.isRetry() ) + { + final String toast = event.device().getName_debug() + " connection failed with " + event.failureCountSoFar() + " retries - " + event.status(); + Toast.makeText(getContext(), toast, Toast.LENGTH_LONG).show(); + } + + return please; + } + }); + + m_device.setListener_Bond(new BleDevice.BondListener() + { + @Override public void onEvent(BondEvent event) + { + final String toast = event.device().getName_debug() + " bond attempt finished with status " + event.status(); + Toast.makeText(getContext(), toast, Toast.LENGTH_LONG).show(); + } + }); + + LayoutInflater li = LayoutInflater.from(context); + View inner = li.inflate(R.layout.device_entry, null); + + m_connect = (Button) inner.findViewById(R.id.connect_button); + m_disconnect = (Button) inner.findViewById(R.id.disconnect_button); + m_bond = (Button) inner.findViewById(R.id.bond_button); + m_unbond = (Button) inner.findViewById(R.id.unbond_button); + m_status = (TextView) inner.findViewById(R.id.device_status); + m_name = (TextView) inner.findViewById(R.id.device_name); + + m_connect.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_device.connect(); + } + }); + + m_disconnect.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_device.disconnect(); + } + }); + + m_bond.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_device.bond(); + } + }); + + m_unbond.setOnClickListener(new OnClickListener() + { + @Override public void onClick(View v) + { + m_device.unbond(); + } + }); + + updateStatus(m_device.getStateMask()); + + String name = m_device.getName_normalized(); + if( name.length() == 0 ) + { + name = m_device.getMacAddress(); + } + else + { + name += "(" + m_device.getMacAddress() + ")"; + } + m_name.setText(name); + + this.addView(inner); + + if( device.getLastDisconnectIntent() == ChangeIntent.UNINTENTIONAL ) + { + device.connect(); + } + } + + public BleDevice getDevice() + { + return m_device; + } + + private void updateStatus(int deviceStateMask) + { + SpannableString status = Utils_String.makeStateString(BleDeviceState.values(), deviceStateMask); + m_status.setText(status); + } + + @Override public void onEvent(StateEvent event) + { + updateStatus(event.newStateBits()); + } +} diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/MainActivity.java b/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/MainActivity.java new file mode 100644 index 0000000000000000000000000000000000000000..61a408048b8e28e057e27097c4b296d2cb3bad66 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/MainActivity.java @@ -0,0 +1,85 @@ +package com.idevicesinc.sweetblue.ble_util; + + +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.BleManagerConfig; +import com.idevicesinc.sweetblue.BleManagerState; +import com.idevicesinc.sweetblue.utils.Interval; +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.view.Window; + +/** + * + * @author dougkoellmer + */ +public class MainActivity extends Activity +{ + private static final int BLE_TURN_ON_REQUEST_CODE = 2; + + private BleManager m_bleMngr; + private ViewController m_viewController; + private AlertManager m_alertMngr; + + private final BleManagerConfig m_bleManagerConfig = new BleManagerConfig() + {{ + // Mostly using default options for this demo, but provide overrides here if desired. + + // Disabling undiscovery so the list doesn't jump around...ultimately a UI problem so should be fixed there eventually. + this.undiscoveryKeepAlive = Interval.DISABLED; + + this.loggingEnabled = true; + }}; + + public MainActivity() + { + } + + @Override protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + + //--- DRK > Get rid of various android UI bits. + getWindow().requestFeature(Window.FEATURE_ACTION_BAR); + if(getActionBar() != null) + { + getActionBar().hide(); + } + this.closeOptionsMenu(); + this.closeContextMenu(); + + m_bleMngr = BleManager.get(getApplication(), m_bleManagerConfig); + m_alertMngr = new AlertManager(this, m_bleMngr); + m_viewController = new ViewController(this, m_bleMngr); + this.setContentView(m_viewController); + + if( !m_bleMngr.isBleSupported() ) + { + m_alertMngr.showBleNotSupported(); + } + else if( !m_bleMngr.is(BleManagerState.ON) ) + { + m_bleMngr.turnOnWithIntent(this, BLE_TURN_ON_REQUEST_CODE); + } + } + + @Override protected void onResume() + { + super.onResume(); + + m_bleMngr.onResume(); + } + + @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) + { + super.onActivityResult(requestCode, resultCode, data); + } + + @Override protected void onPause() + { + super.onPause(); + + m_bleMngr.onPause(); + } +} diff --git a/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/ViewController.java b/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/ViewController.java new file mode 100644 index 0000000000000000000000000000000000000000..e517d6d06629522806d45f421f999e7ff5a28799 --- /dev/null +++ b/dev/android/sweetblue/samples/ble_util/eclipse/src/com/idevicesinc/sweetblue/ble_util/ViewController.java @@ -0,0 +1,73 @@ +package com.idevicesinc.sweetblue.ble_util; + +import com.idevicesinc.sweetblue.BleManager; + +import android.content.Context; +import android.view.View; +import android.widget.FrameLayout; +import android.widget.LinearLayout; + +/** + * + * @author dougkoellmer + */ +public class ViewController extends LinearLayout +{ + private static enum State + { + DEVICE_LIST, + DEVICE_DETAIL; + } + + private final BleManager m_bleMngr; + private final FrameLayout m_inner; + + private State m_state = null; + + public ViewController(Context context, BleManager bleMngr) + { + super(context); + + m_bleMngr = bleMngr; + + this.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); + this.setOrientation(VERTICAL); + + BleBar bleStateBar = new BleBar(context, bleMngr); + bleStateBar.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); + bleStateBar.setBackgroundColor(0x33A21615); + this.addView(bleStateBar); + + m_inner = new FrameLayout(context); + m_inner.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); + this.addView(m_inner); + + setState(State.DEVICE_LIST); + } + + private void setState(State state) + { + if( m_state != null ) + { + m_inner.removeAllViews(); + } + + m_state = state; + + View newView = null; + + if( m_state == State.DEVICE_LIST ) + { + newView = new DeviceList(getContext(), m_bleMngr); + } + else if( m_state == State.DEVICE_DETAIL ) + { + } + + if( newView != null ) + { + newView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); + m_inner.addView(newView); + } + } +} diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/.name b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/.name new file mode 100644 index 0000000000000000000000000000000000000000..b3a3b3a4097fc5893cb043cc5a29f89e2625711d --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/.name @@ -0,0 +1 @@ +android_studio \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/compiler.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/compiler.xml new file mode 100644 index 0000000000000000000000000000000000000000..96cc43efa6a0885098044e976cd780bb42c68a70 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/compiler.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="CompilerConfiguration"> + <resourceExtensions /> + <wildcardResourcePatterns> + <entry name="!?*.java" /> + <entry name="!?*.form" /> + <entry name="!?*.class" /> + <entry name="!?*.groovy" /> + <entry name="!?*.scala" /> + <entry name="!?*.flex" /> + <entry name="!?*.kt" /> + <entry name="!?*.clj" /> + <entry name="!?*.aj" /> + </wildcardResourcePatterns> + <annotationProcessing> + <profile default="true" name="Default" enabled="false"> + <processorPath useClasspath="true" /> + </profile> + </annotationProcessing> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/copyright/profiles_settings.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000000000000000000000000000000000000..e7bedf3377d40335424fd605124d4761390218bb --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ +<component name="CopyrightManager"> + <settings default="" /> +</component> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/gradle.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/gradle.xml new file mode 100644 index 0000000000000000000000000000000000000000..8d2df476e5f1ebbf2170b74c8edb13f53e322331 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/gradle.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="GradleSettings"> + <option name="linkedExternalProjectsSettings"> + <GradleProjectSettings> + <option name="distributionType" value="DEFAULT_WRAPPED" /> + <option name="externalProjectPath" value="$PROJECT_DIR$" /> + <option name="gradleJvm" value="1.8" /> + <option name="modules"> + <set> + <option value="$PROJECT_DIR$" /> + <option value="$PROJECT_DIR$/app" /> + </set> + </option> + </GradleProjectSettings> + </option> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/libraries/sweetblue.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/libraries/sweetblue.xml new file mode 100644 index 0000000000000000000000000000000000000000..14de4f4311ad69eca3c8844c758fdbaaf891a0f3 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/libraries/sweetblue.xml @@ -0,0 +1,11 @@ +<component name="libraryTable"> + <library name="sweetblue"> + <CLASSES> + <root url="jar://$PROJECT_DIR$/app/libs/sweetblue.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES> + <root url="jar://$PROJECT_DIR$/app/libs/sweetblue-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/libraries/sweetblue_javadoc.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/libraries/sweetblue_javadoc.xml new file mode 100644 index 0000000000000000000000000000000000000000..fbf2ef10bc57eb7a015179d251ff6ff3965ec3ff --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/libraries/sweetblue_javadoc.xml @@ -0,0 +1,9 @@ +<component name="libraryTable"> + <library name="sweetblue-javadoc"> + <CLASSES> + <root url="jar://$PROJECT_DIR$/app/libs/sweetblue-javadoc.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES /> + </library> +</component> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/libraries/sweetblue_sources.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/libraries/sweetblue_sources.xml new file mode 100644 index 0000000000000000000000000000000000000000..5ba1d5821be4b8f04693ac808b71b94d88e640d7 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/libraries/sweetblue_sources.xml @@ -0,0 +1,9 @@ +<component name="libraryTable"> + <library name="sweetblue-sources"> + <CLASSES> + <root url="jar://$PROJECT_DIR$/app/libs/sweetblue-sources.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES /> + </library> +</component> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/misc.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/misc.xml new file mode 100644 index 0000000000000000000000000000000000000000..fbb68289f4352bf149aa31a2c9940faa99174224 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/misc.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="EntryPointsManager"> + <entry_points version="2.0" /> + </component> + <component name="NullableNotNullManager"> + <option name="myDefaultNullable" value="android.support.annotation.Nullable" /> + <option name="myDefaultNotNull" value="android.support.annotation.NonNull" /> + <option name="myNullables"> + <value> + <list size="4"> + <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" /> + <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" /> + <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" /> + <item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" /> + </list> + </value> + </option> + <option name="myNotNulls"> + <value> + <list size="4"> + <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" /> + <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" /> + <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" /> + <item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" /> + </list> + </value> + </option> + </component> + <component name="ProjectLevelVcsManager" settingsEditedManually="false"> + <OptionsSetting value="true" id="Add" /> + <OptionsSetting value="true" id="Remove" /> + <OptionsSetting value="true" id="Checkout" /> + <OptionsSetting value="true" id="Update" /> + <OptionsSetting value="true" id="Status" /> + <OptionsSetting value="true" id="Edit" /> + <ConfirmationsSetting value="0" id="Add" /> + <ConfirmationsSetting value="0" id="Remove" /> + </component> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> + <output url="file://$PROJECT_DIR$/build/classes" /> + </component> + <component name="ProjectType"> + <option name="id" value="Android" /> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/modules.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/modules.xml new file mode 100644 index 0000000000000000000000000000000000000000..d71b044feb5ae068b7731f8daf3ea263e711e65d --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/modules.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/android_studio.iml" filepath="$PROJECT_DIR$/android_studio.iml" /> + <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/runConfigurations.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/runConfigurations.xml new file mode 100644 index 0000000000000000000000000000000000000000..7f68460d8b38ac04e3a3224d7c79ef719b1991a9 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="RunConfigurationProducerService"> + <option name="ignoredProducers"> + <set> + <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" /> + <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" /> + <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" /> + </set> + </option> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/vcs.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..c2365ab11f9ba6b763735c8fd976420234bb3521 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$/../../.." vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/workspace.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/workspace.xml new file mode 100644 index 0000000000000000000000000000000000000000..59f25f6f6ceeb400546d0bfb05f720c837dd93ae --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/.idea/workspace.xml @@ -0,0 +1,1848 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ChangeListManager"> + <list default="true" id="f1bf0f95-6845-4a76-b687-48534e225f44" name="Default" comment=""> + <change type="DELETED" beforePath="$PROJECT_DIR$/../../ble_util/android_studio/.idea/encodings.xml" afterPath="" /> + <change type="DELETED" beforePath="$PROJECT_DIR$/../../ble_util/android_studio/.idea/scopes/scope_settings.xml" afterPath="" /> + <change type="DELETED" beforePath="$PROJECT_DIR$/../../hello_ble/android_studio/.idea/encodings.xml" afterPath="" /> + <change type="DELETED" beforePath="$PROJECT_DIR$/../../hello_ble/android_studio/.idea/scopes/scope_settings.xml" afterPath="" /> + <change type="DELETED" beforePath="$PROJECT_DIR$/../../simple_ota/android_studio/.idea/encodings.xml" afterPath="" /> + <change type="DELETED" beforePath="$PROJECT_DIR$/../../simple_ota/android_studio/.idea/scopes/scope_settings.xml" afterPath="" /> + <change type="DELETED" beforePath="$PROJECT_DIR$/../../simple_ota/android_studio/app/libs/sweetblue-sources.jar" afterPath="" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../ble_util/android_studio/app/libs/sweetblue-javadoc.jar" afterPath="$PROJECT_DIR$/../../ble_util/android_studio/app/libs/sweetblue-javadoc.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../ble_util/eclipse/lib/sweetblue-javadoc.jar" afterPath="$PROJECT_DIR$/../../ble_util/eclipse/lib/sweetblue-javadoc.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/libs/sweetblue-javadoc.jar" afterPath="$PROJECT_DIR$/app/libs/sweetblue-javadoc.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../eclipse/lib/sweetblue-javadoc.jar" afterPath="$PROJECT_DIR$/../eclipse/lib/sweetblue-javadoc.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../hello_ble/android_studio/app/libs/sweetblue-javadoc.jar" afterPath="$PROJECT_DIR$/../../hello_ble/android_studio/app/libs/sweetblue-javadoc.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../hello_ble/eclipse/lib/sweetblue-javadoc.jar" afterPath="$PROJECT_DIR$/../../hello_ble/eclipse/lib/sweetblue-javadoc.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_ota/android_studio/app/libs/sweetblue-javadoc.jar" afterPath="$PROJECT_DIR$/../../simple_ota/android_studio/app/libs/sweetblue-javadoc.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_ota/eclipse/lib/sweetblue-javadoc.jar" afterPath="$PROJECT_DIR$/../../simple_ota/eclipse/lib/sweetblue-javadoc.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_write/android_studio/app/libs/sweetblue-javadoc.jar" afterPath="$PROJECT_DIR$/../../simple_write/android_studio/app/libs/sweetblue-javadoc.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_write/eclipse/lib/sweetblue-javadoc.jar" afterPath="$PROJECT_DIR$/../../simple_write/eclipse/lib/sweetblue-javadoc.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../ble_util/android_studio/app/libs/sweetblue-sources.jar" afterPath="$PROJECT_DIR$/../../ble_util/android_studio/app/libs/sweetblue-sources.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../ble_util/eclipse/lib/sweetblue-sources.jar" afterPath="$PROJECT_DIR$/../../ble_util/eclipse/lib/sweetblue-sources.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/libs/sweetblue-sources.jar" afterPath="$PROJECT_DIR$/app/libs/sweetblue-sources.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../eclipse/lib/sweetblue-sources.jar" afterPath="$PROJECT_DIR$/../eclipse/lib/sweetblue-sources.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../hello_ble/android_studio/app/libs/sweetblue-sources.jar" afterPath="$PROJECT_DIR$/../../hello_ble/android_studio/app/libs/sweetblue-sources.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../hello_ble/eclipse/lib/sweetblue-sources.jar" afterPath="$PROJECT_DIR$/../../hello_ble/eclipse/lib/sweetblue-sources.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_ota/eclipse/lib/sweetblue-sources.jar" afterPath="$PROJECT_DIR$/../../simple_ota/eclipse/lib/sweetblue-sources.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_write/android_studio/app/libs/sweetblue-sources.jar" afterPath="$PROJECT_DIR$/../../simple_write/android_studio/app/libs/sweetblue-sources.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_write/eclipse/lib/sweetblue-sources.jar" afterPath="$PROJECT_DIR$/../../simple_write/eclipse/lib/sweetblue-sources.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../ble_util/android_studio/app/libs/sweetblue.jar" afterPath="$PROJECT_DIR$/../../ble_util/android_studio/app/libs/sweetblue.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../ble_util/eclipse/lib/sweetblue.jar" afterPath="$PROJECT_DIR$/../../ble_util/eclipse/lib/sweetblue.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/libs/sweetblue.jar" afterPath="$PROJECT_DIR$/app/libs/sweetblue.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../eclipse/lib/sweetblue.jar" afterPath="$PROJECT_DIR$/../eclipse/lib/sweetblue.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../hello_ble/android_studio/app/libs/sweetblue.jar" afterPath="$PROJECT_DIR$/../../hello_ble/android_studio/app/libs/sweetblue.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../hello_ble/eclipse/lib/sweetblue.jar" afterPath="$PROJECT_DIR$/../../hello_ble/eclipse/lib/sweetblue.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_ota/android_studio/app/libs/sweetblue.jar" afterPath="$PROJECT_DIR$/../../simple_ota/android_studio/app/libs/sweetblue.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_ota/eclipse/lib/sweetblue.jar" afterPath="$PROJECT_DIR$/../../simple_ota/eclipse/lib/sweetblue.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_write/android_studio/app/libs/sweetblue.jar" afterPath="$PROJECT_DIR$/../../simple_write/android_studio/app/libs/sweetblue.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_write/eclipse/lib/sweetblue.jar" afterPath="$PROJECT_DIR$/../../simple_write/eclipse/lib/sweetblue.jar" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../ble_util/android_studio/.idea/.name" afterPath="$PROJECT_DIR$/../../ble_util/android_studio/.idea/.name" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../hello_ble/android_studio/.idea/.name" afterPath="$PROJECT_DIR$/../../hello_ble/android_studio/.idea/.name" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../ble_util/android_studio/app/src/main/AndroidManifest.xml" afterPath="$PROJECT_DIR$/../../ble_util/android_studio/app/src/main/AndroidManifest.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" afterPath="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../hello_ble/android_studio/app/src/main/AndroidManifest.xml" afterPath="$PROJECT_DIR$/../../hello_ble/android_studio/app/src/main/AndroidManifest.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_ota/android_studio/app/src/main/AndroidManifest.xml" afterPath="$PROJECT_DIR$/../../simple_ota/android_studio/app/src/main/AndroidManifest.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_write/android_studio/app/src/main/AndroidManifest.xml" afterPath="$PROJECT_DIR$/../../simple_write/android_studio/app/src/main/AndroidManifest.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/MainActivity.java" afterPath="$PROJECT_DIR$/../../ble_util/android_studio/app/src/main/java/com/idevicesinc/sweetblue/ble_util/MainActivity.java" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/src/main/java/com/idevicesinc/sweetblue/current_time_server/MyActivity.java" afterPath="$PROJECT_DIR$/app/src/main/java/com/idevicesinc/sweetblue/current_time_server/MyActivity.java" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../hello_ble/android_studio/app/src/main/java/com/idevicesinc/sweetblue/hello_ble/MyActivity.java" afterPath="$PROJECT_DIR$/../../hello_ble/android_studio/app/src/main/java/com/idevicesinc/sweetblue/hello_ble/MyActivity.java" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_ota/android_studio/app/src/main/java/com/idevicesinc/sweetblue/simple_ota/MyActivity.java" afterPath="$PROJECT_DIR$/../../simple_ota/android_studio/app/src/main/java/com/idevicesinc/sweetblue/simple_ota/MyActivity.java" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_write/android_studio/app/src/main/java/com/idevicesinc/sweetblue/simple_write/MyActivity.java" afterPath="$PROJECT_DIR$/../../simple_write/android_studio/app/src/main/java/com/idevicesinc/sweetblue/simple_write/MyActivity.java" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../ble_util/android_studio/android_studio.iml" afterPath="$PROJECT_DIR$/../../ble_util/android_studio/android_studio.iml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/android_studio.iml" afterPath="$PROJECT_DIR$/android_studio.iml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../hello_ble/android_studio/android_studio.iml" afterPath="$PROJECT_DIR$/../../hello_ble/android_studio/android_studio.iml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_ota/android_studio/android_studio.iml" afterPath="$PROJECT_DIR$/../../simple_ota/android_studio/android_studio.iml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_write/android_studio/android_studio.iml" afterPath="$PROJECT_DIR$/../../simple_write/android_studio/android_studio.iml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../ble_util/android_studio/app/app.iml" afterPath="$PROJECT_DIR$/../../ble_util/android_studio/app/app.iml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/app.iml" afterPath="$PROJECT_DIR$/app/app.iml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../hello_ble/android_studio/app/app.iml" afterPath="$PROJECT_DIR$/../../hello_ble/android_studio/app/app.iml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_ota/android_studio/app/app.iml" afterPath="$PROJECT_DIR$/../../simple_ota/android_studio/app/app.iml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_write/android_studio/app/app.iml" afterPath="$PROJECT_DIR$/../../simple_write/android_studio/app/app.iml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../ble_util/android_studio/.idea/compiler.xml" afterPath="$PROJECT_DIR$/../../ble_util/android_studio/.idea/compiler.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/compiler.xml" afterPath="$PROJECT_DIR$/.idea/compiler.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../hello_ble/android_studio/.idea/compiler.xml" afterPath="$PROJECT_DIR$/../../hello_ble/android_studio/.idea/compiler.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_ota/android_studio/.idea/compiler.xml" afterPath="$PROJECT_DIR$/../../simple_ota/android_studio/.idea/compiler.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_write/android_studio/.idea/compiler.xml" afterPath="$PROJECT_DIR$/../../simple_write/android_studio/.idea/compiler.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../ble_util/android_studio/.idea/gradle.xml" afterPath="$PROJECT_DIR$/../../ble_util/android_studio/.idea/gradle.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../hello_ble/android_studio/.idea/gradle.xml" afterPath="$PROJECT_DIR$/../../hello_ble/android_studio/.idea/gradle.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_ota/android_studio/.idea/gradle.xml" afterPath="$PROJECT_DIR$/../../simple_ota/android_studio/.idea/gradle.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../ble_util/android_studio/.idea/misc.xml" afterPath="$PROJECT_DIR$/../../ble_util/android_studio/.idea/misc.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/misc.xml" afterPath="$PROJECT_DIR$/.idea/misc.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../hello_ble/android_studio/.idea/misc.xml" afterPath="$PROJECT_DIR$/../../hello_ble/android_studio/.idea/misc.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_ota/android_studio/.idea/misc.xml" afterPath="$PROJECT_DIR$/../../simple_ota/android_studio/.idea/misc.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_write/android_studio/.idea/misc.xml" afterPath="$PROJECT_DIR$/../../simple_write/android_studio/.idea/misc.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../ble_util/android_studio/.idea/modules.xml" afterPath="$PROJECT_DIR$/../../ble_util/android_studio/.idea/modules.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../hello_ble/android_studio/.idea/modules.xml" afterPath="$PROJECT_DIR$/../../hello_ble/android_studio/.idea/modules.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_ota/android_studio/.idea/modules.xml" afterPath="$PROJECT_DIR$/../../simple_ota/android_studio/.idea/modules.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../../scripts/update_sweetblue.sh" afterPath="$PROJECT_DIR$/../../../scripts/update_sweetblue.sh" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../ble_util/android_studio/.idea/vcs.xml" afterPath="$PROJECT_DIR$/../../ble_util/android_studio/.idea/vcs.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/vcs.xml" afterPath="$PROJECT_DIR$/.idea/vcs.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../hello_ble/android_studio/.idea/vcs.xml" afterPath="$PROJECT_DIR$/../../hello_ble/android_studio/.idea/vcs.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../simple_ota/android_studio/.idea/vcs.xml" afterPath="$PROJECT_DIR$/../../simple_ota/android_studio/.idea/vcs.xml" /> + <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" /> + </list> + <ignored path="android_studio.iws" /> + <ignored path=".idea/workspace.xml" /> + <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> + <option name="TRACKING_ENABLED" value="true" /> + <option name="SHOW_DIALOG" value="false" /> + <option name="HIGHLIGHT_CONFLICTS" value="true" /> + <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> + <option name="LAST_RESOLUTION" value="IGNORE" /> + </component> + <component name="ChangesViewManager" flattened_view="true" show_ignored="false" /> + <component name="CreatePatchCommitExecutor"> + <option name="PATCH_PATH" value="" /> + </component> + <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" /> + <component name="FavoritesManager"> + <favorites_list name="android_studio" /> + </component> + <component name="FileEditorManager"> + <leaf> + <file leaf-file-name="MyActivity.java" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/app/src/main/java/com/idevicesinc/sweetblue/current_time_server/MyActivity.java"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="38" column="35" selection-start-line="38" selection-start-column="35" selection-end-line="38" selection-end-column="35" /> + <folding /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="AndroidManifest.xml" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/app/src/main/AndroidManifest.xml"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="11" column="79" selection-start-line="11" selection-start-column="79" selection-end-line="11" selection-end-column="79" /> + <folding /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="build.gradle" pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/build.gradle"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + </file> + <file leaf-file-name="build.gradle" pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/app/build.gradle"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.22167487"> + <caret line="9" column="27" selection-start-line="9" selection-start-column="27" selection-end-line="9" selection-end-column="27" /> + <folding /> + </state> + </provider> + </entry> + </file> + </leaf> + </component> + <component name="Git.Settings"> + <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../../.." /> + </component> + <component name="GradleLocalSettings"> + <option name="availableProjects"> + <map> + <entry> + <key> + <ExternalProjectPojo> + <option name="name" value="android_studio" /> + <option name="path" value="$PROJECT_DIR$" /> + </ExternalProjectPojo> + </key> + <value> + <list> + <ExternalProjectPojo> + <option name="name" value=":app" /> + <option name="path" value="$PROJECT_DIR$/app" /> + </ExternalProjectPojo> + <ExternalProjectPojo> + <option name="name" value="android_studio" /> + <option name="path" value="$PROJECT_DIR$" /> + </ExternalProjectPojo> + </list> + </value> + </entry> + </map> + </option> + <option name="availableTasks"> + <map> + <entry key="$PROJECT_DIR$"> + <value> + <list> + <ExternalTaskPojo> + <option name="description" value="Displays the Android dependencies of the project." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="androidDependencies" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles all variants of all applications and secondary packages." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="assemble" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles all the Test applications." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="assembleAndroidTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles all Debug builds." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="assembleDebug" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles the android (on device) tests for the Debug build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="assembleDebugAndroidTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles the unit tests for the Debug build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="assembleDebugUnitTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles all Release builds." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="assembleRelease" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles the unit tests for the Release build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="assembleReleaseUnitTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles and tests this project." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="build" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles and tests this project and all projects that depend on it." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="buildDependents" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles and tests this project and all projects it depends on." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="buildNeeded" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Runs all checks." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="check" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="checkDebugManifest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="checkReleaseManifest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Deletes the build directory." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="clean" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileDebugAidl" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileDebugAndroidTestAidl" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileDebugAndroidTestJava" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileDebugAndroidTestNdk" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileDebugAndroidTestRenderscript" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileDebugAndroidTestSources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileDebugJava" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileDebugNdk" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileDebugRenderscript" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileDebugSources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileDebugUnitTestJava" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileDebugUnitTestSources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileLint" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileReleaseAidl" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileReleaseJava" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileReleaseNdk" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileReleaseRenderscript" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileReleaseSources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileReleaseUnitTestJava" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="compileReleaseUnitTestSources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Installs and runs instrumentation tests for all flavors on connected devices." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="connectedAndroidTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Installs and runs the tests for Debug build on connected devices." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="connectedAndroidTestDebug" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Runs all device checks on currently connected devices." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="connectedCheck" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Installs and runs instrumentation tests using all Device Providers." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="deviceAndroidTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Runs all device checks using Device Providers and Test Servers." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="deviceCheck" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="dexDebug" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="dexDebugAndroidTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="dexRelease" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="generateDebugAndroidTestAssets" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="generateDebugAndroidTestBuildConfig" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="generateDebugAndroidTestResValues" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="generateDebugAndroidTestResources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="generateDebugAndroidTestSources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="generateDebugAssets" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="generateDebugBuildConfig" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="generateDebugResValues" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="generateDebugResources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="generateDebugSources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="generateReleaseAssets" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="generateReleaseBuildConfig" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="generateReleaseResValues" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="generateReleaseResources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="generateReleaseSources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Installs the Debug build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="installDebug" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Installs the android (on device) tests for the Debug build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="installDebugAndroidTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="jarDebugClasses" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="jarReleaseClasses" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Runs lint on all variants." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="lint" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Runs lint on the Debug build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="lintDebug" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Runs lint on the Release build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="lintRelease" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Runs lint on just the fatal issues in the Release build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="lintVitalRelease" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="mergeDebugAndroidTestAssets" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="mergeDebugAndroidTestResources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="mergeDebugAssets" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="mergeDebugResources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="mergeReleaseAssets" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="mergeReleaseResources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Creates a version of android.jar that's suitable for unit tests." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="mockableAndroidJar" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="packageDebug" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="packageDebugAndroidTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="packageRelease" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="preBuild" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="preCompileDebugUnitTestJava" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="preCompileReleaseUnitTestJava" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="preDebugAndroidTestBuild" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="preDebugBuild" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="preDebugUnitTestBuild" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="preDexDebug" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="preDexDebugAndroidTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="preReleaseBuild" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="preReleaseUnitTestBuild" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="prepareDebugAndroidTestDependencies" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="prepareDebugDependencies" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="prepareDebugUnitTestDependencies" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="prepareReleaseDependencies" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="prepareReleaseUnitTestDependencies" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="processDebugAndroidTestJavaRes" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="processDebugAndroidTestManifest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="processDebugAndroidTestResources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="processDebugJavaRes" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="processDebugManifest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="processDebugResources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="processDebugUnitTestJavaRes" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="processReleaseJavaRes" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="processReleaseManifest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="processReleaseResources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="processReleaseUnitTestJavaRes" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="proguardRelease" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Displays the signing info for each variant." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="signingReport" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Run unit tests for all variants." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="test" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Run unit tests for the debug build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="testDebug" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Run unit tests for the release build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="testRelease" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Uninstall all applications." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="uninstallAll" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Uninstalls the Debug build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="uninstallDebug" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Uninstalls the android (on device) tests for the Debug build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="uninstallDebugAndroidTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Uninstalls the Release build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="uninstallRelease" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="validateDebugSigning" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$" /> + <option name="name" value="zipalignDebug" /> + </ExternalTaskPojo> + </list> + </value> + </entry> + <entry key="$PROJECT_DIR$/app"> + <value> + <list> + <ExternalTaskPojo> + <option name="description" value="Displays the Android dependencies of the project." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="androidDependencies" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles all variants of all applications and secondary packages." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="assemble" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles all the Test applications." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="assembleAndroidTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles all Debug builds." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="assembleDebug" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles the android (on device) tests for the Debug build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="assembleDebugAndroidTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles the unit tests for the Debug build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="assembleDebugUnitTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles all Release builds." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="assembleRelease" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles the unit tests for the Release build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="assembleReleaseUnitTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles and tests this project." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="build" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles and tests this project and all projects that depend on it." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="buildDependents" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Assembles and tests this project and all projects it depends on." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="buildNeeded" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Runs all checks." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="check" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="checkDebugManifest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="checkReleaseManifest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Deletes the build directory." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="clean" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileDebugAidl" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileDebugAndroidTestAidl" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileDebugAndroidTestJava" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileDebugAndroidTestNdk" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileDebugAndroidTestRenderscript" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileDebugAndroidTestSources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileDebugJava" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileDebugNdk" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileDebugRenderscript" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileDebugSources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileDebugUnitTestJava" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileDebugUnitTestSources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileLint" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileReleaseAidl" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileReleaseJava" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileReleaseNdk" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileReleaseRenderscript" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileReleaseSources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileReleaseUnitTestJava" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="compileReleaseUnitTestSources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Installs and runs instrumentation tests for all flavors on connected devices." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="connectedAndroidTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Installs and runs the tests for Debug build on connected devices." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="connectedAndroidTestDebug" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Runs all device checks on currently connected devices." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="connectedCheck" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Installs and runs instrumentation tests using all Device Providers." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="deviceAndroidTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Runs all device checks using Device Providers and Test Servers." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="deviceCheck" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="dexDebug" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="dexDebugAndroidTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="dexRelease" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="generateDebugAndroidTestAssets" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="generateDebugAndroidTestBuildConfig" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="generateDebugAndroidTestResValues" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="generateDebugAndroidTestResources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="generateDebugAndroidTestSources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="generateDebugAssets" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="generateDebugBuildConfig" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="generateDebugResValues" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="generateDebugResources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="generateDebugSources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="generateReleaseAssets" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="generateReleaseBuildConfig" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="generateReleaseResValues" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="generateReleaseResources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="generateReleaseSources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Installs the Debug build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="installDebug" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Installs the android (on device) tests for the Debug build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="installDebugAndroidTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="jarDebugClasses" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="jarReleaseClasses" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Runs lint on all variants." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="lint" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Runs lint on the Debug build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="lintDebug" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Runs lint on the Release build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="lintRelease" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Runs lint on just the fatal issues in the Release build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="lintVitalRelease" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="mergeDebugAndroidTestAssets" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="mergeDebugAndroidTestResources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="mergeDebugAssets" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="mergeDebugResources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="mergeReleaseAssets" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="mergeReleaseResources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Creates a version of android.jar that's suitable for unit tests." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="mockableAndroidJar" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="packageDebug" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="packageDebugAndroidTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="packageRelease" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="preBuild" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="preCompileDebugUnitTestJava" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="preCompileReleaseUnitTestJava" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="preDebugAndroidTestBuild" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="preDebugBuild" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="preDebugUnitTestBuild" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="preDexDebug" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="preDexDebugAndroidTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="preReleaseBuild" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="preReleaseUnitTestBuild" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="prepareDebugAndroidTestDependencies" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="prepareDebugDependencies" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="prepareDebugUnitTestDependencies" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="prepareReleaseDependencies" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="prepareReleaseUnitTestDependencies" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="processDebugAndroidTestJavaRes" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="processDebugAndroidTestManifest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="processDebugAndroidTestResources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="processDebugJavaRes" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="processDebugManifest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="processDebugResources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="processDebugUnitTestJavaRes" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="processReleaseJavaRes" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="processReleaseManifest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="processReleaseResources" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="processReleaseUnitTestJavaRes" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="proguardRelease" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Displays the signing info for each variant." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="signingReport" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Run unit tests for all variants." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="test" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Run unit tests for the debug build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="testDebug" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Run unit tests for the release build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="testRelease" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Uninstall all applications." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="uninstallAll" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Uninstalls the Debug build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="uninstallDebug" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Uninstalls the android (on device) tests for the Debug build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="uninstallDebugAndroidTest" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="description" value="Uninstalls the Release build." /> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="uninstallRelease" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="validateDebugSigning" /> + </ExternalTaskPojo> + <ExternalTaskPojo> + <option name="linkedExternalProjectPath" value="$PROJECT_DIR$/app" /> + <option name="name" value="zipalignDebug" /> + </ExternalTaskPojo> + </list> + </value> + </entry> + </map> + </option> + <option name="modificationStamps"> + <map> + <entry key="$PROJECT_DIR$" value="4339547659000" /> + </map> + </option> + <option name="projectBuildClasspath"> + <map> + <entry key="$PROJECT_DIR$"> + <value> + <ExternalProjectBuildClasspathPojo> + <option name="modulesBuildClasspath"> + <map> + <entry key="$PROJECT_DIR$"> + <value> + <ExternalModuleBuildClasspathPojo> + <option name="entries"> + <list> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/gradle/1.2.3/gradle-1.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/gradle/1.2.3/gradle-1.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/gradle-core/1.2.3/gradle-core-1.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/gradle-core/1.2.3/gradle-core-1.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/proguard/proguard-gradle/5.1/proguard-gradle-5.1-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/proguard/proguard-gradle/5.1/proguard-gradle-5.1.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/lint/lint/24.2.3/lint-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/lint/lint/24.2.3/lint-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/builder/1.2.3/builder-1.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/builder/1.2.3/builder-1.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/proguard/proguard-base/5.1/proguard-base-5.1-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/proguard/proguard-base/5.1/proguard-base-5.1.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/eclipse/jdt/core/compiler/ecj/4.4/ecj-4.4-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/eclipse/jdt/core/compiler/ecj/4.4/ecj-4.4.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/lint/lint-checks/24.2.3/lint-checks-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/lint/lint-checks/24.2.3/lint-checks-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/bouncycastle/bcprov-jdk15on/1.48/bcprov-jdk15on-1.48-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/bouncycastle/bcprov-jdk15on/1.48/bcprov-jdk15on-1.48.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/sdk-common/24.2.3/sdk-common-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/sdk-common/24.2.3/sdk-common-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/builder-test-api/1.2.3/builder-test-api-1.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/builder-test-api/1.2.3/builder-test-api-1.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/squareup/javawriter/2.5.0/javawriter-2.5.0-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/squareup/javawriter/2.5.0/javawriter-2.5.0.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/common/24.2.3/common-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/common/24.2.3/common-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/builder-model/1.2.3/builder-model-1.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/builder-model/1.2.3/builder-model-1.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/sdklib/24.2.3/sdklib-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/sdklib/24.2.3/sdklib-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/manifest-merger/24.2.3/manifest-merger-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/manifest-merger/24.2.3/manifest-merger-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/ddms/ddmlib/24.2.3/ddmlib-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/ddms/ddmlib/24.2.3/ddmlib-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm/5.0.3/asm-5.0.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm/5.0.3/asm-5.0.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/google/code/gson/gson/2.2.4/gson-2.2.4-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/bouncycastle/bcpkix-jdk15on/1.48/bcpkix-jdk15on-1.48-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/bouncycastle/bcpkix-jdk15on/1.48/bcpkix-jdk15on-1.48.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/lint/lint-api/24.2.3/lint-api-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/lint/lint-api/24.2.3/lint-api-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-analysis/5.0.3/asm-analysis-5.0.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-analysis/5.0.3/asm-analysis-5.0.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/google/guava/guava/17.0/guava-17.0-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/google/guava/guava/17.0/guava-17.0.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/annotations/24.2.3/annotations-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/annotations/24.2.3/annotations-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/layoutlib/layoutlib-api/24.2.3/layoutlib-api-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/layoutlib/layoutlib-api/24.2.3/layoutlib-api-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpclient/4.1.1/httpclient-4.1.1-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpclient/4.1.1/httpclient-4.1.1.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpmime/4.1/httpmime-4.1-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpmime/4.1/httpmime-4.1.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/dvlib/24.2.3/dvlib-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/dvlib/24.2.3/dvlib-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/external/lombok/lombok-ast/0.2.3/lombok-ast-0.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/external/lombok/lombok-ast/0.2.3/lombok-ast-0.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpcore/4.1/httpcore-4.1-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpcore/4.1/httpcore-4.1.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-codec/commons-codec/1.4/commons-codec-1.4-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-codec/commons-codec/1.4/commons-codec-1.4.jar" /> + </list> + </option> + <option name="path" value="$PROJECT_DIR$" /> + </ExternalModuleBuildClasspathPojo> + </value> + </entry> + <entry key="$PROJECT_DIR$/app"> + <value> + <ExternalModuleBuildClasspathPojo> + <option name="entries"> + <list> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/gradle/1.2.3/gradle-1.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/gradle/1.2.3/gradle-1.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/gradle-core/1.2.3/gradle-core-1.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/gradle-core/1.2.3/gradle-core-1.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/proguard/proguard-gradle/5.1/proguard-gradle-5.1-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/proguard/proguard-gradle/5.1/proguard-gradle-5.1.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/lint/lint/24.2.3/lint-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/lint/lint/24.2.3/lint-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/builder/1.2.3/builder-1.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/builder/1.2.3/builder-1.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/proguard/proguard-base/5.1/proguard-base-5.1-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/proguard/proguard-base/5.1/proguard-base-5.1.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/eclipse/jdt/core/compiler/ecj/4.4/ecj-4.4-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/eclipse/jdt/core/compiler/ecj/4.4/ecj-4.4.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/lint/lint-checks/24.2.3/lint-checks-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/lint/lint-checks/24.2.3/lint-checks-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/bouncycastle/bcprov-jdk15on/1.48/bcprov-jdk15on-1.48-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/bouncycastle/bcprov-jdk15on/1.48/bcprov-jdk15on-1.48.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/sdk-common/24.2.3/sdk-common-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/sdk-common/24.2.3/sdk-common-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/builder-test-api/1.2.3/builder-test-api-1.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/builder-test-api/1.2.3/builder-test-api-1.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-tree/5.0.3/asm-tree-5.0.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/squareup/javawriter/2.5.0/javawriter-2.5.0-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/squareup/javawriter/2.5.0/javawriter-2.5.0.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/common/24.2.3/common-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/common/24.2.3/common-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/builder-model/1.2.3/builder-model-1.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/builder-model/1.2.3/builder-model-1.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/sdklib/24.2.3/sdklib-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/sdklib/24.2.3/sdklib-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/manifest-merger/24.2.3/manifest-merger-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/build/manifest-merger/24.2.3/manifest-merger-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/ddms/ddmlib/24.2.3/ddmlib-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/ddms/ddmlib/24.2.3/ddmlib-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm/5.0.3/asm-5.0.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm/5.0.3/asm-5.0.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/google/code/gson/gson/2.2.4/gson-2.2.4-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/bouncycastle/bcpkix-jdk15on/1.48/bcpkix-jdk15on-1.48-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/bouncycastle/bcpkix-jdk15on/1.48/bcpkix-jdk15on-1.48.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/lint/lint-api/24.2.3/lint-api-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/lint/lint-api/24.2.3/lint-api-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-analysis/5.0.3/asm-analysis-5.0.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/ow2/asm/asm-analysis/5.0.3/asm-analysis-5.0.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/google/guava/guava/17.0/guava-17.0-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/google/guava/guava/17.0/guava-17.0.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/annotations/24.2.3/annotations-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/annotations/24.2.3/annotations-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/layoutlib/layoutlib-api/24.2.3/layoutlib-api-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/layoutlib/layoutlib-api/24.2.3/layoutlib-api-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpclient/4.1.1/httpclient-4.1.1-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpclient/4.1.1/httpclient-4.1.1.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpmime/4.1/httpmime-4.1-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpmime/4.1/httpmime-4.1.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/commons/commons-compress/1.8.1/commons-compress-1.8.1.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/dvlib/24.2.3/dvlib-24.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/dvlib/24.2.3/dvlib-24.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/external/lombok/lombok-ast/0.2.3/lombok-ast-0.2.3-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/com/android/tools/external/lombok/lombok-ast/0.2.3/lombok-ast-0.2.3.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpcore/4.1/httpcore-4.1-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/org/apache/httpcomponents/httpcore/4.1/httpcore-4.1.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-codec/commons-codec/1.4/commons-codec-1.4-sources.jar" /> + <option value="$APPLICATION_HOME_DIR$/gradle/m2repository/commons-codec/commons-codec/1.4/commons-codec-1.4.jar" /> + <option value="$MODULE_DIR$/libs/sweetblue-javadoc.jar" /> + <option value="$MODULE_DIR$/libs/sweetblue-sources.jar" /> + <option value="$MODULE_DIR$/libs/sweetblue.jar" /> + </list> + </option> + <option name="path" value="$PROJECT_DIR$/app" /> + </ExternalModuleBuildClasspathPojo> + </value> + </entry> + </map> + </option> + <option name="name" value="app" /> + <option name="projectBuildClasspath"> + <list> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/announce" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/antlr" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/base-services" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/base-services-groovy" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/build-comparison" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/build-init" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/cli" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/code-quality" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/core" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/cunit" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/dependency-management" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/diagnostics" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/ear" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/ide" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/ide-native" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/internal-integ-testing" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/internal-testing" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/ivy" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/jacoco" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/javascript" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/jetty" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/language-groovy" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/language-java" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/language-jvm" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/language-native" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/launcher" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/maven" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/messaging" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/model-core" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/model-groovy" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/native" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/open-api" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/osgi" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/platform-base" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/platform-jvm" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/platform-native" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/plugin-development" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/plugin-use" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/plugins" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/publish" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/reporting" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/resources" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/resources-http" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/scala" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/signing" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/sonar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/tooling-api" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/ui" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/src/wrapper" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/ant-1.9.3.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/ant-launcher-1.9.3.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/gradle-base-services-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/gradle-base-services-groovy-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/gradle-cli-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/gradle-core-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/gradle-docs-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/gradle-launcher-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/gradle-messaging-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/gradle-model-core-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/gradle-model-groovy-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/gradle-native-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/gradle-open-api-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/gradle-resources-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/gradle-tooling-api-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/gradle-ui-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/gradle-wrapper-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/groovy-all-2.3.6.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/ant-antlr-1.9.3.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-announce-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-antlr-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-build-comparison-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-build-init-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-code-quality-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-cunit-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-dependency-management-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-diagnostics-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-ear-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-ide-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-ide-native-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-ivy-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-jacoco-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-javascript-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-jetty-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-language-groovy-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-language-java-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-language-jvm-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-language-native-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-maven-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-osgi-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-platform-base-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-platform-jvm-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-platform-native-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-plugin-development-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-plugin-use-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-plugins-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-publish-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-reporting-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-resources-http-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-scala-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-signing-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/gradle-sonar-2.2.1.jar" /> + <option value="$USER_HOME$/.gradle/wrapper/dists/gradle-2.2.1-all/c64ydeuardnfqctvr1gm30w53/gradle-2.2.1/lib/plugins/ivy-2.2.0.jar" /> + <option value="$PROJECT_DIR$/buildSrc/src/main/java" /> + <option value="$PROJECT_DIR$/buildSrc/src/main/groovy" /> + </list> + </option> + </ExternalProjectBuildClasspathPojo> + </value> + </entry> + </map> + </option> + <option name="externalProjectsViewState"> + <projects_view /> + </option> + </component> + <component name="IdeDocumentHistory"> + <option name="CHANGED_PATHS"> + <list> + <option value="$PROJECT_DIR$/app/src/main/java/com/idevicesinc/sweetblue/current_time_server/MyActivity.java" /> + <option value="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" /> + <option value="$PROJECT_DIR$/app/build.gradle" /> + </list> + </option> + </component> + <component name="NamedScopeManager"> + <order /> + </component> + <component name="ProjectFrameBounds"> + <option name="x" value="-1920" /> + <option name="y" value="-277" /> + <option name="width" value="1920" /> + <option name="height" value="1177" /> + </component> + <component name="ProjectLevelVcsManager" settingsEditedManually="true"> + <OptionsSetting value="true" id="Add" /> + <OptionsSetting value="true" id="Remove" /> + <OptionsSetting value="true" id="Checkout" /> + <OptionsSetting value="true" id="Update" /> + <OptionsSetting value="true" id="Status" /> + <OptionsSetting value="true" id="Edit" /> + <ConfirmationsSetting value="0" id="Add" /> + <ConfirmationsSetting value="0" id="Remove" /> + </component> + <component name="ProjectView"> + <navigator currentView="ProjectPane" proportions="" version="1"> + <flattenPackages /> + <showMembers /> + <showModules /> + <showLibraryContents /> + <hideEmptyPackages /> + <abbreviatePackageNames /> + <autoscrollToSource /> + <autoscrollFromSource /> + <sortByType /> + </navigator> + <panes> + <pane id="AndroidView"> + <subPane> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="android_studio" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="Gradle Scripts" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidBuildScriptsGroupNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="android_studio" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="app" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidModuleNode" /> + </PATH_ELEMENT> + </PATH> + </subPane> + </pane> + <pane id="PackagesPane" /> + <pane id="Scope" /> + <pane id="Scratches" /> + <pane id="ProjectPane"> + <subPane> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="android_studio" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="android_studio" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="android_studio" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="android_studio" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="android_studio" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="app" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="android_studio" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="android_studio" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="app" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="libs" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + </PATH> + </subPane> + </pane> + </panes> + </component> + <component name="PropertiesComponent"> + <property name="settings.editor.selected.configurable" value="preferences.pluginManager" /> + <property name="settings.editor.splitter.proportion" value="0.2" /> + <property name="recentsLimit" value="5" /> + <property name="ANDROID_EXTENDED_DEVICE_CHOOSER_SERIALS" value="00bffd240ca19622" /> + <property name="ANDROID_EXTENDED_DEVICE_CHOOSER_AVD" value="Nexus_5_API_22_x86" /> + </component> + <component name="RunManager" selected="Android Application.app"> + <configuration default="true" type="AndroidRunConfigurationType" factoryName="Android Application"> + <module name="" /> + <option name="ACTIVITY_CLASS" value="" /> + <option name="ACTIVITY_EXTRA_FLAGS" value="" /> + <option name="MODE" value="default_activity" /> + <option name="DEPLOY" value="true" /> + <option name="ARTIFACT_NAME" value="" /> + <option name="TARGET_SELECTION_MODE" value="EMULATOR" /> + <option name="USE_LAST_SELECTED_DEVICE" value="false" /> + <option name="PREFERRED_AVD" value="" /> + <option name="CLEAR_LOGCAT" value="false" /> + <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" /> + <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" /> + <option name="FORCE_STOP_RUNNING_APP" value="true" /> + <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="0" /> + <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" /> + <option name="SELECTED_CLOUD_DEVICE_CONFIGURATION_ID" value="0" /> + <option name="SELECTED_CLOUD_DEVICE_PROJECT_ID" value="" /> + <option name="CLOUD_DEVICE_SERIAL_NUMBER" value="" /> + <option name="USE_COMMAND_LINE" value="true" /> + <option name="COMMAND_LINE" value="" /> + <option name="WIPE_USER_DATA" value="false" /> + <option name="DISABLE_BOOT_ANIMATION" value="false" /> + <option name="NETWORK_SPEED" value="full" /> + <option name="NETWORK_LATENCY" value="none" /> + <method /> + </configuration> + <configuration default="true" type="Application" factoryName="Application"> + <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> + <option name="MAIN_CLASS_NAME" /> + <option name="VM_PARAMETERS" /> + <option name="PROGRAM_PARAMETERS" /> + <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> + <option name="ALTERNATIVE_JRE_PATH" /> + <option name="ENABLE_SWING_INSPECTOR" value="false" /> + <option name="ENV_VARIABLES" /> + <option name="PASS_PARENT_ENVS" value="true" /> + <module name="" /> + <envs /> + <method /> + </configuration> + <configuration default="true" type="JUnit" factoryName="JUnit"> + <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> + <module name="" /> + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> + <option name="ALTERNATIVE_JRE_PATH" /> + <option name="PACKAGE_NAME" /> + <option name="MAIN_CLASS_NAME" /> + <option name="METHOD_NAME" /> + <option name="TEST_OBJECT" value="class" /> + <option name="VM_PARAMETERS" value="-ea" /> + <option name="PARAMETERS" /> + <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" /> + <option name="ENV_VARIABLES" /> + <option name="PASS_PARENT_ENVS" value="true" /> + <option name="TEST_SEARCH_SCOPE"> + <value defaultName="singleModule" /> + </option> + <envs /> + <patterns /> + <method /> + </configuration> + <configuration default="true" type="Remote" factoryName="Remote"> + <option name="USE_SOCKET_TRANSPORT" value="true" /> + <option name="SERVER_MODE" value="false" /> + <option name="SHMEM_ADDRESS" value="javadebug" /> + <option name="HOST" value="localhost" /> + <option name="PORT" value="5005" /> + <method /> + </configuration> + <configuration default="true" type="TestNG" factoryName="TestNG"> + <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> + <module name="" /> + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> + <option name="ALTERNATIVE_JRE_PATH" /> + <option name="SUITE_NAME" /> + <option name="PACKAGE_NAME" /> + <option name="MAIN_CLASS_NAME" /> + <option name="METHOD_NAME" /> + <option name="GROUP_NAME" /> + <option name="TEST_OBJECT" value="CLASS" /> + <option name="VM_PARAMETERS" value="-ea" /> + <option name="PARAMETERS" /> + <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> + <option name="OUTPUT_DIRECTORY" /> + <option name="ANNOTATION_TYPE" /> + <option name="ENV_VARIABLES" /> + <option name="PASS_PARENT_ENVS" value="true" /> + <option name="TEST_SEARCH_SCOPE"> + <value defaultName="singleModule" /> + </option> + <option name="USE_DEFAULT_REPORTERS" value="false" /> + <option name="PROPERTIES_FILE" /> + <envs /> + <properties /> + <listeners /> + <method /> + </configuration> + <configuration default="false" name="app" type="AndroidRunConfigurationType" factoryName="Android Application"> + <module name="app" /> + <option name="ACTIVITY_CLASS" value="" /> + <option name="ACTIVITY_EXTRA_FLAGS" value="" /> + <option name="MODE" value="default_activity" /> + <option name="DEPLOY" value="true" /> + <option name="ARTIFACT_NAME" value="" /> + <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" /> + <option name="USE_LAST_SELECTED_DEVICE" value="false" /> + <option name="PREFERRED_AVD" value="" /> + <option name="CLEAR_LOGCAT" value="false" /> + <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" /> + <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" /> + <option name="FORCE_STOP_RUNNING_APP" value="true" /> + <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="0" /> + <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" /> + <option name="SELECTED_CLOUD_DEVICE_CONFIGURATION_ID" value="0" /> + <option name="SELECTED_CLOUD_DEVICE_PROJECT_ID" value="" /> + <option name="CLOUD_DEVICE_SERIAL_NUMBER" value="" /> + <option name="USE_COMMAND_LINE" value="true" /> + <option name="COMMAND_LINE" value="" /> + <option name="WIPE_USER_DATA" value="false" /> + <option name="DISABLE_BOOT_ANIMATION" value="false" /> + <option name="NETWORK_SPEED" value="full" /> + <option name="NETWORK_LATENCY" value="none" /> + <method /> + </configuration> + <list size="1"> + <item index="0" class="java.lang.String" itemvalue="Android Application.app" /> + </list> + <configuration name="<template>" type="Applet" default="true" selected="false"> + <option name="MAIN_CLASS_NAME" /> + <option name="HTML_FILE_NAME" /> + <option name="HTML_USED" value="false" /> + <option name="WIDTH" value="400" /> + <option name="HEIGHT" value="300" /> + <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" /> + <option name="VM_PARAMETERS" /> + </configuration> + <configuration name="<template>" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" default="true" selected="false"> + <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" /> + </configuration> + </component> + <component name="ShelveChangesManager" show_recycled="false" /> + <component name="TaskManager"> + <task active="true" id="Default" summary="Default task"> + <changelist id="f1bf0f95-6845-4a76-b687-48534e225f44" name="Default" comment="" /> + <created>1446567662102</created> + <option name="number" value="Default" /> + <updated>1446567662102</updated> + </task> + <servers /> + </component> + <component name="ToolWindowManager"> + <frame x="-1920" y="-277" width="1920" height="1177" extended-state="6" /> + <editor active="true" /> + <layout> + <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> + <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32987747" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> + <window_info id="Build Variants" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> + <window_info id="Palette	" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> + <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> + <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" /> + <window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> + <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> + <window_info id="Android Monitor" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> + <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> + <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> + <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> + <window_info id="Captures" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32960597" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> + <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> + <window_info id="Gradle Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" /> + <window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> + <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.185836" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" /> + <window_info id="Gradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> + <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> + <window_info id="Android Model" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="true" content_ui="tabs" /> + <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" /> + <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.399623" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> + <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> + <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> + <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> + <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> + <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> + <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> + <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> + </layout> + </component> + <component name="VcsContentAnnotationSettings"> + <option name="myLimit" value="2678400000" /> + </component> + <component name="XDebuggerManager"> + <breakpoint-manager /> + <watches-manager /> + </component> + <component name="editorHistoryManager"> + <entry file="file://$PROJECT_DIR$/app/src/main/java/com/idevicesinc/sweetblue/current_time_server/MyActivity.java"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="38" column="35" selection-start-line="38" selection-start-column="35" selection-end-line="38" selection-end-column="35" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/app/src/main/AndroidManifest.xml"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="11" column="79" selection-start-line="11" selection-start-column="79" selection-end-line="11" selection-end-column="79" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/build.gradle"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/app/build.gradle"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/app/src/main/java/com/idevicesinc/sweetblue/current_time_server/MyActivity.java"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="38" column="35" selection-start-line="38" selection-start-column="35" selection-end-line="38" selection-end-column="35" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/app/src/main/AndroidManifest.xml"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="11" column="79" selection-start-line="11" selection-start-column="79" selection-end-line="11" selection-end-column="79" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/build.gradle"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.0"> + <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> + <folding /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/app/build.gradle"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.22167487"> + <caret line="9" column="27" selection-start-line="9" selection-start-column="27" selection-end-line="9" selection-end-column="27" /> + <folding /> + </state> + </provider> + </entry> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/.name b/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/.name new file mode 100644 index 0000000000000000000000000000000000000000..7a0b7f0078361bdeeb90e0b1b96cd55a4c0d14d4 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/.name @@ -0,0 +1 @@ +app \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/compiler.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/compiler.xml new file mode 100644 index 0000000000000000000000000000000000000000..1f2af519b294656cbbdac62e2f50de09485b9694 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/compiler.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="CompilerConfiguration"> + <resourceExtensions /> + <wildcardResourcePatterns> + <entry name="!?*.java" /> + <entry name="!?*.form" /> + <entry name="!?*.class" /> + <entry name="!?*.groovy" /> + <entry name="!?*.scala" /> + <entry name="!?*.flex" /> + <entry name="!?*.kt" /> + <entry name="!?*.clj" /> + </wildcardResourcePatterns> + <annotationProcessing> + <profile default="true" name="Default" enabled="false"> + <processorPath useClasspath="true" /> + </profile> + </annotationProcessing> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/copyright/profiles_settings.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000000000000000000000000000000000000..e7bedf3377d40335424fd605124d4761390218bb --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ +<component name="CopyrightManager"> + <settings default="" /> +</component> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/gradle.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/gradle.xml new file mode 100644 index 0000000000000000000000000000000000000000..afade3ddbdb86396aaca4ce4336104dbff288c66 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/gradle.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="GradleSettings"> + <option name="linkedExternalProjectsSettings"> + <GradleProjectSettings> + <option name="distributionType" value="DEFAULT_WRAPPED" /> + <option name="externalProjectPath" value="$PROJECT_DIR$" /> + <option name="gradleJvm" value="1.8" /> + </GradleProjectSettings> + </option> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/misc.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/misc.xml new file mode 100644 index 0000000000000000000000000000000000000000..2d8f13e2215a162562e87592a2332c3d80bfa876 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/misc.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="EntryPointsManager"> + <entry_points version="2.0" /> + </component> + <component name="ProjectInspectionProfilesVisibleTreeState"> + <entry key="Project Default"> + <profile-state> + <expanded-state> + <State> + <id /> + </State> + <State> + <id>Android Lint</id> + </State> + </expanded-state> + </profile-state> + </entry> + </component> + <component name="ProjectLevelVcsManager" settingsEditedManually="false"> + <OptionsSetting value="true" id="Add" /> + <OptionsSetting value="true" id="Remove" /> + <OptionsSetting value="true" id="Checkout" /> + <OptionsSetting value="true" id="Update" /> + <OptionsSetting value="true" id="Status" /> + <OptionsSetting value="true" id="Edit" /> + <ConfirmationsSetting value="0" id="Add" /> + <ConfirmationsSetting value="0" id="Remove" /> + </component> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true"> + <output url="file://$PROJECT_DIR$/build/classes" /> + </component> + <component name="ProjectType"> + <option name="id" value="Android" /> + </component> + <component name="masterDetails"> + <states> + <state key="ProjectJDKs.UI"> + <settings> + <last-edited>1.8</last-edited> + <splitter-proportions> + <option name="proportions"> + <list> + <option value="0.2" /> + </list> + </option> + </splitter-proportions> + </settings> + </state> + </states> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/modules.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/modules.xml new file mode 100644 index 0000000000000000000000000000000000000000..6361584bab810ac5a791959af7bda3dcbb3542d5 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/app.iml" filepath="$PROJECT_DIR$/app.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/vcs.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..6564d52db279c4ae8d882aacf5aa89a85e7a04de --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="" vcs="" /> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/workspace.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/workspace.xml new file mode 100644 index 0000000000000000000000000000000000000000..6413c7cc6113317d09c5ffbf1a7faf705f6f3774 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/.idea/workspace.xml @@ -0,0 +1,306 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ChangeListManager"> + <list default="true" id="d7de8b60-19cd-4d4c-ae0f-36e3c8329153" name="Default" comment="" /> + <ignored path="app.iws" /> + <ignored path=".idea/workspace.xml" /> + <ignored path="$PROJECT_DIR$/build/intermediates/assets/" /> + <ignored path="$PROJECT_DIR$/build/intermediates/bundles/" /> + <ignored path="$PROJECT_DIR$/build/intermediates/classes/" /> + <ignored path="$PROJECT_DIR$/build/intermediates/coverage-instrumented-classes/" /> + <ignored path="$PROJECT_DIR$/build/intermediates/dependency-cache/" /> + <ignored path="$PROJECT_DIR$/build/intermediates/dex/" /> + <ignored path="$PROJECT_DIR$/build/intermediates/dex-cache/" /> + <ignored path="$PROJECT_DIR$/build/intermediates/incremental/" /> + <ignored path="$PROJECT_DIR$/build/intermediates/jacoco/" /> + <ignored path="$PROJECT_DIR$/build/intermediates/javaResources/" /> + <ignored path="$PROJECT_DIR$/build/intermediates/libs/" /> + <ignored path="$PROJECT_DIR$/build/intermediates/lint/" /> + <ignored path="$PROJECT_DIR$/build/intermediates/manifests/" /> + <ignored path="$PROJECT_DIR$/build/intermediates/ndk/" /> + <ignored path="$PROJECT_DIR$/build/intermediates/pre-dexed/" /> + <ignored path="$PROJECT_DIR$/build/intermediates/proguard/" /> + <ignored path="$PROJECT_DIR$/build/intermediates/res/" /> + <ignored path="$PROJECT_DIR$/build/intermediates/rs/" /> + <ignored path="$PROJECT_DIR$/build/intermediates/symbols/" /> + <ignored path="$PROJECT_DIR$/build/outputs/" /> + <ignored path="$PROJECT_DIR$/build/tmp/" /> + <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> + <option name="TRACKING_ENABLED" value="true" /> + <option name="SHOW_DIALOG" value="false" /> + <option name="HIGHLIGHT_CONFLICTS" value="true" /> + <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> + <option name="LAST_RESOLUTION" value="IGNORE" /> + </component> + <component name="ChangesViewManager" flattened_view="true" show_ignored="false" /> + <component name="CreatePatchCommitExecutor"> + <option name="PATCH_PATH" value="" /> + </component> + <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" /> + <component name="ExternalProjectsManager"> + <system id="GRADLE"> + <state> + <projects_view /> + </state> + </system> + </component> + <component name="FavoritesManager"> + <favorites_list name="app" /> + </component> + <component name="FileEditorManager"> + <leaf> + <file leaf-file-name="MyActivity.java" pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/src/main/java/com/idevicesinc/sweetblue/current_time_server/MyActivity.java"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.1138088"> + <caret line="17" column="37" selection-start-line="17" selection-start-column="37" selection-end-line="17" selection-end-column="37" /> + <folding /> + </state> + </provider> + </entry> + </file> + </leaf> + </component> + <component name="GradleLocalSettings"> + <option name="externalProjectsViewState"> + <projects_view /> + </option> + </component> + <component name="NamedScopeManager"> + <order /> + </component> + <component name="ProjectFrameBounds"> + <option name="x" value="132" /> + <option name="y" value="-1161" /> + <option name="width" value="1920" /> + <option name="height" value="1178" /> + </component> + <component name="ProjectLevelVcsManager" settingsEditedManually="false"> + <OptionsSetting value="true" id="Add" /> + <OptionsSetting value="true" id="Remove" /> + <OptionsSetting value="true" id="Checkout" /> + <OptionsSetting value="true" id="Update" /> + <OptionsSetting value="true" id="Status" /> + <OptionsSetting value="true" id="Edit" /> + <ConfirmationsSetting value="0" id="Add" /> + <ConfirmationsSetting value="0" id="Remove" /> + </component> + <component name="ProjectView"> + <navigator currentView="AndroidView" proportions="" version="1"> + <flattenPackages /> + <showMembers /> + <showModules /> + <showLibraryContents /> + <hideEmptyPackages /> + <abbreviatePackageNames /> + <autoscrollToSource /> + <autoscrollFromSource /> + <sortByType /> + </navigator> + <panes> + <pane id="ProjectPane" /> + <pane id="Scratches" /> + <pane id="PackagesPane" /> + <pane id="Scope" /> + <pane id="AndroidView"> + <subPane> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="app" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidViewProjectNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="app" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="app" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.NonAndroidModuleNode" /> + </PATH_ELEMENT> + </PATH> + <PATH> + <PATH_ELEMENT> + <option name="myItemId" value="app" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.AndroidViewProjectNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="app" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.NonAndroidModuleNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="java" /> + <option name="myItemType" value="com.android.tools.idea.navigator.nodes.NonAndroidSourceTypeNode" /> + </PATH_ELEMENT> + <PATH_ELEMENT> + <option name="myItemId" value="current_time_server" /> + <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" /> + </PATH_ELEMENT> + </PATH> + </subPane> + </pane> + </panes> + </component> + <component name="PropertiesComponent"> + <property name="GoToClass.includeLibraries" value="false" /> + <property name="GoToClass.toSaveIncludeLibraries" value="false" /> + <property name="GoToFile.includeJavaFiles" value="false" /> + <property name="MemberChooser.sorted" value="false" /> + <property name="MemberChooser.showClasses" value="true" /> + <property name="MemberChooser.copyJavadoc" value="false" /> + <property name="options.lastSelected" value="Errors" /> + <property name="options.splitter.main.proportions" value="0.3" /> + <property name="options.splitter.details.proportions" value="0.2" /> + <property name="options.searchVisible" value="true" /> + </component> + <component name="RunManager"> + <configuration default="true" type="Application" factoryName="Application"> + <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> + <option name="MAIN_CLASS_NAME" /> + <option name="VM_PARAMETERS" /> + <option name="PROGRAM_PARAMETERS" /> + <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> + <option name="ALTERNATIVE_JRE_PATH" /> + <option name="ENABLE_SWING_INSPECTOR" value="false" /> + <option name="ENV_VARIABLES" /> + <option name="PASS_PARENT_ENVS" value="true" /> + <module name="" /> + <envs /> + <method /> + </configuration> + <configuration default="true" type="JUnit" factoryName="JUnit"> + <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> + <module name="" /> + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> + <option name="ALTERNATIVE_JRE_PATH" /> + <option name="PACKAGE_NAME" /> + <option name="MAIN_CLASS_NAME" /> + <option name="METHOD_NAME" /> + <option name="TEST_OBJECT" value="class" /> + <option name="VM_PARAMETERS" value="-ea" /> + <option name="PARAMETERS" /> + <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> + <option name="ENV_VARIABLES" /> + <option name="PASS_PARENT_ENVS" value="true" /> + <option name="TEST_SEARCH_SCOPE"> + <value defaultName="moduleWithDependencies" /> + </option> + <envs /> + <patterns /> + <method /> + </configuration> + <configuration default="true" type="Remote" factoryName="Remote"> + <option name="USE_SOCKET_TRANSPORT" value="true" /> + <option name="SERVER_MODE" value="false" /> + <option name="SHMEM_ADDRESS" value="javadebug" /> + <option name="HOST" value="localhost" /> + <option name="PORT" value="5005" /> + <method /> + </configuration> + <configuration default="true" type="TestNG" factoryName="TestNG"> + <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> + <module name="" /> + <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" /> + <option name="ALTERNATIVE_JRE_PATH" /> + <option name="SUITE_NAME" /> + <option name="PACKAGE_NAME" /> + <option name="MAIN_CLASS_NAME" /> + <option name="METHOD_NAME" /> + <option name="GROUP_NAME" /> + <option name="TEST_OBJECT" value="CLASS" /> + <option name="VM_PARAMETERS" value="-ea" /> + <option name="PARAMETERS" /> + <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" /> + <option name="OUTPUT_DIRECTORY" /> + <option name="ANNOTATION_TYPE" /> + <option name="ENV_VARIABLES" /> + <option name="PASS_PARENT_ENVS" value="true" /> + <option name="TEST_SEARCH_SCOPE"> + <value defaultName="moduleWithDependencies" /> + </option> + <option name="USE_DEFAULT_REPORTERS" value="false" /> + <option name="PROPERTIES_FILE" /> + <envs /> + <properties /> + <listeners /> + <method /> + </configuration> + <configuration name="<template>" type="Applet" default="true" selected="false"> + <option name="MAIN_CLASS_NAME" /> + <option name="HTML_FILE_NAME" /> + <option name="HTML_USED" value="false" /> + <option name="WIDTH" value="400" /> + <option name="HEIGHT" value="300" /> + <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" /> + <option name="VM_PARAMETERS" /> + </configuration> + <configuration name="<template>" type="#org.jetbrains.idea.devkit.run.PluginConfigurationType" default="true" selected="false"> + <option name="VM_PARAMETERS" value="-Xmx512m -Xms256m -XX:MaxPermSize=250m -ea" /> + </configuration> + <configuration name="<template>" type="WebApp" default="true" selected="false"> + <Host>localhost</Host> + <Port>5050</Port> + </configuration> + </component> + <component name="ShelveChangesManager" show_recycled="false" /> + <component name="TaskManager"> + <task active="true" id="Default" summary="Default task"> + <changelist id="d7de8b60-19cd-4d4c-ae0f-36e3c8329153" name="Default" comment="" /> + <created>1440774257705</created> + <option name="number" value="Default" /> + <updated>1440774257705</updated> + </task> + <servers /> + </component> + <component name="ToolWindowManager"> + <frame x="132" y="-1161" width="1920" height="1178" extended-state="0" /> + <editor active="true" /> + <layout> + <window_info id="Palette	" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> + <window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> + <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> + <window_info id="Captures" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32960597" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> + <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" /> + <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" /> + <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> + <window_info id="Build Variants" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" /> + <window_info id="Gradle Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" /> + <window_info id="Messages" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32956687" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> + <window_info id="Android" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> + <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> + <window_info id="Gradle" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> + <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> + <window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> + <window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" /> + <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24973376" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" /> + <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> + <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> + <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> + <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> + <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> + <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> + <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> + <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> + <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" /> + </layout> + </component> + <component name="VcsContentAnnotationSettings"> + <option name="myLimit" value="2678400000" /> + </component> + <component name="XDebuggerManager"> + <breakpoint-manager /> + <watches-manager /> + </component> + <component name="editorHistoryManager"> + <entry file="file://$PROJECT_DIR$/src/main/java/com/idevicesinc/sweetblue/current_time_server/MyActivity.java"> + <provider selected="true" editor-type-id="text-editor"> + <state vertical-scroll-proportion="0.1138088"> + <caret line="17" column="37" selection-start-line="17" selection-start-column="37" selection-end-line="17" selection-end-column="37" /> + <folding /> + </state> + </provider> + </entry> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/build.gradle b/dev/android/sweetblue/samples/current_time_server/android_studio/app/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..65911ea0d4579be578dddfe657f5ab4ce2768ca7 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/build.gradle @@ -0,0 +1,23 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 24 + buildToolsVersion '24.0.3' + + defaultConfig { + applicationId "com.idevicesinc.sweetblue.current_time_server" + minSdkVersion 18 + targetSdkVersion 24 + } + + buildTypes { + release { + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt' + } + } + + dependencies { + compile fileTree(dir: 'libs', include: '*.jar') + } +} diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/gradle/wrapper/gradle-wrapper.jar b/dev/android/sweetblue/samples/current_time_server/android_studio/app/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..8c0fb64a8698b08ecc4158d828ca593c4928e9dd Binary files /dev/null and b/dev/android/sweetblue/samples/current_time_server/android_studio/app/gradle/wrapper/gradle-wrapper.jar differ diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/gradle/wrapper/gradle-wrapper.properties b/dev/android/sweetblue/samples/current_time_server/android_studio/app/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000000000000000000000000000000000..0c71e760dc93830dd3411fe50d6f5c86bf0a8f4d --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Wed Apr 10 15:27:10 PDT 2013 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/gradlew b/dev/android/sweetblue/samples/current_time_server/android_studio/app/gradlew new file mode 100644 index 0000000000000000000000000000000000000000..91a7e269e19dfc62e27137a0b57ef3e430cee4fd --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/gradlew.bat b/dev/android/sweetblue/samples/current_time_server/android_studio/app/gradlew.bat new file mode 100644 index 0000000000000000000000000000000000000000..8a0b282aa6885fb573c106b3551f7275c5f17e8e --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/libs/sweetblue-javadoc.jar b/dev/android/sweetblue/samples/current_time_server/android_studio/app/libs/sweetblue-javadoc.jar new file mode 100644 index 0000000000000000000000000000000000000000..eb495aefe26c6cea1a15d2ed00a50ee8063b6692 Binary files /dev/null and b/dev/android/sweetblue/samples/current_time_server/android_studio/app/libs/sweetblue-javadoc.jar differ diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/libs/sweetblue-sources.jar b/dev/android/sweetblue/samples/current_time_server/android_studio/app/libs/sweetblue-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..7144cc70cee251dbc63acba80818d1e08b4298d4 Binary files /dev/null and b/dev/android/sweetblue/samples/current_time_server/android_studio/app/libs/sweetblue-sources.jar differ diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/libs/sweetblue.jar b/dev/android/sweetblue/samples/current_time_server/android_studio/app/libs/sweetblue.jar new file mode 100644 index 0000000000000000000000000000000000000000..dc5f6329dbfe534d9c8ee98f288e1cf4c4137d17 Binary files /dev/null and b/dev/android/sweetblue/samples/current_time_server/android_studio/app/libs/sweetblue.jar differ diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/proguard-project.txt b/dev/android/sweetblue/samples/current_time_server/android_studio/app/proguard-project.txt new file mode 100644 index 0000000000000000000000000000000000000000..f2fe1559a217865a5454add526dcc446f892385b --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/proguard-project.txt @@ -0,0 +1,20 @@ +# To enable ProGuard in your project, edit project.properties +# to define the proguard.config property as described in that file. +# +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in ${sdk.dir}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the ProGuard +# include property in project.properties. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/AndroidManifest.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..5af539a39042cf0f27b40d6c774b74b42bddf6ef --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/AndroidManifest.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.idevicesinc.sweetblue.current_time_server" + android:versionCode="1" + android:versionName="1.0" > + + <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19" /> + <uses-permission android:name="android.permission.BLUETOOTH" /> + <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> + <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" /> + <uses-permission android:name="android.permission.WAKE_LOCK" /> + <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> + <uses-feature android:name="android.hardware.bluetooth_le" android:required="true" /> + + <application + android:allowBackup="true" + android:icon="@drawable/ic_launcher" + android:label="@string/app_name" + android:theme="@style/AppTheme" > + <activity + android:name="com.idevicesinc.sweetblue.current_time_server.MyActivity" + android:label="@string/app_name" > + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> + +</manifest> diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/java/com/idevicesinc/sweetblue/current_time_server/MyActivity.java b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/java/com/idevicesinc/sweetblue/current_time_server/MyActivity.java new file mode 100644 index 0000000000000000000000000000000000000000..75a1fe472a1fbf52d659c90e2dbd43185f5d43db --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/java/com/idevicesinc/sweetblue/current_time_server/MyActivity.java @@ -0,0 +1,189 @@ +package com.idevicesinc.sweetblue.current_time_server; + +import com.idevicesinc.sweetblue.BleDevice; +import com.idevicesinc.sweetblue.BleDeviceState; +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.BleManagerConfig; +import com.idevicesinc.sweetblue.BleServer; +import com.idevicesinc.sweetblue.BleServerState; +import com.idevicesinc.sweetblue.BleServices; +import com.idevicesinc.sweetblue.BleStatuses; +import com.idevicesinc.sweetblue.utils.BluetoothEnabler; +import com.idevicesinc.sweetblue.utils.ForEach_Void; +import com.idevicesinc.sweetblue.utils.Utils_Time; +import com.idevicesinc.sweetblue.utils.Uuids; + +import android.app.Activity; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Button; + +/** + * This sample demonstrates setting up a server, scanning for a peripheral, connecting to that peripheral, then connecting our local time server + * to the peripheral (treating it as a "client" as far as time synchronization is concerned), and providing the time to the peripheral when it + * changes or when it asks for it. It will work with 4.3 and up. + */ +public class MyActivity extends Activity +{ + private static final String MY_DEVICE_NAME = "my_device"; // CHANGE to your device name or a substring thereof. + + @Override protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + + BluetoothEnabler.start(this); + + final BleManager mngr = BleManager.get(this); + final BleServer server = mngr.getServer(); + + // Set up a broadcast receiver to get updates to the phone's time and forward them to the client through BLE notifications. + this.registerReceiver(new BroadcastReceiver() + { + @Override public void onReceive(Context context, Intent intent) + { + server.getClients(new ForEach_Void<String>() + { + @Override public void next(String macAddress) + { + // We use the "future data" construct here because SweetBlue's job queue might force + // this operation to wait (absolute worst case second or two if you're really pounding SweetBlue, but still) a bit + // before it actually gets sent out over the air, and we want to send the most recent time. + server.sendNotification(macAddress, Uuids.CURRENT_TIME_SERVICE__CURRENT_TIME, Utils_Time.getFutureTime()); + } + }); + } + + }, newTimeChangeIntentFilter()); + + // Set up our incoming listener to listen for explicit read/write requests and respond accordingly. + server.setListener_Incoming(new BleServer.IncomingListener() + { + @Override public Please onEvent(final IncomingEvent e) + { + if( e.target() == Target.CHARACTERISTIC ) + { + if( e.charUuid().equals(Uuids.CURRENT_TIME_SERVICE__CURRENT_TIME) ) + { + return Please.respondWithSuccess(Utils_Time.getFutureTime()); + } + else if( e.charUuid().equals(Uuids.CURRENT_TIME_SERVICE__LOCAL_TIME_INFO) ) + { + return Please.respondWithSuccess(Utils_Time.getFutureLocalTimeInfo()); + } + } + else if( e.target() == Target.DESCRIPTOR ) + { + return Please.respondWithSuccess(); + } + + return Please.respondWithError(BleStatuses.GATT_ERROR); + } + }); + + // In a real app you can use this listener to confirm that data was sent - + // maybe pop up a toast or something to user depending on requirements. + server.setListener_Outgoing(new BleServer.OutgoingListener() + { + @Override public void onEvent(final OutgoingEvent e) + { + if( e.wasSuccess() ) + { + if( e.type().isNotificationOrIndication() ) + { + Log.i("", "Current time change sent!"); + } + else + { + Log.i("", "Current time or local info request successfully responded to!"); + } + } + else + { + Log.e("", "Problem sending time change or read request thereof."); + } + } + }); + + // Set a listener so we know when the server has finished connecting. + server.setListener_State(new BleServer.StateListener() + { + @Override public void onEvent(BleServer.StateListener.StateEvent e) + { + if( e.didEnter(BleServerState.CONNECTED) ) + { + Log.i("", "Server connected!"); + } + } + }); + + // Kick things off...from here it's a flow of a bunch of async callbacks...obviously you may want to structure this differently for your actual app. + server.addService(BleServices.currentTime(), new BleServer.ServiceAddListener() + { + @Override public void onEvent(final ServiceAddEvent e) + { + if( e.wasSuccess() ) + { + mngr.startScan(new BleManagerConfig.ScanFilter() + { + @Override public Please onEvent(final ScanEvent e) + { + return Please.acknowledgeIf(e.name_normalized().contains(MY_DEVICE_NAME)).thenStopScan(); + } + }, + + new BleManager.DiscoveryListener() + { + @Override public void onEvent(DiscoveryEvent e) + { + if( e.was(LifeCycle.DISCOVERED) ) + { + e.device().connect(new BleDevice.StateListener() + { + @Override public void onEvent(final StateEvent e) + { + if( e.didEnter(BleDeviceState.INITIALIZED) ) + { + // Note that the peripheral may have already connected itself + // as a client so this call may be redundant. + server.connect(e.device().getMacAddress()); + } + } + }); + } + } + }); + } + } + }); + } + + private static IntentFilter newTimeChangeIntentFilter() + { + final IntentFilter filter = new IntentFilter(); + + filter.addAction(Intent.ACTION_DATE_CHANGED); + filter.addAction(Intent.ACTION_TIME_CHANGED); + filter.addAction(Intent.ACTION_TIMEZONE_CHANGED); + + return filter; + } + + @Override protected void onResume() + { + super.onResume(); + + BleManager.get(this).onResume(); + } + + @Override protected void onPause() + { + super.onPause(); + + BleManager.get(this).onPause(); + } +} diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/drawable-hdpi/ic_launcher.png b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..bff79fd34ebc232fec3168fdb33d08245f58a308 Binary files /dev/null and b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/drawable-hdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/drawable-mdpi/ic_launcher.png b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6c47374bb1abda53c4000cb9d3e96671df40160b Binary files /dev/null and b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/drawable-mdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/drawable-xhdpi/ic_launcher.png b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d6e3e9591212a9e065b391c17ddcdc6474f59776 Binary files /dev/null and b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/drawable-xhdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/drawable-xxhdpi/ic_launcher.png b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..dec0b850aeb468076ce78feeb3b6acffa635f5ad Binary files /dev/null and b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/drawable-xxhdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/menu/my.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/menu/my.xml new file mode 100644 index 0000000000000000000000000000000000000000..543a3be88254ac5f4f7b79b10dda6326099edb49 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/menu/my.xml @@ -0,0 +1,11 @@ +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + tools:context="com.idevicesllc.current_time_server.MyActivity" > + + <item + android:id="@+id/action_settings" + android:orderInCategory="100" + android:showAsAction="never" + android:title="@string/action_settings"/> + +</menu> diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/values-v11/styles.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/values-v11/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..3c02242ad044be9b8c7c09e7c90c5d427763fe97 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/values-v11/styles.xml @@ -0,0 +1,11 @@ +<resources> + + <!-- + Base application theme for API 11+. This theme completely replaces + AppBaseTheme from res/values/styles.xml on API 11+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light"> + <!-- API 11 theme customizations can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/values-v14/styles.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/values-v14/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..a91fd0372b20f85e284fc2fa2ce949176dfdf6e5 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/values-v14/styles.xml @@ -0,0 +1,12 @@ +<resources> + + <!-- + Base application theme for API 14+. This theme completely replaces + AppBaseTheme from BOTH res/values/styles.xml and + res/values-v11/styles.xml on API 14+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> + <!-- API 14 theme customizations can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/values-w820dp/dimens.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/values-w820dp/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..f3e70203b90ac39368a634f0c6388ccb615ffeca --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/values-w820dp/dimens.xml @@ -0,0 +1,10 @@ +<resources> + + <!-- + Example customization of dimensions originally defined in res/values/dimens.xml + (such as screen margins) for screens with more than 820dp of available width. This + would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). + --> + <dimen name="activity_horizontal_margin">64dp</dimen> + +</resources> diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/values/dimens.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..55c1e5908c7e0f157fe815acd6d5cd7358463390 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/values/dimens.xml @@ -0,0 +1,7 @@ +<resources> + + <!-- Default screen margins, per the Android Design guidelines. --> + <dimen name="activity_horizontal_margin">16dp</dimen> + <dimen name="activity_vertical_margin">16dp</dimen> + +</resources> diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/values/strings.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/values/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..e75c6229b9dc9c0fed60341cb9b2952da2b01d52 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/values/strings.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <string name="app_name">current_time_server</string> + <string name="hello_world">Hello world!</string> + <string name="action_settings">Settings</string> + +</resources> diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/values/styles.xml b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/values/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..6ce89c7ba4394d8cab27953d41456ce234ca37c3 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/app/src/main/res/values/styles.xml @@ -0,0 +1,20 @@ +<resources> + + <!-- + Base application theme, dependent on API level. This theme is replaced + by AppBaseTheme from res/values-vXX/styles.xml on newer devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Light"> + <!-- + Theme customizations available in newer API levels can go in + res/values-vXX/styles.xml, while customizations related to + backward-compatibility can go here. + --> + </style> + + <!-- Application theme. --> + <style name="AppTheme" parent="AppBaseTheme"> + <!-- All customizations that are NOT specific to a particular API-level can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/build.gradle b/dev/android/sweetblue/samples/current_time_server/android_studio/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..739ceb5cde8c843d05c4e601997a0126f1ce3b19 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/build.gradle @@ -0,0 +1,15 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.0.0' + } +} + +allprojects { + repositories { + jcenter() + } +} diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/gradle/wrapper/gradle-wrapper.jar b/dev/android/sweetblue/samples/current_time_server/android_studio/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..8c0fb64a8698b08ecc4158d828ca593c4928e9dd Binary files /dev/null and b/dev/android/sweetblue/samples/current_time_server/android_studio/gradle/wrapper/gradle-wrapper.jar differ diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/gradle/wrapper/gradle-wrapper.properties b/dev/android/sweetblue/samples/current_time_server/android_studio/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000000000000000000000000000000000..d57051703e32b305b0071fed7cef094fd0504f39 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Wed Apr 10 15:27:10 PDT 2013 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/gradlew b/dev/android/sweetblue/samples/current_time_server/android_studio/gradlew new file mode 100644 index 0000000000000000000000000000000000000000..91a7e269e19dfc62e27137a0b57ef3e430cee4fd --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/gradlew.bat b/dev/android/sweetblue/samples/current_time_server/android_studio/gradlew.bat new file mode 100644 index 0000000000000000000000000000000000000000..8a0b282aa6885fb573c106b3551f7275c5f17e8e --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/dev/android/sweetblue/samples/current_time_server/android_studio/settings.gradle b/dev/android/sweetblue/samples/current_time_server/android_studio/settings.gradle new file mode 100644 index 0000000000000000000000000000000000000000..e7b4def49cb53d9aa04228dd3edb14c9e635e003 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/android_studio/settings.gradle @@ -0,0 +1 @@ +include ':app' diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/.classpath b/dev/android/sweetblue/samples/current_time_server/eclipse/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..6cf38cead6cae857780fdc56c8639e1b11606b41 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/eclipse/.classpath @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="src" path="gen"/> + <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> + <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> + <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> + <classpathentry exported="true" kind="lib" path="lib/sweetblue.jar" sourcepath="lib/sweetblue-sources.jar"> + <attributes> + <attribute name="javadoc_location" value="jar:platform:/resource/current_time_server/lib/sweetblue-javadoc.jar!/"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="bin/classes"/> +</classpath> diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/.project b/dev/android/sweetblue/samples/current_time_server/eclipse/.project new file mode 100644 index 0000000000000000000000000000000000000000..426cc53385157458eb74a4a65bd92a8256544079 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/eclipse/.project @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>current_time_server</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>com.android.ide.eclipse.adt.ApkBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>com.android.ide.eclipse.adt.AndroidNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/AndroidManifest.xml b/dev/android/sweetblue/samples/current_time_server/eclipse/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..218ae3837373e8ef286dbaa52ad08686a42b4529 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/eclipse/AndroidManifest.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.idevicesinc.sweetblue.current_time_server" + android:versionCode="1" + android:versionName="1.0" > + + <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19" /> + <uses-permission android:name="android.permission.BLUETOOTH" /> + <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> + <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" /> + <uses-permission android:name="android.permission.WAKE_LOCK" /> + <uses-feature android:name="android.hardware.bluetooth_le" android:required="true" /> + + <application + android:allowBackup="true" + android:icon="@drawable/ic_launcher" + android:label="@string/app_name" + android:theme="@style/AppTheme" > + <activity + android:name="com.idevicesinc.sweetblue.current_time_server.MyActivity" + android:label="@string/app_name" > + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> + +</manifest> diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/ic_launcher-web.png b/dev/android/sweetblue/samples/current_time_server/eclipse/ic_launcher-web.png new file mode 100644 index 0000000000000000000000000000000000000000..4131fb0c65644442ce70071b0cfafb9e631ba228 Binary files /dev/null and b/dev/android/sweetblue/samples/current_time_server/eclipse/ic_launcher-web.png differ diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/lib/sweetblue-javadoc.jar b/dev/android/sweetblue/samples/current_time_server/eclipse/lib/sweetblue-javadoc.jar new file mode 100644 index 0000000000000000000000000000000000000000..eb495aefe26c6cea1a15d2ed00a50ee8063b6692 Binary files /dev/null and b/dev/android/sweetblue/samples/current_time_server/eclipse/lib/sweetblue-javadoc.jar differ diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/lib/sweetblue-sources.jar b/dev/android/sweetblue/samples/current_time_server/eclipse/lib/sweetblue-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..7144cc70cee251dbc63acba80818d1e08b4298d4 Binary files /dev/null and b/dev/android/sweetblue/samples/current_time_server/eclipse/lib/sweetblue-sources.jar differ diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/lib/sweetblue.jar b/dev/android/sweetblue/samples/current_time_server/eclipse/lib/sweetblue.jar new file mode 100644 index 0000000000000000000000000000000000000000..dc5f6329dbfe534d9c8ee98f288e1cf4c4137d17 Binary files /dev/null and b/dev/android/sweetblue/samples/current_time_server/eclipse/lib/sweetblue.jar differ diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/proguard-project.txt b/dev/android/sweetblue/samples/current_time_server/eclipse/proguard-project.txt new file mode 100644 index 0000000000000000000000000000000000000000..f2fe1559a217865a5454add526dcc446f892385b --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/eclipse/proguard-project.txt @@ -0,0 +1,20 @@ +# To enable ProGuard in your project, edit project.properties +# to define the proguard.config property as described in that file. +# +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in ${sdk.dir}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the ProGuard +# include property in project.properties. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/project.properties b/dev/android/sweetblue/samples/current_time_server/eclipse/project.properties new file mode 100644 index 0000000000000000000000000000000000000000..738e84e9ff125d545d14646c43651fcb788f9657 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/eclipse/project.properties @@ -0,0 +1,14 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system edit +# "ant.properties", and override values to adapt the script to your +# project structure. +# +# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): +proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt + +# Project target. +target=android-19 diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/res/drawable-hdpi/ic_launcher.png b/dev/android/sweetblue/samples/current_time_server/eclipse/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..bff79fd34ebc232fec3168fdb33d08245f58a308 Binary files /dev/null and b/dev/android/sweetblue/samples/current_time_server/eclipse/res/drawable-hdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/res/drawable-mdpi/ic_launcher.png b/dev/android/sweetblue/samples/current_time_server/eclipse/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6c47374bb1abda53c4000cb9d3e96671df40160b Binary files /dev/null and b/dev/android/sweetblue/samples/current_time_server/eclipse/res/drawable-mdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/res/drawable-xhdpi/ic_launcher.png b/dev/android/sweetblue/samples/current_time_server/eclipse/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d6e3e9591212a9e065b391c17ddcdc6474f59776 Binary files /dev/null and b/dev/android/sweetblue/samples/current_time_server/eclipse/res/drawable-xhdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/res/drawable-xxhdpi/ic_launcher.png b/dev/android/sweetblue/samples/current_time_server/eclipse/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..dec0b850aeb468076ce78feeb3b6acffa635f5ad Binary files /dev/null and b/dev/android/sweetblue/samples/current_time_server/eclipse/res/drawable-xxhdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/res/menu/my.xml b/dev/android/sweetblue/samples/current_time_server/eclipse/res/menu/my.xml new file mode 100644 index 0000000000000000000000000000000000000000..543a3be88254ac5f4f7b79b10dda6326099edb49 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/eclipse/res/menu/my.xml @@ -0,0 +1,11 @@ +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + tools:context="com.idevicesllc.current_time_server.MyActivity" > + + <item + android:id="@+id/action_settings" + android:orderInCategory="100" + android:showAsAction="never" + android:title="@string/action_settings"/> + +</menu> diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/res/values-v11/styles.xml b/dev/android/sweetblue/samples/current_time_server/eclipse/res/values-v11/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..3c02242ad044be9b8c7c09e7c90c5d427763fe97 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/eclipse/res/values-v11/styles.xml @@ -0,0 +1,11 @@ +<resources> + + <!-- + Base application theme for API 11+. This theme completely replaces + AppBaseTheme from res/values/styles.xml on API 11+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light"> + <!-- API 11 theme customizations can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/res/values-v14/styles.xml b/dev/android/sweetblue/samples/current_time_server/eclipse/res/values-v14/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..a91fd0372b20f85e284fc2fa2ce949176dfdf6e5 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/eclipse/res/values-v14/styles.xml @@ -0,0 +1,12 @@ +<resources> + + <!-- + Base application theme for API 14+. This theme completely replaces + AppBaseTheme from BOTH res/values/styles.xml and + res/values-v11/styles.xml on API 14+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> + <!-- API 14 theme customizations can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/res/values-w820dp/dimens.xml b/dev/android/sweetblue/samples/current_time_server/eclipse/res/values-w820dp/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..f3e70203b90ac39368a634f0c6388ccb615ffeca --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/eclipse/res/values-w820dp/dimens.xml @@ -0,0 +1,10 @@ +<resources> + + <!-- + Example customization of dimensions originally defined in res/values/dimens.xml + (such as screen margins) for screens with more than 820dp of available width. This + would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). + --> + <dimen name="activity_horizontal_margin">64dp</dimen> + +</resources> diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/res/values/dimens.xml b/dev/android/sweetblue/samples/current_time_server/eclipse/res/values/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..55c1e5908c7e0f157fe815acd6d5cd7358463390 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/eclipse/res/values/dimens.xml @@ -0,0 +1,7 @@ +<resources> + + <!-- Default screen margins, per the Android Design guidelines. --> + <dimen name="activity_horizontal_margin">16dp</dimen> + <dimen name="activity_vertical_margin">16dp</dimen> + +</resources> diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/res/values/strings.xml b/dev/android/sweetblue/samples/current_time_server/eclipse/res/values/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..e75c6229b9dc9c0fed60341cb9b2952da2b01d52 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/eclipse/res/values/strings.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <string name="app_name">current_time_server</string> + <string name="hello_world">Hello world!</string> + <string name="action_settings">Settings</string> + +</resources> diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/res/values/styles.xml b/dev/android/sweetblue/samples/current_time_server/eclipse/res/values/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..6ce89c7ba4394d8cab27953d41456ce234ca37c3 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/eclipse/res/values/styles.xml @@ -0,0 +1,20 @@ +<resources> + + <!-- + Base application theme, dependent on API level. This theme is replaced + by AppBaseTheme from res/values-vXX/styles.xml on newer devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Light"> + <!-- + Theme customizations available in newer API levels can go in + res/values-vXX/styles.xml, while customizations related to + backward-compatibility can go here. + --> + </style> + + <!-- Application theme. --> + <style name="AppTheme" parent="AppBaseTheme"> + <!-- All customizations that are NOT specific to a particular API-level can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/current_time_server/eclipse/src/com/idevicesinc/sweetblue/current_time_server/MyActivity.java b/dev/android/sweetblue/samples/current_time_server/eclipse/src/com/idevicesinc/sweetblue/current_time_server/MyActivity.java new file mode 100644 index 0000000000000000000000000000000000000000..10dc4852d4e131951772f433df31af17aca35277 --- /dev/null +++ b/dev/android/sweetblue/samples/current_time_server/eclipse/src/com/idevicesinc/sweetblue/current_time_server/MyActivity.java @@ -0,0 +1,186 @@ +package com.idevicesinc.sweetblue.current_time_server; + +import com.idevicesinc.sweetblue.BleDevice; +import com.idevicesinc.sweetblue.BleDeviceState; +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.BleManagerConfig; +import com.idevicesinc.sweetblue.BleServer; +import com.idevicesinc.sweetblue.BleServerState; +import com.idevicesinc.sweetblue.BleServices; +import com.idevicesinc.sweetblue.BleStatuses; +import com.idevicesinc.sweetblue.utils.ForEach_Void; +import com.idevicesinc.sweetblue.utils.Utils_Time; +import com.idevicesinc.sweetblue.utils.Uuids; + +import android.app.Activity; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Button; + +/** + * This sample demonstrates setting up a server, scanning for a peripheral, connecting to that peripheral, then connecting our local time server + * to the peripheral (treating it as a "client" as far as time synchronization is concerned), and providing the time to the peripheral when it + * changes or when it asks for it. It will work with 4.3 and up. + */ +public class MyActivity extends Activity +{ + private static final String MY_DEVICE_NAME = "my_device"; // CHANGE to your device name or a substring thereof. + + @Override protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + + final BleManager mngr = BleManager.get(this); + final BleServer server = mngr.getServer(); + + // Set up a broadcast receiver to get updates to the phone's time and forward them to the client through BLE notifications. + this.registerReceiver(new BroadcastReceiver() + { + @Override public void onReceive(Context context, Intent intent) + { + server.getClients(new ForEach_Void<String>() + { + @Override public void next(String macAddress) + { + // We use the "future data" construct here because SweetBlue's job queue might force + // this operation to wait (absolute worst case second or two if you're really pounding SweetBlue, but still) a bit + // before it actually gets sent out over the air, and we want to send the most recent time. + server.sendNotification(macAddress, Uuids.CURRENT_TIME_SERVICE__CURRENT_TIME, Utils_Time.getFutureTime()); + } + }); + } + + }, newTimeChangeIntentFilter()); + + // Set up our incoming listener to listen for explicit read/write requests and respond accordingly. + server.setListener_Incoming(new BleServer.IncomingListener() + { + @Override public Please onEvent(final IncomingEvent e) + { + if( e.target() == Target.CHARACTERISTIC ) + { + if( e.charUuid().equals(Uuids.CURRENT_TIME_SERVICE__CURRENT_TIME) ) + { + return Please.respondWithSuccess(Utils_Time.getFutureTime()); + } + else if( e.charUuid().equals(Uuids.CURRENT_TIME_SERVICE__LOCAL_TIME_INFO) ) + { + return Please.respondWithSuccess(Utils_Time.getFutureLocalTimeInfo()); + } + } + else if( e.target() == Target.DESCRIPTOR ) + { + return Please.respondWithSuccess(); + } + + return Please.respondWithError(BleStatuses.GATT_ERROR); + } + }); + + // In a real app you can use this listener to confirm that data was sent - + // maybe pop up a toast or something to user depending on requirements. + server.setListener_Outgoing(new BleServer.OutgoingListener() + { + @Override public void onEvent(final OutgoingEvent e) + { + if( e.wasSuccess() ) + { + if( e.type().isNotificationOrIndication() ) + { + Log.i("", "Current time change sent!"); + } + else + { + Log.i("", "Current time or local info request successfully responded to!"); + } + } + else + { + Log.e("", "Problem sending time change or read request thereof."); + } + } + }); + + // Set a listener so we know when the server has finished connecting. + server.setListener_State(new BleServer.StateListener() + { + @Override public void onEvent(BleServer.StateListener.StateEvent e) + { + if( e.didEnter(BleServerState.CONNECTED) ) + { + Log.i("", "Server connected!"); + } + } + }); + + // Kick things off...from here it's a flow of a bunch of async callbacks...obviously you may want to structure this differently for your actual app. + server.addService(BleServices.currentTime(), new BleServer.ServiceAddListener() + { + @Override public void onEvent(final ServiceAddEvent e) + { + if( e.wasSuccess() ) + { + mngr.startScan(new BleManagerConfig.ScanFilter() + { + @Override public Please onEvent(final ScanEvent e) + { + return Please.acknowledgeIf(e.name_normalized().contains(MY_DEVICE_NAME)).thenStopScan(); + } + }, + + new BleManager.DiscoveryListener() + { + @Override public void onEvent(DiscoveryEvent e) + { + if( e.was(LifeCycle.DISCOVERED) ) + { + e.device().connect(new BleDevice.StateListener() + { + @Override public void onEvent(final StateEvent e) + { + if( e.didEnter(BleDeviceState.INITIALIZED) ) + { + // Note that the peripheral may have already connected itself + // as a client so this call may be redundant. + server.connect(e.device().getMacAddress()); + } + } + }); + } + } + }); + } + } + }); + } + + private static IntentFilter newTimeChangeIntentFilter() + { + final IntentFilter filter = new IntentFilter(); + + filter.addAction(Intent.ACTION_DATE_CHANGED); + filter.addAction(Intent.ACTION_TIME_CHANGED); + filter.addAction(Intent.ACTION_TIMEZONE_CHANGED); + + return filter; + } + + @Override protected void onResume() + { + super.onResume(); + + BleManager.get(this).onResume(); + } + + @Override protected void onPause() + { + super.onPause(); + + BleManager.get(this).onPause(); + } +} diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/.name b/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/.name new file mode 100644 index 0000000000000000000000000000000000000000..b3a3b3a4097fc5893cb043cc5a29f89e2625711d --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/.name @@ -0,0 +1 @@ +android_studio \ No newline at end of file diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/compiler.xml b/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/compiler.xml new file mode 100644 index 0000000000000000000000000000000000000000..96cc43efa6a0885098044e976cd780bb42c68a70 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/compiler.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="CompilerConfiguration"> + <resourceExtensions /> + <wildcardResourcePatterns> + <entry name="!?*.java" /> + <entry name="!?*.form" /> + <entry name="!?*.class" /> + <entry name="!?*.groovy" /> + <entry name="!?*.scala" /> + <entry name="!?*.flex" /> + <entry name="!?*.kt" /> + <entry name="!?*.clj" /> + <entry name="!?*.aj" /> + </wildcardResourcePatterns> + <annotationProcessing> + <profile default="true" name="Default" enabled="false"> + <processorPath useClasspath="true" /> + </profile> + </annotationProcessing> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/copyright/profiles_settings.xml b/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000000000000000000000000000000000000..e7bedf3377d40335424fd605124d4761390218bb --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ +<component name="CopyrightManager"> + <settings default="" /> +</component> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/gradle.xml b/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/gradle.xml new file mode 100644 index 0000000000000000000000000000000000000000..8d2df476e5f1ebbf2170b74c8edb13f53e322331 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/gradle.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="GradleSettings"> + <option name="linkedExternalProjectsSettings"> + <GradleProjectSettings> + <option name="distributionType" value="DEFAULT_WRAPPED" /> + <option name="externalProjectPath" value="$PROJECT_DIR$" /> + <option name="gradleJvm" value="1.8" /> + <option name="modules"> + <set> + <option value="$PROJECT_DIR$" /> + <option value="$PROJECT_DIR$/app" /> + </set> + </option> + </GradleProjectSettings> + </option> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/misc.xml b/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/misc.xml new file mode 100644 index 0000000000000000000000000000000000000000..fbb68289f4352bf149aa31a2c9940faa99174224 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/misc.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="EntryPointsManager"> + <entry_points version="2.0" /> + </component> + <component name="NullableNotNullManager"> + <option name="myDefaultNullable" value="android.support.annotation.Nullable" /> + <option name="myDefaultNotNull" value="android.support.annotation.NonNull" /> + <option name="myNullables"> + <value> + <list size="4"> + <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" /> + <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" /> + <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" /> + <item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" /> + </list> + </value> + </option> + <option name="myNotNulls"> + <value> + <list size="4"> + <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" /> + <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" /> + <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" /> + <item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" /> + </list> + </value> + </option> + </component> + <component name="ProjectLevelVcsManager" settingsEditedManually="false"> + <OptionsSetting value="true" id="Add" /> + <OptionsSetting value="true" id="Remove" /> + <OptionsSetting value="true" id="Checkout" /> + <OptionsSetting value="true" id="Update" /> + <OptionsSetting value="true" id="Status" /> + <OptionsSetting value="true" id="Edit" /> + <ConfirmationsSetting value="0" id="Add" /> + <ConfirmationsSetting value="0" id="Remove" /> + </component> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> + <output url="file://$PROJECT_DIR$/build/classes" /> + </component> + <component name="ProjectType"> + <option name="id" value="Android" /> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/modules.xml b/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/modules.xml new file mode 100644 index 0000000000000000000000000000000000000000..d71b044feb5ae068b7731f8daf3ea263e711e65d --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/modules.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/android_studio.iml" filepath="$PROJECT_DIR$/android_studio.iml" /> + <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/runConfigurations.xml b/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/runConfigurations.xml new file mode 100644 index 0000000000000000000000000000000000000000..7f68460d8b38ac04e3a3224d7c79ef719b1991a9 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="RunConfigurationProducerService"> + <option name="ignoredProducers"> + <set> + <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" /> + <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" /> + <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" /> + </set> + </option> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/vcs.xml b/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..c2365ab11f9ba6b763735c8fd976420234bb3521 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$/../../.." vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/app/build.gradle b/dev/android/sweetblue/samples/hello_ble/android_studio/app/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..e61e8382aadad96dce8b4e28ddcacd3279603cc7 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/app/build.gradle @@ -0,0 +1,23 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 24 + buildToolsVersion '24.0.3' + + defaultConfig { + applicationId "com.idevicesinc.sweetblue.hello_ble" + minSdkVersion 18 + targetSdkVersion 24 + } + + buildTypes { + release { + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt' + } + } + + dependencies { + compile fileTree(dir: 'libs', include: '*.jar') + } +} diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/app/libs/sweetblue-javadoc.jar b/dev/android/sweetblue/samples/hello_ble/android_studio/app/libs/sweetblue-javadoc.jar new file mode 100644 index 0000000000000000000000000000000000000000..eb495aefe26c6cea1a15d2ed00a50ee8063b6692 Binary files /dev/null and b/dev/android/sweetblue/samples/hello_ble/android_studio/app/libs/sweetblue-javadoc.jar differ diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/app/libs/sweetblue-sources.jar b/dev/android/sweetblue/samples/hello_ble/android_studio/app/libs/sweetblue-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..7144cc70cee251dbc63acba80818d1e08b4298d4 Binary files /dev/null and b/dev/android/sweetblue/samples/hello_ble/android_studio/app/libs/sweetblue-sources.jar differ diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/app/libs/sweetblue.jar b/dev/android/sweetblue/samples/hello_ble/android_studio/app/libs/sweetblue.jar new file mode 100644 index 0000000000000000000000000000000000000000..dc5f6329dbfe534d9c8ee98f288e1cf4c4137d17 Binary files /dev/null and b/dev/android/sweetblue/samples/hello_ble/android_studio/app/libs/sweetblue.jar differ diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/app/proguard-project.txt b/dev/android/sweetblue/samples/hello_ble/android_studio/app/proguard-project.txt new file mode 100644 index 0000000000000000000000000000000000000000..f2fe1559a217865a5454add526dcc446f892385b --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/app/proguard-project.txt @@ -0,0 +1,20 @@ +# To enable ProGuard in your project, edit project.properties +# to define the proguard.config property as described in that file. +# +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in ${sdk.dir}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the ProGuard +# include property in project.properties. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/AndroidManifest.xml b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..e6685ad9d172d5f1838b0cc22b14fab253a0a59e --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/AndroidManifest.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.idevicesinc.sweetblue.hello_ble" + android:versionCode="1" + android:versionName="1.0" > + + <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19" /> + <uses-permission android:name="android.permission.BLUETOOTH" /> + <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> + <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" /> + <uses-permission android:name="android.permission.WAKE_LOCK" /> + <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> + <uses-feature android:name="android.hardware.bluetooth_le" android:required="true" /> + + <application + android:allowBackup="true" + android:icon="@drawable/ic_launcher" + android:label="@string/app_name" + android:theme="@style/AppTheme" > + <activity + android:name="com.idevicesinc.sweetblue.hello_ble.MyActivity" + android:label="@string/app_name" > + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> + +</manifest> diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/java/com/idevicesinc/sweetblue/hello_ble/MyActivity.java b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/java/com/idevicesinc/sweetblue/hello_ble/MyActivity.java new file mode 100644 index 0000000000000000000000000000000000000000..ae255d340df3371fc479540fb34acb0b90592c5d --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/java/com/idevicesinc/sweetblue/hello_ble/MyActivity.java @@ -0,0 +1,78 @@ +package com.idevicesinc.sweetblue.hello_ble; + +import com.idevicesinc.sweetblue.BleDevice; +import com.idevicesinc.sweetblue.BleDeviceState; +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.BleManagerConfig; +import com.idevicesinc.sweetblue.utils.BluetoothEnabler; +import com.idevicesinc.sweetblue.utils.Uuids; + +import android.app.Activity; +import android.content.Context; +import android.os.Bundle; +import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; +import android.widget.Toast; + + +public class MyActivity extends Activity +{ + private BleManager m_bleManager; + + @Override protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + + BluetoothEnabler.start(this); + + m_bleManager = BleManager.get(this); + + m_bleManager.startScan(new BleManager.DiscoveryListener() + { + @Override public void onEvent(DiscoveryEvent event) + { + m_bleManager.stopScan(); + + if( event.was(LifeCycle.DISCOVERED) ) + { + event.device().connect(new BleDevice.StateListener() + { + @Override public void onEvent(StateEvent event) + { + if( event.didEnter(BleDeviceState.INITIALIZED) ) + { + Log.i("SweetBlueExample", event.device().getName_debug() + " just initialized!"); + + event.device().read(Uuids.BATTERY_LEVEL, new BleDevice.ReadWriteListener() + { + @Override public void onEvent(ReadWriteEvent result) + { + if( result.wasSuccess() ) + { + Log.i("SweetBlueExample", "Battery level is " + result.data()[0] + "%"); + } + } + }); + } + } + }); + } + } + }); + } + + @Override protected void onResume() + { + super.onResume(); + + m_bleManager.onResume(); + } + + @Override protected void onPause() + { + super.onPause(); + + m_bleManager.onPause(); + } +} diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/drawable-hdpi/ic_launcher.png b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..bff79fd34ebc232fec3168fdb33d08245f58a308 Binary files /dev/null and b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/drawable-hdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/drawable-mdpi/ic_launcher.png b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6c47374bb1abda53c4000cb9d3e96671df40160b Binary files /dev/null and b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/drawable-mdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/drawable-xhdpi/ic_launcher.png b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d6e3e9591212a9e065b391c17ddcdc6474f59776 Binary files /dev/null and b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/drawable-xhdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/drawable-xxhdpi/ic_launcher.png b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..dec0b850aeb468076ce78feeb3b6acffa635f5ad Binary files /dev/null and b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/drawable-xxhdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/menu/my.xml b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/menu/my.xml new file mode 100644 index 0000000000000000000000000000000000000000..67b8f9ff2c49ed52132b1dc26261c6abce9f2712 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/menu/my.xml @@ -0,0 +1,11 @@ +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + tools:context="com.idevicesllc.hello_ble.MyActivity" > + + <item + android:id="@+id/action_settings" + android:orderInCategory="100" + android:showAsAction="never" + android:title="@string/action_settings"/> + +</menu> diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/values-v11/styles.xml b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/values-v11/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..3c02242ad044be9b8c7c09e7c90c5d427763fe97 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/values-v11/styles.xml @@ -0,0 +1,11 @@ +<resources> + + <!-- + Base application theme for API 11+. This theme completely replaces + AppBaseTheme from res/values/styles.xml on API 11+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light"> + <!-- API 11 theme customizations can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/values-v14/styles.xml b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/values-v14/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..a91fd0372b20f85e284fc2fa2ce949176dfdf6e5 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/values-v14/styles.xml @@ -0,0 +1,12 @@ +<resources> + + <!-- + Base application theme for API 14+. This theme completely replaces + AppBaseTheme from BOTH res/values/styles.xml and + res/values-v11/styles.xml on API 14+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> + <!-- API 14 theme customizations can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/values-w820dp/dimens.xml b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/values-w820dp/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..f3e70203b90ac39368a634f0c6388ccb615ffeca --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/values-w820dp/dimens.xml @@ -0,0 +1,10 @@ +<resources> + + <!-- + Example customization of dimensions originally defined in res/values/dimens.xml + (such as screen margins) for screens with more than 820dp of available width. This + would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). + --> + <dimen name="activity_horizontal_margin">64dp</dimen> + +</resources> diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/values/dimens.xml b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..55c1e5908c7e0f157fe815acd6d5cd7358463390 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/values/dimens.xml @@ -0,0 +1,7 @@ +<resources> + + <!-- Default screen margins, per the Android Design guidelines. --> + <dimen name="activity_horizontal_margin">16dp</dimen> + <dimen name="activity_vertical_margin">16dp</dimen> + +</resources> diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/values/strings.xml b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/values/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..446f6fa3f603708a46a15d1802b1a175ecae2d15 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/values/strings.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <string name="app_name">hello_ble</string> + <string name="hello_world">Hello world!</string> + <string name="action_settings">Settings</string> + +</resources> diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/values/styles.xml b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/values/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..6ce89c7ba4394d8cab27953d41456ce234ca37c3 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/app/src/main/res/values/styles.xml @@ -0,0 +1,20 @@ +<resources> + + <!-- + Base application theme, dependent on API level. This theme is replaced + by AppBaseTheme from res/values-vXX/styles.xml on newer devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Light"> + <!-- + Theme customizations available in newer API levels can go in + res/values-vXX/styles.xml, while customizations related to + backward-compatibility can go here. + --> + </style> + + <!-- Application theme. --> + <style name="AppTheme" parent="AppBaseTheme"> + <!-- All customizations that are NOT specific to a particular API-level can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/build.gradle b/dev/android/sweetblue/samples/hello_ble/android_studio/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..739ceb5cde8c843d05c4e601997a0126f1ce3b19 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/build.gradle @@ -0,0 +1,15 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.0.0' + } +} + +allprojects { + repositories { + jcenter() + } +} diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/gradle/wrapper/gradle-wrapper.jar b/dev/android/sweetblue/samples/hello_ble/android_studio/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..8c0fb64a8698b08ecc4158d828ca593c4928e9dd Binary files /dev/null and b/dev/android/sweetblue/samples/hello_ble/android_studio/gradle/wrapper/gradle-wrapper.jar differ diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/gradle/wrapper/gradle-wrapper.properties b/dev/android/sweetblue/samples/hello_ble/android_studio/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000000000000000000000000000000000..d57051703e32b305b0071fed7cef094fd0504f39 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Wed Apr 10 15:27:10 PDT 2013 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/gradlew b/dev/android/sweetblue/samples/hello_ble/android_studio/gradlew new file mode 100644 index 0000000000000000000000000000000000000000..91a7e269e19dfc62e27137a0b57ef3e430cee4fd --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/gradlew.bat b/dev/android/sweetblue/samples/hello_ble/android_studio/gradlew.bat new file mode 100644 index 0000000000000000000000000000000000000000..8a0b282aa6885fb573c106b3551f7275c5f17e8e --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/dev/android/sweetblue/samples/hello_ble/android_studio/settings.gradle b/dev/android/sweetblue/samples/hello_ble/android_studio/settings.gradle new file mode 100644 index 0000000000000000000000000000000000000000..e7b4def49cb53d9aa04228dd3edb14c9e635e003 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/android_studio/settings.gradle @@ -0,0 +1 @@ +include ':app' diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/.classpath b/dev/android/sweetblue/samples/hello_ble/eclipse/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..ab29e508541d457e1f40901ae4c79015b48f97c8 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/eclipse/.classpath @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="src" path="gen"/> + <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> + <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> + <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> + <classpathentry exported="true" kind="lib" path="lib/sweetblue.jar" sourcepath="lib/sweetblue-sources.jar"> + <attributes> + <attribute name="javadoc_location" value="jar:platform:/resource/hello_ble/lib/sweetblue-javadoc.jar!/"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="bin/classes"/> +</classpath> diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/.project b/dev/android/sweetblue/samples/hello_ble/eclipse/.project new file mode 100644 index 0000000000000000000000000000000000000000..a70ae7bfce20d1a4ebbf820193993e23ab7288cb --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/eclipse/.project @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>hello_ble</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>com.android.ide.eclipse.adt.ApkBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>com.android.ide.eclipse.adt.AndroidNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/AndroidManifest.xml b/dev/android/sweetblue/samples/hello_ble/eclipse/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..716bc0dbf89178c441982abfc5f72c0420357e8d --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/eclipse/AndroidManifest.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.idevicesinc.sweetblue.hello_ble" + android:versionCode="1" + android:versionName="1.0" > + + <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19" /> + <uses-permission android:name="android.permission.BLUETOOTH" /> + <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> + <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" /> + <uses-permission android:name="android.permission.WAKE_LOCK" /> + <uses-feature android:name="android.hardware.bluetooth_le" android:required="true" /> + + <application + android:allowBackup="true" + android:icon="@drawable/ic_launcher" + android:label="@string/app_name" + android:theme="@style/AppTheme" > + <activity + android:name="com.idevicesinc.sweetblue.hello_ble.MyActivity" + android:label="@string/app_name" > + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> + +</manifest> diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/ic_launcher-web.png b/dev/android/sweetblue/samples/hello_ble/eclipse/ic_launcher-web.png new file mode 100644 index 0000000000000000000000000000000000000000..4131fb0c65644442ce70071b0cfafb9e631ba228 Binary files /dev/null and b/dev/android/sweetblue/samples/hello_ble/eclipse/ic_launcher-web.png differ diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/lib/sweetblue-javadoc.jar b/dev/android/sweetblue/samples/hello_ble/eclipse/lib/sweetblue-javadoc.jar new file mode 100644 index 0000000000000000000000000000000000000000..eb495aefe26c6cea1a15d2ed00a50ee8063b6692 Binary files /dev/null and b/dev/android/sweetblue/samples/hello_ble/eclipse/lib/sweetblue-javadoc.jar differ diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/lib/sweetblue-sources.jar b/dev/android/sweetblue/samples/hello_ble/eclipse/lib/sweetblue-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..7144cc70cee251dbc63acba80818d1e08b4298d4 Binary files /dev/null and b/dev/android/sweetblue/samples/hello_ble/eclipse/lib/sweetblue-sources.jar differ diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/lib/sweetblue.jar b/dev/android/sweetblue/samples/hello_ble/eclipse/lib/sweetblue.jar new file mode 100644 index 0000000000000000000000000000000000000000..dc5f6329dbfe534d9c8ee98f288e1cf4c4137d17 Binary files /dev/null and b/dev/android/sweetblue/samples/hello_ble/eclipse/lib/sweetblue.jar differ diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/proguard-project.txt b/dev/android/sweetblue/samples/hello_ble/eclipse/proguard-project.txt new file mode 100644 index 0000000000000000000000000000000000000000..f2fe1559a217865a5454add526dcc446f892385b --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/eclipse/proguard-project.txt @@ -0,0 +1,20 @@ +# To enable ProGuard in your project, edit project.properties +# to define the proguard.config property as described in that file. +# +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in ${sdk.dir}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the ProGuard +# include property in project.properties. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/project.properties b/dev/android/sweetblue/samples/hello_ble/eclipse/project.properties new file mode 100644 index 0000000000000000000000000000000000000000..738e84e9ff125d545d14646c43651fcb788f9657 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/eclipse/project.properties @@ -0,0 +1,14 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system edit +# "ant.properties", and override values to adapt the script to your +# project structure. +# +# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): +proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt + +# Project target. +target=android-19 diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/res/drawable-hdpi/ic_launcher.png b/dev/android/sweetblue/samples/hello_ble/eclipse/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..bff79fd34ebc232fec3168fdb33d08245f58a308 Binary files /dev/null and b/dev/android/sweetblue/samples/hello_ble/eclipse/res/drawable-hdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/res/drawable-mdpi/ic_launcher.png b/dev/android/sweetblue/samples/hello_ble/eclipse/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6c47374bb1abda53c4000cb9d3e96671df40160b Binary files /dev/null and b/dev/android/sweetblue/samples/hello_ble/eclipse/res/drawable-mdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/res/drawable-xhdpi/ic_launcher.png b/dev/android/sweetblue/samples/hello_ble/eclipse/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d6e3e9591212a9e065b391c17ddcdc6474f59776 Binary files /dev/null and b/dev/android/sweetblue/samples/hello_ble/eclipse/res/drawable-xhdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/res/drawable-xxhdpi/ic_launcher.png b/dev/android/sweetblue/samples/hello_ble/eclipse/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..dec0b850aeb468076ce78feeb3b6acffa635f5ad Binary files /dev/null and b/dev/android/sweetblue/samples/hello_ble/eclipse/res/drawable-xxhdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/res/menu/my.xml b/dev/android/sweetblue/samples/hello_ble/eclipse/res/menu/my.xml new file mode 100644 index 0000000000000000000000000000000000000000..67b8f9ff2c49ed52132b1dc26261c6abce9f2712 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/eclipse/res/menu/my.xml @@ -0,0 +1,11 @@ +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + tools:context="com.idevicesllc.hello_ble.MyActivity" > + + <item + android:id="@+id/action_settings" + android:orderInCategory="100" + android:showAsAction="never" + android:title="@string/action_settings"/> + +</menu> diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/res/values-v11/styles.xml b/dev/android/sweetblue/samples/hello_ble/eclipse/res/values-v11/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..3c02242ad044be9b8c7c09e7c90c5d427763fe97 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/eclipse/res/values-v11/styles.xml @@ -0,0 +1,11 @@ +<resources> + + <!-- + Base application theme for API 11+. This theme completely replaces + AppBaseTheme from res/values/styles.xml on API 11+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light"> + <!-- API 11 theme customizations can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/res/values-v14/styles.xml b/dev/android/sweetblue/samples/hello_ble/eclipse/res/values-v14/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..a91fd0372b20f85e284fc2fa2ce949176dfdf6e5 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/eclipse/res/values-v14/styles.xml @@ -0,0 +1,12 @@ +<resources> + + <!-- + Base application theme for API 14+. This theme completely replaces + AppBaseTheme from BOTH res/values/styles.xml and + res/values-v11/styles.xml on API 14+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> + <!-- API 14 theme customizations can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/res/values-w820dp/dimens.xml b/dev/android/sweetblue/samples/hello_ble/eclipse/res/values-w820dp/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..f3e70203b90ac39368a634f0c6388ccb615ffeca --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/eclipse/res/values-w820dp/dimens.xml @@ -0,0 +1,10 @@ +<resources> + + <!-- + Example customization of dimensions originally defined in res/values/dimens.xml + (such as screen margins) for screens with more than 820dp of available width. This + would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). + --> + <dimen name="activity_horizontal_margin">64dp</dimen> + +</resources> diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/res/values/dimens.xml b/dev/android/sweetblue/samples/hello_ble/eclipse/res/values/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..55c1e5908c7e0f157fe815acd6d5cd7358463390 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/eclipse/res/values/dimens.xml @@ -0,0 +1,7 @@ +<resources> + + <!-- Default screen margins, per the Android Design guidelines. --> + <dimen name="activity_horizontal_margin">16dp</dimen> + <dimen name="activity_vertical_margin">16dp</dimen> + +</resources> diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/res/values/strings.xml b/dev/android/sweetblue/samples/hello_ble/eclipse/res/values/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..446f6fa3f603708a46a15d1802b1a175ecae2d15 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/eclipse/res/values/strings.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <string name="app_name">hello_ble</string> + <string name="hello_world">Hello world!</string> + <string name="action_settings">Settings</string> + +</resources> diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/res/values/styles.xml b/dev/android/sweetblue/samples/hello_ble/eclipse/res/values/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..6ce89c7ba4394d8cab27953d41456ce234ca37c3 --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/eclipse/res/values/styles.xml @@ -0,0 +1,20 @@ +<resources> + + <!-- + Base application theme, dependent on API level. This theme is replaced + by AppBaseTheme from res/values-vXX/styles.xml on newer devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Light"> + <!-- + Theme customizations available in newer API levels can go in + res/values-vXX/styles.xml, while customizations related to + backward-compatibility can go here. + --> + </style> + + <!-- Application theme. --> + <style name="AppTheme" parent="AppBaseTheme"> + <!-- All customizations that are NOT specific to a particular API-level can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/hello_ble/eclipse/src/com/idevicesinc/sweetblue/hello_ble/MyActivity.java b/dev/android/sweetblue/samples/hello_ble/eclipse/src/com/idevicesinc/sweetblue/hello_ble/MyActivity.java new file mode 100644 index 0000000000000000000000000000000000000000..3aac0a86efbc49c3c90d6d563cda5b9e4357c3ed --- /dev/null +++ b/dev/android/sweetblue/samples/hello_ble/eclipse/src/com/idevicesinc/sweetblue/hello_ble/MyActivity.java @@ -0,0 +1,75 @@ +package com.idevicesinc.sweetblue.hello_ble; + +import com.idevicesinc.sweetblue.BleDevice; +import com.idevicesinc.sweetblue.BleDeviceState; +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.BleManagerConfig; +import com.idevicesinc.sweetblue.utils.Uuids; + +import android.app.Activity; +import android.content.Context; +import android.os.Bundle; +import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; +import android.widget.Toast; + + +public class MyActivity extends Activity +{ + private BleManager m_bleManager; + + @Override protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + + m_bleManager = BleManager.get(this); + + m_bleManager.startScan(new BleManager.DiscoveryListener() + { + @Override public void onEvent(DiscoveryEvent event) + { + m_bleManager.stopScan(); + + if( event.was(LifeCycle.DISCOVERED) ) + { + event.device().connect(new BleDevice.StateListener() + { + @Override public void onEvent(StateEvent event) + { + if( event.didEnter(BleDeviceState.INITIALIZED) ) + { + Log.i("SweetBlueExample", event.device().getName_debug() + " just initialized!"); + + event.device().read(Uuids.BATTERY_LEVEL, new BleDevice.ReadWriteListener() + { + @Override public void onEvent(ReadWriteEvent result) + { + if( result.wasSuccess() ) + { + Log.i("SweetBlueExample", "Battery level is " + result.data()[0] + "%"); + } + } + }); + } + } + }); + } + } + }); + } + + @Override protected void onResume() + { + super.onResume(); + + m_bleManager.onResume(); + } + + @Override protected void onPause() + { + super.onPause(); + + m_bleManager.onPause(); + } +} diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/.name b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/.name new file mode 100644 index 0000000000000000000000000000000000000000..b3a3b3a4097fc5893cb043cc5a29f89e2625711d --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/.name @@ -0,0 +1 @@ +android_studio \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/compiler.xml b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/compiler.xml new file mode 100644 index 0000000000000000000000000000000000000000..96cc43efa6a0885098044e976cd780bb42c68a70 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/compiler.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="CompilerConfiguration"> + <resourceExtensions /> + <wildcardResourcePatterns> + <entry name="!?*.java" /> + <entry name="!?*.form" /> + <entry name="!?*.class" /> + <entry name="!?*.groovy" /> + <entry name="!?*.scala" /> + <entry name="!?*.flex" /> + <entry name="!?*.kt" /> + <entry name="!?*.clj" /> + <entry name="!?*.aj" /> + </wildcardResourcePatterns> + <annotationProcessing> + <profile default="true" name="Default" enabled="false"> + <processorPath useClasspath="true" /> + </profile> + </annotationProcessing> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/copyright/profiles_settings.xml b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000000000000000000000000000000000000..e7bedf3377d40335424fd605124d4761390218bb --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ +<component name="CopyrightManager"> + <settings default="" /> +</component> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/gradle.xml b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/gradle.xml new file mode 100644 index 0000000000000000000000000000000000000000..8d2df476e5f1ebbf2170b74c8edb13f53e322331 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/gradle.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="GradleSettings"> + <option name="linkedExternalProjectsSettings"> + <GradleProjectSettings> + <option name="distributionType" value="DEFAULT_WRAPPED" /> + <option name="externalProjectPath" value="$PROJECT_DIR$" /> + <option name="gradleJvm" value="1.8" /> + <option name="modules"> + <set> + <option value="$PROJECT_DIR$" /> + <option value="$PROJECT_DIR$/app" /> + </set> + </option> + </GradleProjectSettings> + </option> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/libraries/sweetblue.xml b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/libraries/sweetblue.xml new file mode 100644 index 0000000000000000000000000000000000000000..3e575e61c42bc6c789d29a37aa1e453d0f2b5e2b --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/libraries/sweetblue.xml @@ -0,0 +1,9 @@ +<component name="libraryTable"> + <library name="sweetblue"> + <CLASSES> + <root url="jar://$PROJECT_DIR$/app/libs/sweetblue.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES /> + </library> +</component> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/libraries/sweetblue_javadoc.xml b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/libraries/sweetblue_javadoc.xml new file mode 100644 index 0000000000000000000000000000000000000000..fbf2ef10bc57eb7a015179d251ff6ff3965ec3ff --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/libraries/sweetblue_javadoc.xml @@ -0,0 +1,9 @@ +<component name="libraryTable"> + <library name="sweetblue-javadoc"> + <CLASSES> + <root url="jar://$PROJECT_DIR$/app/libs/sweetblue-javadoc.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES /> + </library> +</component> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/libraries/sweetblue_sources.xml b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/libraries/sweetblue_sources.xml new file mode 100644 index 0000000000000000000000000000000000000000..5ba1d5821be4b8f04693ac808b71b94d88e640d7 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/libraries/sweetblue_sources.xml @@ -0,0 +1,9 @@ +<component name="libraryTable"> + <library name="sweetblue-sources"> + <CLASSES> + <root url="jar://$PROJECT_DIR$/app/libs/sweetblue-sources.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES /> + </library> +</component> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/misc.xml b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/misc.xml new file mode 100644 index 0000000000000000000000000000000000000000..fbb68289f4352bf149aa31a2c9940faa99174224 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/misc.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="EntryPointsManager"> + <entry_points version="2.0" /> + </component> + <component name="NullableNotNullManager"> + <option name="myDefaultNullable" value="android.support.annotation.Nullable" /> + <option name="myDefaultNotNull" value="android.support.annotation.NonNull" /> + <option name="myNullables"> + <value> + <list size="4"> + <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" /> + <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" /> + <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" /> + <item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" /> + </list> + </value> + </option> + <option name="myNotNulls"> + <value> + <list size="4"> + <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" /> + <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" /> + <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" /> + <item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" /> + </list> + </value> + </option> + </component> + <component name="ProjectLevelVcsManager" settingsEditedManually="false"> + <OptionsSetting value="true" id="Add" /> + <OptionsSetting value="true" id="Remove" /> + <OptionsSetting value="true" id="Checkout" /> + <OptionsSetting value="true" id="Update" /> + <OptionsSetting value="true" id="Status" /> + <OptionsSetting value="true" id="Edit" /> + <ConfirmationsSetting value="0" id="Add" /> + <ConfirmationsSetting value="0" id="Remove" /> + </component> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> + <output url="file://$PROJECT_DIR$/build/classes" /> + </component> + <component name="ProjectType"> + <option name="id" value="Android" /> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/modules.xml b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/modules.xml new file mode 100644 index 0000000000000000000000000000000000000000..d71b044feb5ae068b7731f8daf3ea263e711e65d --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/modules.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/android_studio.iml" filepath="$PROJECT_DIR$/android_studio.iml" /> + <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/runConfigurations.xml b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/runConfigurations.xml new file mode 100644 index 0000000000000000000000000000000000000000..7f68460d8b38ac04e3a3224d7c79ef719b1991a9 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="RunConfigurationProducerService"> + <option name="ignoredProducers"> + <set> + <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" /> + <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" /> + <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" /> + </set> + </option> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/vcs.xml b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..c2365ab11f9ba6b763735c8fd976420234bb3521 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$/../../.." vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/app/build.gradle b/dev/android/sweetblue/samples/simple_ota/android_studio/app/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..d0f37270b3fa724bf1d4f4d06810c969e643995f --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/app/build.gradle @@ -0,0 +1,23 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 24 + buildToolsVersion '24.0.3' + + defaultConfig { + applicationId "com.idevicesinc.sweetblue.simple_ota" + minSdkVersion 18 + targetSdkVersion 24 + } + + buildTypes { + release { + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt' + } + } + + dependencies { + compile fileTree(dir: 'libs', include: '*.jar') + } +} diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/app/libs/sweetblue-javadoc.jar b/dev/android/sweetblue/samples/simple_ota/android_studio/app/libs/sweetblue-javadoc.jar new file mode 100644 index 0000000000000000000000000000000000000000..eb495aefe26c6cea1a15d2ed00a50ee8063b6692 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_ota/android_studio/app/libs/sweetblue-javadoc.jar differ diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/app/libs/sweetblue-sources.jar b/dev/android/sweetblue/samples/simple_ota/android_studio/app/libs/sweetblue-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..7144cc70cee251dbc63acba80818d1e08b4298d4 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_ota/android_studio/app/libs/sweetblue-sources.jar differ diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/app/libs/sweetblue.jar b/dev/android/sweetblue/samples/simple_ota/android_studio/app/libs/sweetblue.jar new file mode 100644 index 0000000000000000000000000000000000000000..dc5f6329dbfe534d9c8ee98f288e1cf4c4137d17 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_ota/android_studio/app/libs/sweetblue.jar differ diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/app/proguard-project.txt b/dev/android/sweetblue/samples/simple_ota/android_studio/app/proguard-project.txt new file mode 100644 index 0000000000000000000000000000000000000000..f2fe1559a217865a5454add526dcc446f892385b --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/app/proguard-project.txt @@ -0,0 +1,20 @@ +# To enable ProGuard in your project, edit project.properties +# to define the proguard.config property as described in that file. +# +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in ${sdk.dir}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the ProGuard +# include property in project.properties. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/AndroidManifest.xml b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..f7ec2c4baf1e72028f4c230201330bbfc4ee2736 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/AndroidManifest.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.idevicesinc.sweetblue.simple_ota" + android:versionCode="1" + android:versionName="1.0" > + + <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19" /> + <uses-permission android:name="android.permission.BLUETOOTH" /> + <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> + <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" /> + <uses-permission android:name="android.permission.WAKE_LOCK" /> + <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> + <uses-feature android:name="android.hardware.bluetooth_le" android:required="true" /> + + <application + android:allowBackup="true" + android:icon="@drawable/ic_launcher" + android:label="@string/app_name" + android:theme="@style/AppTheme" > + <activity + android:name="com.idevicesinc.sweetblue.simple_ota.MyActivity" + android:label="@string/app_name" > + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> + +</manifest> diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/java/com/idevicesinc/sweetblue/simple_ota/MyActivity.java b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/java/com/idevicesinc/sweetblue/simple_ota/MyActivity.java new file mode 100644 index 0000000000000000000000000000000000000000..bc15978219d755c6624b742b19db56d537238dde --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/java/com/idevicesinc/sweetblue/simple_ota/MyActivity.java @@ -0,0 +1,127 @@ +package com.idevicesinc.sweetblue.simple_ota; + +import com.idevicesinc.sweetblue.BleDevice; +import com.idevicesinc.sweetblue.BleDeviceState; +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.BleManagerConfig; +import com.idevicesinc.sweetblue.BleTransaction; +import com.idevicesinc.sweetblue.utils.BluetoothEnabler; +import com.idevicesinc.sweetblue.utils.Uuids; + +import android.app.Activity; +import android.content.Context; +import android.os.Bundle; +import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; +import android.widget.Toast; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + + +public class MyActivity extends Activity +{ + private static final UUID MY_UUID = UUID.randomUUID(); // NOTE: Replace with your actual UUID. + private static final byte[] MY_DATA = {(byte) 0xC0, (byte) 0xFF, (byte) 0xEE}; // NOTE: Replace with your actual data, not 0xC0FFEE + + private BleManager m_bleManager; + + private static class MyOtaTransaction extends BleTransaction.Ota + { + private final List<byte[]> m_dataQueue; + private int m_currentIndex = 0; + + private final BleDevice.ReadWriteListener m_readWriteListener = new BleDevice.ReadWriteListener() + { + @Override public void onEvent(ReadWriteEvent e) + { + if( e.wasSuccess() ) + { + doNextWrite(); + } + else + { + MyOtaTransaction.this.fail(); + } + } + }; + + public MyOtaTransaction(final List<byte[]> dataQueue) + { + m_dataQueue = dataQueue; + } + + @Override protected void start(BleDevice device) + { + doNextWrite(); + } + + private void doNextWrite() + { + if( m_currentIndex == m_dataQueue.size() ) + { + this.succeed(); + } + else + { + final byte[] nextData = m_dataQueue.get(m_currentIndex); + getDevice().write(MY_UUID, nextData, m_readWriteListener); + m_currentIndex++; + } + } + } + + @Override protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + + BluetoothEnabler.start(this); + m_bleManager = BleManager.get(this); + + m_bleManager.startScan(new BleManager.DiscoveryListener() + { + @Override public void onEvent(DiscoveryEvent event) + { + m_bleManager.stopScan(); + + if( event.was(LifeCycle.DISCOVERED) ) + { + event.device().connect(new BleDevice.StateListener() + { + @Override public void onEvent(StateEvent event) + { + if( event.didEnter(BleDeviceState.INITIALIZED) ) + { + Log.i("SweetBlueExample", event.device().getName_debug() + " just initialized!"); + + final ArrayList<byte[]> writeQueue = new ArrayList<byte[]>(); + writeQueue.add(MY_DATA); + writeQueue.add(MY_DATA); + writeQueue.add(MY_DATA); + writeQueue.add(MY_DATA); + + event.device().performOta(new MyOtaTransaction(writeQueue)); + } + } + }); + } + } + }); + } + + @Override protected void onResume() + { + super.onResume(); + + m_bleManager.onResume(); + } + + @Override protected void onPause() + { + super.onPause(); + + m_bleManager.onPause(); + } +} diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/drawable-hdpi/ic_launcher.png b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..bff79fd34ebc232fec3168fdb33d08245f58a308 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/drawable-hdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/drawable-mdpi/ic_launcher.png b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6c47374bb1abda53c4000cb9d3e96671df40160b Binary files /dev/null and b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/drawable-mdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/drawable-xhdpi/ic_launcher.png b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d6e3e9591212a9e065b391c17ddcdc6474f59776 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/drawable-xhdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/drawable-xxhdpi/ic_launcher.png b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..dec0b850aeb468076ce78feeb3b6acffa635f5ad Binary files /dev/null and b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/drawable-xxhdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/menu/my.xml b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/menu/my.xml new file mode 100644 index 0000000000000000000000000000000000000000..67b8f9ff2c49ed52132b1dc26261c6abce9f2712 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/menu/my.xml @@ -0,0 +1,11 @@ +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + tools:context="com.idevicesllc.hello_ble.MyActivity" > + + <item + android:id="@+id/action_settings" + android:orderInCategory="100" + android:showAsAction="never" + android:title="@string/action_settings"/> + +</menu> diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/values-v11/styles.xml b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/values-v11/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..3c02242ad044be9b8c7c09e7c90c5d427763fe97 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/values-v11/styles.xml @@ -0,0 +1,11 @@ +<resources> + + <!-- + Base application theme for API 11+. This theme completely replaces + AppBaseTheme from res/values/styles.xml on API 11+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light"> + <!-- API 11 theme customizations can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/values-v14/styles.xml b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/values-v14/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..a91fd0372b20f85e284fc2fa2ce949176dfdf6e5 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/values-v14/styles.xml @@ -0,0 +1,12 @@ +<resources> + + <!-- + Base application theme for API 14+. This theme completely replaces + AppBaseTheme from BOTH res/values/styles.xml and + res/values-v11/styles.xml on API 14+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> + <!-- API 14 theme customizations can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/values-w820dp/dimens.xml b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/values-w820dp/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..f3e70203b90ac39368a634f0c6388ccb615ffeca --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/values-w820dp/dimens.xml @@ -0,0 +1,10 @@ +<resources> + + <!-- + Example customization of dimensions originally defined in res/values/dimens.xml + (such as screen margins) for screens with more than 820dp of available width. This + would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). + --> + <dimen name="activity_horizontal_margin">64dp</dimen> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/values/dimens.xml b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..55c1e5908c7e0f157fe815acd6d5cd7358463390 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/values/dimens.xml @@ -0,0 +1,7 @@ +<resources> + + <!-- Default screen margins, per the Android Design guidelines. --> + <dimen name="activity_horizontal_margin">16dp</dimen> + <dimen name="activity_vertical_margin">16dp</dimen> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/values/strings.xml b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/values/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..802c1d653f2dd715bf2907d9ae2c4a5f558c8438 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/values/strings.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <string name="app_name">simple_ota</string> + <string name="hello_world">Hello world!</string> + <string name="action_settings">Settings</string> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/values/styles.xml b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/values/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..6ce89c7ba4394d8cab27953d41456ce234ca37c3 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/app/src/main/res/values/styles.xml @@ -0,0 +1,20 @@ +<resources> + + <!-- + Base application theme, dependent on API level. This theme is replaced + by AppBaseTheme from res/values-vXX/styles.xml on newer devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Light"> + <!-- + Theme customizations available in newer API levels can go in + res/values-vXX/styles.xml, while customizations related to + backward-compatibility can go here. + --> + </style> + + <!-- Application theme. --> + <style name="AppTheme" parent="AppBaseTheme"> + <!-- All customizations that are NOT specific to a particular API-level can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/build.gradle b/dev/android/sweetblue/samples/simple_ota/android_studio/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..739ceb5cde8c843d05c4e601997a0126f1ce3b19 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/build.gradle @@ -0,0 +1,15 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.0.0' + } +} + +allprojects { + repositories { + jcenter() + } +} diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/gradle/wrapper/gradle-wrapper.jar b/dev/android/sweetblue/samples/simple_ota/android_studio/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..8c0fb64a8698b08ecc4158d828ca593c4928e9dd Binary files /dev/null and b/dev/android/sweetblue/samples/simple_ota/android_studio/gradle/wrapper/gradle-wrapper.jar differ diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/gradle/wrapper/gradle-wrapper.properties b/dev/android/sweetblue/samples/simple_ota/android_studio/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000000000000000000000000000000000..d57051703e32b305b0071fed7cef094fd0504f39 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Wed Apr 10 15:27:10 PDT 2013 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/gradlew b/dev/android/sweetblue/samples/simple_ota/android_studio/gradlew new file mode 100644 index 0000000000000000000000000000000000000000..91a7e269e19dfc62e27137a0b57ef3e430cee4fd --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/gradlew.bat b/dev/android/sweetblue/samples/simple_ota/android_studio/gradlew.bat new file mode 100644 index 0000000000000000000000000000000000000000..8a0b282aa6885fb573c106b3551f7275c5f17e8e --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/dev/android/sweetblue/samples/simple_ota/android_studio/settings.gradle b/dev/android/sweetblue/samples/simple_ota/android_studio/settings.gradle new file mode 100644 index 0000000000000000000000000000000000000000..e7b4def49cb53d9aa04228dd3edb14c9e635e003 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/android_studio/settings.gradle @@ -0,0 +1 @@ +include ':app' diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/.classpath b/dev/android/sweetblue/samples/simple_ota/eclipse/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..ab29e508541d457e1f40901ae4c79015b48f97c8 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/eclipse/.classpath @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="src" path="gen"/> + <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> + <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> + <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> + <classpathentry exported="true" kind="lib" path="lib/sweetblue.jar" sourcepath="lib/sweetblue-sources.jar"> + <attributes> + <attribute name="javadoc_location" value="jar:platform:/resource/hello_ble/lib/sweetblue-javadoc.jar!/"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="bin/classes"/> +</classpath> diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/.project b/dev/android/sweetblue/samples/simple_ota/eclipse/.project new file mode 100644 index 0000000000000000000000000000000000000000..a70ae7bfce20d1a4ebbf820193993e23ab7288cb --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/eclipse/.project @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>hello_ble</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>com.android.ide.eclipse.adt.ApkBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>com.android.ide.eclipse.adt.AndroidNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/AndroidManifest.xml b/dev/android/sweetblue/samples/simple_ota/eclipse/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..ae91e849b4b367b4318ed7eb8009585affe05080 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/eclipse/AndroidManifest.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.idevicesinc.sweetblue.simple_ota" + android:versionCode="1" + android:versionName="1.0" > + + <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19" /> + <uses-permission android:name="android.permission.BLUETOOTH" /> + <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> + <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" /> + <uses-permission android:name="android.permission.WAKE_LOCK" /> + <uses-feature android:name="android.hardware.bluetooth_le" android:required="true" /> + + <application + android:allowBackup="true" + android:icon="@drawable/ic_launcher" + android:label="@string/app_name" + android:theme="@style/AppTheme" > + <activity + android:name="com.idevicesinc.sweetblue.simple_ota.MyActivity" + android:label="@string/app_name" > + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> + +</manifest> diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/ic_launcher-web.png b/dev/android/sweetblue/samples/simple_ota/eclipse/ic_launcher-web.png new file mode 100644 index 0000000000000000000000000000000000000000..4131fb0c65644442ce70071b0cfafb9e631ba228 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_ota/eclipse/ic_launcher-web.png differ diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/lib/sweetblue-javadoc.jar b/dev/android/sweetblue/samples/simple_ota/eclipse/lib/sweetblue-javadoc.jar new file mode 100644 index 0000000000000000000000000000000000000000..eb495aefe26c6cea1a15d2ed00a50ee8063b6692 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_ota/eclipse/lib/sweetblue-javadoc.jar differ diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/lib/sweetblue-sources.jar b/dev/android/sweetblue/samples/simple_ota/eclipse/lib/sweetblue-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..7144cc70cee251dbc63acba80818d1e08b4298d4 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_ota/eclipse/lib/sweetblue-sources.jar differ diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/lib/sweetblue.jar b/dev/android/sweetblue/samples/simple_ota/eclipse/lib/sweetblue.jar new file mode 100644 index 0000000000000000000000000000000000000000..dc5f6329dbfe534d9c8ee98f288e1cf4c4137d17 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_ota/eclipse/lib/sweetblue.jar differ diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/proguard-project.txt b/dev/android/sweetblue/samples/simple_ota/eclipse/proguard-project.txt new file mode 100644 index 0000000000000000000000000000000000000000..f2fe1559a217865a5454add526dcc446f892385b --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/eclipse/proguard-project.txt @@ -0,0 +1,20 @@ +# To enable ProGuard in your project, edit project.properties +# to define the proguard.config property as described in that file. +# +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in ${sdk.dir}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the ProGuard +# include property in project.properties. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/project.properties b/dev/android/sweetblue/samples/simple_ota/eclipse/project.properties new file mode 100644 index 0000000000000000000000000000000000000000..738e84e9ff125d545d14646c43651fcb788f9657 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/eclipse/project.properties @@ -0,0 +1,14 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system edit +# "ant.properties", and override values to adapt the script to your +# project structure. +# +# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): +proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt + +# Project target. +target=android-19 diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/res/drawable-hdpi/ic_launcher.png b/dev/android/sweetblue/samples/simple_ota/eclipse/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..bff79fd34ebc232fec3168fdb33d08245f58a308 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_ota/eclipse/res/drawable-hdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/res/drawable-mdpi/ic_launcher.png b/dev/android/sweetblue/samples/simple_ota/eclipse/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6c47374bb1abda53c4000cb9d3e96671df40160b Binary files /dev/null and b/dev/android/sweetblue/samples/simple_ota/eclipse/res/drawable-mdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/res/drawable-xhdpi/ic_launcher.png b/dev/android/sweetblue/samples/simple_ota/eclipse/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d6e3e9591212a9e065b391c17ddcdc6474f59776 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_ota/eclipse/res/drawable-xhdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/res/drawable-xxhdpi/ic_launcher.png b/dev/android/sweetblue/samples/simple_ota/eclipse/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..dec0b850aeb468076ce78feeb3b6acffa635f5ad Binary files /dev/null and b/dev/android/sweetblue/samples/simple_ota/eclipse/res/drawable-xxhdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/res/menu/my.xml b/dev/android/sweetblue/samples/simple_ota/eclipse/res/menu/my.xml new file mode 100644 index 0000000000000000000000000000000000000000..67b8f9ff2c49ed52132b1dc26261c6abce9f2712 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/eclipse/res/menu/my.xml @@ -0,0 +1,11 @@ +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + tools:context="com.idevicesllc.hello_ble.MyActivity" > + + <item + android:id="@+id/action_settings" + android:orderInCategory="100" + android:showAsAction="never" + android:title="@string/action_settings"/> + +</menu> diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/res/values-v11/styles.xml b/dev/android/sweetblue/samples/simple_ota/eclipse/res/values-v11/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..3c02242ad044be9b8c7c09e7c90c5d427763fe97 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/eclipse/res/values-v11/styles.xml @@ -0,0 +1,11 @@ +<resources> + + <!-- + Base application theme for API 11+. This theme completely replaces + AppBaseTheme from res/values/styles.xml on API 11+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light"> + <!-- API 11 theme customizations can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/res/values-v14/styles.xml b/dev/android/sweetblue/samples/simple_ota/eclipse/res/values-v14/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..a91fd0372b20f85e284fc2fa2ce949176dfdf6e5 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/eclipse/res/values-v14/styles.xml @@ -0,0 +1,12 @@ +<resources> + + <!-- + Base application theme for API 14+. This theme completely replaces + AppBaseTheme from BOTH res/values/styles.xml and + res/values-v11/styles.xml on API 14+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> + <!-- API 14 theme customizations can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/res/values-w820dp/dimens.xml b/dev/android/sweetblue/samples/simple_ota/eclipse/res/values-w820dp/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..f3e70203b90ac39368a634f0c6388ccb615ffeca --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/eclipse/res/values-w820dp/dimens.xml @@ -0,0 +1,10 @@ +<resources> + + <!-- + Example customization of dimensions originally defined in res/values/dimens.xml + (such as screen margins) for screens with more than 820dp of available width. This + would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). + --> + <dimen name="activity_horizontal_margin">64dp</dimen> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/res/values/dimens.xml b/dev/android/sweetblue/samples/simple_ota/eclipse/res/values/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..55c1e5908c7e0f157fe815acd6d5cd7358463390 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/eclipse/res/values/dimens.xml @@ -0,0 +1,7 @@ +<resources> + + <!-- Default screen margins, per the Android Design guidelines. --> + <dimen name="activity_horizontal_margin">16dp</dimen> + <dimen name="activity_vertical_margin">16dp</dimen> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/res/values/strings.xml b/dev/android/sweetblue/samples/simple_ota/eclipse/res/values/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..802c1d653f2dd715bf2907d9ae2c4a5f558c8438 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/eclipse/res/values/strings.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <string name="app_name">simple_ota</string> + <string name="hello_world">Hello world!</string> + <string name="action_settings">Settings</string> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/res/values/styles.xml b/dev/android/sweetblue/samples/simple_ota/eclipse/res/values/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..6ce89c7ba4394d8cab27953d41456ce234ca37c3 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/eclipse/res/values/styles.xml @@ -0,0 +1,20 @@ +<resources> + + <!-- + Base application theme, dependent on API level. This theme is replaced + by AppBaseTheme from res/values-vXX/styles.xml on newer devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Light"> + <!-- + Theme customizations available in newer API levels can go in + res/values-vXX/styles.xml, while customizations related to + backward-compatibility can go here. + --> + </style> + + <!-- Application theme. --> + <style name="AppTheme" parent="AppBaseTheme"> + <!-- All customizations that are NOT specific to a particular API-level can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_ota/eclipse/src/com/idevicesinc/sweetblue/simple_ota/MyActivity.java b/dev/android/sweetblue/samples/simple_ota/eclipse/src/com/idevicesinc/sweetblue/simple_ota/MyActivity.java new file mode 100644 index 0000000000000000000000000000000000000000..eb860a2e046d7ba53eabace931b611ab903a9a1b --- /dev/null +++ b/dev/android/sweetblue/samples/simple_ota/eclipse/src/com/idevicesinc/sweetblue/simple_ota/MyActivity.java @@ -0,0 +1,125 @@ +package com.idevicesinc.sweetblue.simple_ota; + +import com.idevicesinc.sweetblue.BleDevice; +import com.idevicesinc.sweetblue.BleDeviceState; +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.BleManagerConfig; +import com.idevicesinc.sweetblue.BleTransaction; +import com.idevicesinc.sweetblue.utils.Uuids; + +import android.app.Activity; +import android.content.Context; +import android.os.Bundle; +import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; +import android.widget.Toast; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + + +public class MyActivity extends Activity +{ + private static final UUID MY_UUID = UUID.randomUUID(); // NOTE: Replace with your actual UUID. + private static final byte[] MY_DATA = {(byte) 0xC0, (byte) 0xFF, (byte) 0xEE}; // NOTE: Replace with your actual data, not 0xC0FFEE + + private BleManager m_bleManager; + + private static class MyOtaTransaction extends BleTransaction.Ota + { + private final List<byte[]> m_dataQueue; + private int m_currentIndex = 0; + + private final BleDevice.ReadWriteListener m_readWriteListener = new BleDevice.ReadWriteListener() + { + @Override public void onEvent(ReadWriteEvent e) + { + if( e.wasSuccess() ) + { + doNextWrite(); + } + else + { + MyOtaTransaction.this.fail(); + } + } + }; + + public MyOtaTransaction(final List<byte[]> dataQueue) + { + m_dataQueue = dataQueue; + } + + @Override protected void start(BleDevice device) + { + doNextWrite(); + } + + private void doNextWrite() + { + if( m_currentIndex == m_dataQueue.size() ) + { + this.succeed(); + } + else + { + final byte[] nextData = m_dataQueue.get(m_currentIndex); + getDevice().write(MY_UUID, nextData, m_readWriteListener); + m_currentIndex++; + } + } + } + + @Override protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + + m_bleManager = BleManager.get(this); + + m_bleManager.startScan(new BleManager.DiscoveryListener() + { + @Override public void onEvent(DiscoveryEvent event) + { + m_bleManager.stopScan(); + + if( event.was(LifeCycle.DISCOVERED) ) + { + event.device().connect(new BleDevice.StateListener() + { + @Override public void onEvent(StateEvent event) + { + if( event.didEnter(BleDeviceState.INITIALIZED) ) + { + Log.i("SweetBlueExample", event.device().getName_debug() + " just initialized!"); + + final ArrayList<byte[]> writeQueue = new ArrayList<byte[]>(); + writeQueue.add(MY_DATA); + writeQueue.add(MY_DATA); + writeQueue.add(MY_DATA); + writeQueue.add(MY_DATA); + + event.device().performOta(new MyOtaTransaction(writeQueue)); + } + } + }); + } + } + }); + } + + @Override protected void onResume() + { + super.onResume(); + + m_bleManager.onResume(); + } + + @Override protected void onPause() + { + super.onPause(); + + m_bleManager.onPause(); + } +} diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/.idea/.name b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/.name new file mode 100644 index 0000000000000000000000000000000000000000..b3a3b3a4097fc5893cb043cc5a29f89e2625711d --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/.name @@ -0,0 +1 @@ +android_studio \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/.idea/compiler.xml b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/compiler.xml new file mode 100644 index 0000000000000000000000000000000000000000..96cc43efa6a0885098044e976cd780bb42c68a70 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/compiler.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="CompilerConfiguration"> + <resourceExtensions /> + <wildcardResourcePatterns> + <entry name="!?*.java" /> + <entry name="!?*.form" /> + <entry name="!?*.class" /> + <entry name="!?*.groovy" /> + <entry name="!?*.scala" /> + <entry name="!?*.flex" /> + <entry name="!?*.kt" /> + <entry name="!?*.clj" /> + <entry name="!?*.aj" /> + </wildcardResourcePatterns> + <annotationProcessing> + <profile default="true" name="Default" enabled="false"> + <processorPath useClasspath="true" /> + </profile> + </annotationProcessing> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/.idea/copyright/profiles_settings.xml b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000000000000000000000000000000000000..e7bedf3377d40335424fd605124d4761390218bb --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ +<component name="CopyrightManager"> + <settings default="" /> +</component> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/.idea/gradle.xml b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/gradle.xml new file mode 100644 index 0000000000000000000000000000000000000000..8d2df476e5f1ebbf2170b74c8edb13f53e322331 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/gradle.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="GradleSettings"> + <option name="linkedExternalProjectsSettings"> + <GradleProjectSettings> + <option name="distributionType" value="DEFAULT_WRAPPED" /> + <option name="externalProjectPath" value="$PROJECT_DIR$" /> + <option name="gradleJvm" value="1.8" /> + <option name="modules"> + <set> + <option value="$PROJECT_DIR$" /> + <option value="$PROJECT_DIR$/app" /> + </set> + </option> + </GradleProjectSettings> + </option> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/.idea/libraries/sweetblue.xml b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/libraries/sweetblue.xml new file mode 100644 index 0000000000000000000000000000000000000000..14de4f4311ad69eca3c8844c758fdbaaf891a0f3 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/libraries/sweetblue.xml @@ -0,0 +1,11 @@ +<component name="libraryTable"> + <library name="sweetblue"> + <CLASSES> + <root url="jar://$PROJECT_DIR$/app/libs/sweetblue.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES> + <root url="jar://$PROJECT_DIR$/app/libs/sweetblue-sources.jar!/" /> + </SOURCES> + </library> +</component> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/.idea/libraries/sweetblue_javadoc.xml b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/libraries/sweetblue_javadoc.xml new file mode 100644 index 0000000000000000000000000000000000000000..fbf2ef10bc57eb7a015179d251ff6ff3965ec3ff --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/libraries/sweetblue_javadoc.xml @@ -0,0 +1,9 @@ +<component name="libraryTable"> + <library name="sweetblue-javadoc"> + <CLASSES> + <root url="jar://$PROJECT_DIR$/app/libs/sweetblue-javadoc.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES /> + </library> +</component> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/.idea/libraries/sweetblue_sources.xml b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/libraries/sweetblue_sources.xml new file mode 100644 index 0000000000000000000000000000000000000000..5ba1d5821be4b8f04693ac808b71b94d88e640d7 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/libraries/sweetblue_sources.xml @@ -0,0 +1,9 @@ +<component name="libraryTable"> + <library name="sweetblue-sources"> + <CLASSES> + <root url="jar://$PROJECT_DIR$/app/libs/sweetblue-sources.jar!/" /> + </CLASSES> + <JAVADOC /> + <SOURCES /> + </library> +</component> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/.idea/misc.xml b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/misc.xml new file mode 100644 index 0000000000000000000000000000000000000000..5d19981032aa01b060f5a568641d7a8840cc90dc --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/misc.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="EntryPointsManager"> + <entry_points version="2.0" /> + </component> + <component name="NullableNotNullManager"> + <option name="myDefaultNullable" value="android.support.annotation.Nullable" /> + <option name="myDefaultNotNull" value="android.support.annotation.NonNull" /> + <option name="myNullables"> + <value> + <list size="4"> + <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" /> + <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" /> + <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" /> + <item index="3" class="java.lang.String" itemvalue="android.support.annotation.Nullable" /> + </list> + </value> + </option> + <option name="myNotNulls"> + <value> + <list size="4"> + <item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" /> + <item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" /> + <item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" /> + <item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" /> + </list> + </value> + </option> + </component> + <component name="ProjectLevelVcsManager" settingsEditedManually="false"> + <OptionsSetting value="true" id="Add" /> + <OptionsSetting value="true" id="Remove" /> + <OptionsSetting value="true" id="Checkout" /> + <OptionsSetting value="true" id="Update" /> + <OptionsSetting value="true" id="Status" /> + <OptionsSetting value="true" id="Edit" /> + <ConfirmationsSetting value="0" id="Add" /> + <ConfirmationsSetting value="0" id="Remove" /> + </component> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> + <output url="file://$PROJECT_DIR$/build/classes" /> + </component> + <component name="ProjectType"> + <option name="id" value="Android" /> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/.idea/modules.xml b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/modules.xml new file mode 100644 index 0000000000000000000000000000000000000000..d71b044feb5ae068b7731f8daf3ea263e711e65d --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/modules.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/android_studio.iml" filepath="$PROJECT_DIR$/android_studio.iml" /> + <module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/.idea/runConfigurations.xml b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/runConfigurations.xml new file mode 100644 index 0000000000000000000000000000000000000000..7f68460d8b38ac04e3a3224d7c79ef719b1991a9 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="RunConfigurationProducerService"> + <option name="ignoredProducers"> + <set> + <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" /> + <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" /> + <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" /> + </set> + </option> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/.idea/vcs.xml b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..6564d52db279c4ae8d882aacf5aa89a85e7a04de --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="" vcs="" /> + </component> +</project> \ No newline at end of file diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/app/build.gradle b/dev/android/sweetblue/samples/simple_write/android_studio/app/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..8ef50d577459c755f310a119c168567f3b1cdacc --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/app/build.gradle @@ -0,0 +1,23 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 24 + buildToolsVersion '24.0.3' + + defaultConfig { + applicationId "com.idevicesinc.sweetblue.simple_write" + minSdkVersion 18 + targetSdkVersion 24 + } + + buildTypes { + release { + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt' + } + } + + dependencies { + compile fileTree(dir: 'libs', include: '*.jar') + } +} diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/app/libs/sweetblue-javadoc.jar b/dev/android/sweetblue/samples/simple_write/android_studio/app/libs/sweetblue-javadoc.jar new file mode 100644 index 0000000000000000000000000000000000000000..eb495aefe26c6cea1a15d2ed00a50ee8063b6692 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_write/android_studio/app/libs/sweetblue-javadoc.jar differ diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/app/libs/sweetblue-sources.jar b/dev/android/sweetblue/samples/simple_write/android_studio/app/libs/sweetblue-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..7144cc70cee251dbc63acba80818d1e08b4298d4 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_write/android_studio/app/libs/sweetblue-sources.jar differ diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/app/libs/sweetblue.jar b/dev/android/sweetblue/samples/simple_write/android_studio/app/libs/sweetblue.jar new file mode 100644 index 0000000000000000000000000000000000000000..dc5f6329dbfe534d9c8ee98f288e1cf4c4137d17 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_write/android_studio/app/libs/sweetblue.jar differ diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/app/proguard-project.txt b/dev/android/sweetblue/samples/simple_write/android_studio/app/proguard-project.txt new file mode 100644 index 0000000000000000000000000000000000000000..f2fe1559a217865a5454add526dcc446f892385b --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/app/proguard-project.txt @@ -0,0 +1,20 @@ +# To enable ProGuard in your project, edit project.properties +# to define the proguard.config property as described in that file. +# +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in ${sdk.dir}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the ProGuard +# include property in project.properties. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/AndroidManifest.xml b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..1e239c0b76a67f42cfc1ae6f1b87c7b09e0b367a --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/AndroidManifest.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.idevicesinc.sweetblue.simple_write" + android:versionCode="1" + android:versionName="1.0" > + + <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19" /> + <uses-permission android:name="android.permission.BLUETOOTH" /> + <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> + <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" /> + <uses-permission android:name="android.permission.WAKE_LOCK" /> + <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> + <uses-feature android:name="android.hardware.bluetooth_le" android:required="true" /> + + <application + android:allowBackup="true" + android:icon="@drawable/ic_launcher" + android:label="@string/app_name" + android:theme="@style/AppTheme" > + <activity + android:name="com.idevicesinc.sweetblue.simple_write.MyActivity" + android:label="@string/app_name" > + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> + +</manifest> diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/java/com/idevicesinc/sweetblue/simple_write/MyActivity.java b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/java/com/idevicesinc/sweetblue/simple_write/MyActivity.java new file mode 100644 index 0000000000000000000000000000000000000000..5d6275ea48b7899782ea6cbf3bc821372dcf8c28 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/java/com/idevicesinc/sweetblue/simple_write/MyActivity.java @@ -0,0 +1,84 @@ +package com.idevicesinc.sweetblue.simple_write; + +import com.idevicesinc.sweetblue.BleDevice; +import com.idevicesinc.sweetblue.BleDeviceState; +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.BleManagerConfig; +import com.idevicesinc.sweetblue.utils.BluetoothEnabler; +import com.idevicesinc.sweetblue.utils.Uuids; + +import android.app.Activity; +import android.content.Context; +import android.os.Bundle; +import android.util.Log; + +import java.util.UUID; + + +public class MyActivity extends Activity +{ + private static final UUID MY_UUID = UUID.randomUUID(); // NOTE: Replace with your actual UUID. + private static final byte[] MY_DATA = {(byte) 0xC0, (byte) 0xFF, (byte) 0xEE}; // NOTE: Replace with your actual data, not 0xC0FFEE + + private BleManager m_bleManager; + + @Override protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + + BluetoothEnabler.start(this); + + m_bleManager = BleManager.get(this); + + m_bleManager.startScan(new BleManager.DiscoveryListener() + { + @Override public void onEvent(DiscoveryEvent event) + { + m_bleManager.stopScan(); + + if( event.was(LifeCycle.DISCOVERED) ) + { + event.device().connect(new BleDevice.StateListener() + { + @Override public void onEvent(StateEvent event) + { + if( event.didEnter(BleDeviceState.INITIALIZED) ) + { + Log.i("SweetBlueExample", event.device().getName_debug() + " just initialized!"); + + event.device().write(MY_UUID, MY_DATA, new BleDevice.ReadWriteListener() + { + @Override public void onEvent(ReadWriteEvent event) + { + if( event.wasSuccess() ) + { + Log.i("", "Write successful"); + } + else + { + Log.e("", event.status().toString()); // Logs the reason why it failed. + } + } + }); + } + } + }); + } + } + }); + } + + @Override protected void onResume() + { + super.onResume(); + + m_bleManager.onResume(); + } + + @Override protected void onPause() + { + super.onPause(); + + m_bleManager.onPause(); + } +} diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/drawable-hdpi/ic_launcher.png b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..bff79fd34ebc232fec3168fdb33d08245f58a308 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/drawable-hdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/drawable-mdpi/ic_launcher.png b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6c47374bb1abda53c4000cb9d3e96671df40160b Binary files /dev/null and b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/drawable-mdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/drawable-xhdpi/ic_launcher.png b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d6e3e9591212a9e065b391c17ddcdc6474f59776 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/drawable-xhdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/drawable-xxhdpi/ic_launcher.png b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..dec0b850aeb468076ce78feeb3b6acffa635f5ad Binary files /dev/null and b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/drawable-xxhdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/menu/my.xml b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/menu/my.xml new file mode 100644 index 0000000000000000000000000000000000000000..67b8f9ff2c49ed52132b1dc26261c6abce9f2712 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/menu/my.xml @@ -0,0 +1,11 @@ +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + tools:context="com.idevicesllc.hello_ble.MyActivity" > + + <item + android:id="@+id/action_settings" + android:orderInCategory="100" + android:showAsAction="never" + android:title="@string/action_settings"/> + +</menu> diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/values-v11/styles.xml b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/values-v11/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..3c02242ad044be9b8c7c09e7c90c5d427763fe97 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/values-v11/styles.xml @@ -0,0 +1,11 @@ +<resources> + + <!-- + Base application theme for API 11+. This theme completely replaces + AppBaseTheme from res/values/styles.xml on API 11+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light"> + <!-- API 11 theme customizations can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/values-v14/styles.xml b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/values-v14/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..a91fd0372b20f85e284fc2fa2ce949176dfdf6e5 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/values-v14/styles.xml @@ -0,0 +1,12 @@ +<resources> + + <!-- + Base application theme for API 14+. This theme completely replaces + AppBaseTheme from BOTH res/values/styles.xml and + res/values-v11/styles.xml on API 14+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> + <!-- API 14 theme customizations can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/values-w820dp/dimens.xml b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/values-w820dp/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..f3e70203b90ac39368a634f0c6388ccb615ffeca --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/values-w820dp/dimens.xml @@ -0,0 +1,10 @@ +<resources> + + <!-- + Example customization of dimensions originally defined in res/values/dimens.xml + (such as screen margins) for screens with more than 820dp of available width. This + would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). + --> + <dimen name="activity_horizontal_margin">64dp</dimen> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/values/dimens.xml b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..55c1e5908c7e0f157fe815acd6d5cd7358463390 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/values/dimens.xml @@ -0,0 +1,7 @@ +<resources> + + <!-- Default screen margins, per the Android Design guidelines. --> + <dimen name="activity_horizontal_margin">16dp</dimen> + <dimen name="activity_vertical_margin">16dp</dimen> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/values/strings.xml b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/values/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..81e16781e921df74ee205d3b5c4de6631fb21c1a --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/values/strings.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <string name="app_name">simple_write</string> + <string name="hello_world">Hello world!</string> + <string name="action_settings">Settings</string> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/values/styles.xml b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/values/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..6ce89c7ba4394d8cab27953d41456ce234ca37c3 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/app/src/main/res/values/styles.xml @@ -0,0 +1,20 @@ +<resources> + + <!-- + Base application theme, dependent on API level. This theme is replaced + by AppBaseTheme from res/values-vXX/styles.xml on newer devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Light"> + <!-- + Theme customizations available in newer API levels can go in + res/values-vXX/styles.xml, while customizations related to + backward-compatibility can go here. + --> + </style> + + <!-- Application theme. --> + <style name="AppTheme" parent="AppBaseTheme"> + <!-- All customizations that are NOT specific to a particular API-level can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/build.gradle b/dev/android/sweetblue/samples/simple_write/android_studio/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..739ceb5cde8c843d05c4e601997a0126f1ce3b19 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/build.gradle @@ -0,0 +1,15 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + repositories { + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:2.0.0' + } +} + +allprojects { + repositories { + jcenter() + } +} diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/gradle/wrapper/gradle-wrapper.jar b/dev/android/sweetblue/samples/simple_write/android_studio/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..8c0fb64a8698b08ecc4158d828ca593c4928e9dd Binary files /dev/null and b/dev/android/sweetblue/samples/simple_write/android_studio/gradle/wrapper/gradle-wrapper.jar differ diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/gradle/wrapper/gradle-wrapper.properties b/dev/android/sweetblue/samples/simple_write/android_studio/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000000000000000000000000000000000..d57051703e32b305b0071fed7cef094fd0504f39 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Wed Apr 10 15:27:10 PDT 2013 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/gradlew b/dev/android/sweetblue/samples/simple_write/android_studio/gradlew new file mode 100644 index 0000000000000000000000000000000000000000..91a7e269e19dfc62e27137a0b57ef3e430cee4fd --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/gradlew.bat b/dev/android/sweetblue/samples/simple_write/android_studio/gradlew.bat new file mode 100644 index 0000000000000000000000000000000000000000..8a0b282aa6885fb573c106b3551f7275c5f17e8e --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/dev/android/sweetblue/samples/simple_write/android_studio/settings.gradle b/dev/android/sweetblue/samples/simple_write/android_studio/settings.gradle new file mode 100644 index 0000000000000000000000000000000000000000..e7b4def49cb53d9aa04228dd3edb14c9e635e003 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/android_studio/settings.gradle @@ -0,0 +1 @@ +include ':app' diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/.classpath b/dev/android/sweetblue/samples/simple_write/eclipse/.classpath new file mode 100644 index 0000000000000000000000000000000000000000..ab29e508541d457e1f40901ae4c79015b48f97c8 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/eclipse/.classpath @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" path="src"/> + <classpathentry kind="src" path="gen"/> + <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> + <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> + <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> + <classpathentry exported="true" kind="lib" path="lib/sweetblue.jar" sourcepath="lib/sweetblue-sources.jar"> + <attributes> + <attribute name="javadoc_location" value="jar:platform:/resource/hello_ble/lib/sweetblue-javadoc.jar!/"/> + </attributes> + </classpathentry> + <classpathentry kind="output" path="bin/classes"/> +</classpath> diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/.project b/dev/android/sweetblue/samples/simple_write/eclipse/.project new file mode 100644 index 0000000000000000000000000000000000000000..a70ae7bfce20d1a4ebbf820193993e23ab7288cb --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/eclipse/.project @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>hello_ble</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>com.android.ide.eclipse.adt.ApkBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>com.android.ide.eclipse.adt.AndroidNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + </natures> +</projectDescription> diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/AndroidManifest.xml b/dev/android/sweetblue/samples/simple_write/eclipse/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..14d70e17c4442d436c4b95fdc152609267d138e4 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/eclipse/AndroidManifest.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.idevicesinc.sweetblue.simple_write" + android:versionCode="1" + android:versionName="1.0" > + + <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="19" /> + <uses-permission android:name="android.permission.BLUETOOTH" /> + <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> + <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" /> + <uses-permission android:name="android.permission.WAKE_LOCK" /> + <uses-feature android:name="android.hardware.bluetooth_le" android:required="true" /> + + <application + android:allowBackup="true" + android:icon="@drawable/ic_launcher" + android:label="@string/app_name" + android:theme="@style/AppTheme" > + <activity + android:name="com.idevicesinc.sweetblue.simple_write.MyActivity" + android:label="@string/app_name" > + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + </application> + +</manifest> diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/ic_launcher-web.png b/dev/android/sweetblue/samples/simple_write/eclipse/ic_launcher-web.png new file mode 100644 index 0000000000000000000000000000000000000000..4131fb0c65644442ce70071b0cfafb9e631ba228 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_write/eclipse/ic_launcher-web.png differ diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/lib/sweetblue-javadoc.jar b/dev/android/sweetblue/samples/simple_write/eclipse/lib/sweetblue-javadoc.jar new file mode 100644 index 0000000000000000000000000000000000000000..eb495aefe26c6cea1a15d2ed00a50ee8063b6692 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_write/eclipse/lib/sweetblue-javadoc.jar differ diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/lib/sweetblue-sources.jar b/dev/android/sweetblue/samples/simple_write/eclipse/lib/sweetblue-sources.jar new file mode 100644 index 0000000000000000000000000000000000000000..7144cc70cee251dbc63acba80818d1e08b4298d4 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_write/eclipse/lib/sweetblue-sources.jar differ diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/lib/sweetblue.jar b/dev/android/sweetblue/samples/simple_write/eclipse/lib/sweetblue.jar new file mode 100644 index 0000000000000000000000000000000000000000..dc5f6329dbfe534d9c8ee98f288e1cf4c4137d17 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_write/eclipse/lib/sweetblue.jar differ diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/proguard-project.txt b/dev/android/sweetblue/samples/simple_write/eclipse/proguard-project.txt new file mode 100644 index 0000000000000000000000000000000000000000..f2fe1559a217865a5454add526dcc446f892385b --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/eclipse/proguard-project.txt @@ -0,0 +1,20 @@ +# To enable ProGuard in your project, edit project.properties +# to define the proguard.config property as described in that file. +# +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in ${sdk.dir}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the ProGuard +# include property in project.properties. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/project.properties b/dev/android/sweetblue/samples/simple_write/eclipse/project.properties new file mode 100644 index 0000000000000000000000000000000000000000..738e84e9ff125d545d14646c43651fcb788f9657 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/eclipse/project.properties @@ -0,0 +1,14 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system edit +# "ant.properties", and override values to adapt the script to your +# project structure. +# +# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): +proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt + +# Project target. +target=android-19 diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/res/drawable-hdpi/ic_launcher.png b/dev/android/sweetblue/samples/simple_write/eclipse/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..bff79fd34ebc232fec3168fdb33d08245f58a308 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_write/eclipse/res/drawable-hdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/res/drawable-mdpi/ic_launcher.png b/dev/android/sweetblue/samples/simple_write/eclipse/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6c47374bb1abda53c4000cb9d3e96671df40160b Binary files /dev/null and b/dev/android/sweetblue/samples/simple_write/eclipse/res/drawable-mdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/res/drawable-xhdpi/ic_launcher.png b/dev/android/sweetblue/samples/simple_write/eclipse/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d6e3e9591212a9e065b391c17ddcdc6474f59776 Binary files /dev/null and b/dev/android/sweetblue/samples/simple_write/eclipse/res/drawable-xhdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/res/drawable-xxhdpi/ic_launcher.png b/dev/android/sweetblue/samples/simple_write/eclipse/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..dec0b850aeb468076ce78feeb3b6acffa635f5ad Binary files /dev/null and b/dev/android/sweetblue/samples/simple_write/eclipse/res/drawable-xxhdpi/ic_launcher.png differ diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/res/menu/my.xml b/dev/android/sweetblue/samples/simple_write/eclipse/res/menu/my.xml new file mode 100644 index 0000000000000000000000000000000000000000..67b8f9ff2c49ed52132b1dc26261c6abce9f2712 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/eclipse/res/menu/my.xml @@ -0,0 +1,11 @@ +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + tools:context="com.idevicesllc.hello_ble.MyActivity" > + + <item + android:id="@+id/action_settings" + android:orderInCategory="100" + android:showAsAction="never" + android:title="@string/action_settings"/> + +</menu> diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/res/values-v11/styles.xml b/dev/android/sweetblue/samples/simple_write/eclipse/res/values-v11/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..3c02242ad044be9b8c7c09e7c90c5d427763fe97 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/eclipse/res/values-v11/styles.xml @@ -0,0 +1,11 @@ +<resources> + + <!-- + Base application theme for API 11+. This theme completely replaces + AppBaseTheme from res/values/styles.xml on API 11+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light"> + <!-- API 11 theme customizations can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/res/values-v14/styles.xml b/dev/android/sweetblue/samples/simple_write/eclipse/res/values-v14/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..a91fd0372b20f85e284fc2fa2ce949176dfdf6e5 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/eclipse/res/values-v14/styles.xml @@ -0,0 +1,12 @@ +<resources> + + <!-- + Base application theme for API 14+. This theme completely replaces + AppBaseTheme from BOTH res/values/styles.xml and + res/values-v11/styles.xml on API 14+ devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> + <!-- API 14 theme customizations can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/res/values-w820dp/dimens.xml b/dev/android/sweetblue/samples/simple_write/eclipse/res/values-w820dp/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..f3e70203b90ac39368a634f0c6388ccb615ffeca --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/eclipse/res/values-w820dp/dimens.xml @@ -0,0 +1,10 @@ +<resources> + + <!-- + Example customization of dimensions originally defined in res/values/dimens.xml + (such as screen margins) for screens with more than 820dp of available width. This + would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). + --> + <dimen name="activity_horizontal_margin">64dp</dimen> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/res/values/dimens.xml b/dev/android/sweetblue/samples/simple_write/eclipse/res/values/dimens.xml new file mode 100644 index 0000000000000000000000000000000000000000..55c1e5908c7e0f157fe815acd6d5cd7358463390 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/eclipse/res/values/dimens.xml @@ -0,0 +1,7 @@ +<resources> + + <!-- Default screen margins, per the Android Design guidelines. --> + <dimen name="activity_horizontal_margin">16dp</dimen> + <dimen name="activity_vertical_margin">16dp</dimen> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/res/values/strings.xml b/dev/android/sweetblue/samples/simple_write/eclipse/res/values/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..81e16781e921df74ee205d3b5c4de6631fb21c1a --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/eclipse/res/values/strings.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <string name="app_name">simple_write</string> + <string name="hello_world">Hello world!</string> + <string name="action_settings">Settings</string> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/res/values/styles.xml b/dev/android/sweetblue/samples/simple_write/eclipse/res/values/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..6ce89c7ba4394d8cab27953d41456ce234ca37c3 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/eclipse/res/values/styles.xml @@ -0,0 +1,20 @@ +<resources> + + <!-- + Base application theme, dependent on API level. This theme is replaced + by AppBaseTheme from res/values-vXX/styles.xml on newer devices. + --> + <style name="AppBaseTheme" parent="android:Theme.Light"> + <!-- + Theme customizations available in newer API levels can go in + res/values-vXX/styles.xml, while customizations related to + backward-compatibility can go here. + --> + </style> + + <!-- Application theme. --> + <style name="AppTheme" parent="AppBaseTheme"> + <!-- All customizations that are NOT specific to a particular API-level can go here. --> + </style> + +</resources> diff --git a/dev/android/sweetblue/samples/simple_write/eclipse/src/com/idevicesinc/sweetblue/simple_write/MyActivity.java b/dev/android/sweetblue/samples/simple_write/eclipse/src/com/idevicesinc/sweetblue/simple_write/MyActivity.java new file mode 100644 index 0000000000000000000000000000000000000000..98037e9df2525afbd0a030f184293847ad1825d2 --- /dev/null +++ b/dev/android/sweetblue/samples/simple_write/eclipse/src/com/idevicesinc/sweetblue/simple_write/MyActivity.java @@ -0,0 +1,81 @@ +package com.idevicesinc.sweetblue.simple_write; + +import com.idevicesinc.sweetblue.BleDevice; +import com.idevicesinc.sweetblue.BleDeviceState; +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.BleManagerConfig; +import com.idevicesinc.sweetblue.utils.Uuids; + +import android.app.Activity; +import android.content.Context; +import android.os.Bundle; +import android.util.Log; + +import java.util.UUID; + + +public class MyActivity extends Activity +{ + private static final UUID MY_UUID = UUID.randomUUID(); // NOTE: Replace with your actual UUID. + private static final byte[] MY_DATA = {(byte) 0xC0, (byte) 0xFF, (byte) 0xEE}; // NOTE: Replace with your actual data, not 0xC0FFEE + + private BleManager m_bleManager; + + @Override protected void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + + m_bleManager = BleManager.get(this); + + m_bleManager.startScan(new BleManager.DiscoveryListener() + { + @Override public void onEvent(DiscoveryEvent event) + { + m_bleManager.stopScan(); + + if( event.was(LifeCycle.DISCOVERED) ) + { + event.device().connect(new BleDevice.StateListener() + { + @Override public void onEvent(StateEvent event) + { + if( event.didEnter(BleDeviceState.INITIALIZED) ) + { + Log.i("SweetBlueExample", event.device().getName_debug() + " just initialized!"); + + event.device().write(MY_UUID, MY_DATA, new BleDevice.ReadWriteListener() + { + @Override public void onEvent(ReadWriteEvent event) + { + if( event.wasSuccess() ) + { + Log.i("", "Write successful"); + } + else + { + Log.e("", event.status().toString()); // Logs the reason why it failed. + } + } + }); + } + } + }); + } + } + }); + } + + @Override protected void onResume() + { + super.onResume(); + + m_bleManager.onResume(); + } + + @Override protected void onPause() + { + super.onPause(); + + m_bleManager.onPause(); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleAdvertisingPacket.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleAdvertisingPacket.java new file mode 100644 index 0000000000000000000000000000000000000000..e15113b87d26877b5d686d2fcac61b6b240f08c9 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleAdvertisingPacket.java @@ -0,0 +1,416 @@ +package com.idevicesinc.sweetblue; + + +import android.annotation.TargetApi; +import android.bluetooth.le.AdvertiseData; +import android.bluetooth.le.AdvertiseSettings; +import android.os.Build; +import android.os.ParcelUuid; + +import com.idevicesinc.sweetblue.utils.BitwiseEnum; +import com.idevicesinc.sweetblue.utils.Interval; +import com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode; +import com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +/** + * Class to used for advertising Bluetooth services, used with {@link com.idevicesinc.sweetblue.BleServer#startAdvertising(BleAdvertisingPacket)} + */ +public class BleAdvertisingPacket { + + + private final UUID[] serviceUuids; + private final Map<UUID, byte[]> serviceData; + private final int m_options; + private final int m_manufacturerId; + private final byte[] m_manData; + + + /** + * Base constructor which all other constructors in this class overload. This sets all the packet information to be included + * in your advertisement. + */ + public BleAdvertisingPacket(UUID[] serviceUuids, Map<UUID, byte[]> serviceData, int options, int manufacturerId, byte[] manufacturerData) + { + this.serviceUuids = serviceUuids; + this.serviceData = serviceData; + m_options = options; + m_manufacturerId = manufacturerId; + m_manData = manufacturerData; + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])}, which sets the {@link BleAdvertisingPacket.Option#CONNECTABLE}, + * and {@link BleAdvertisingPacket.Option#INCLUDE_NAME} flags. + */ + public BleAdvertisingPacket(UUID serviceUuid) + { + this(new UUID[] { serviceUuid }, null, Option.CONNECTABLE.or(Option.INCLUDE_NAME), 0, null); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])} + */ + public BleAdvertisingPacket(UUID serviceUuid, Option... options) + { + this(new UUID[] { serviceUuid }, null, Option.getFlags(options), 0, null); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])}, which sets the {@link BleAdvertisingPacket.Option#CONNECTABLE}, + * and {@link BleAdvertisingPacket.Option#INCLUDE_NAME} flags. + */ + public BleAdvertisingPacket(UUID serviceUuid, int manufacturerId) + { + this(new UUID[] { serviceUuid }, null, Option.CONNECTABLE.or(Option.INCLUDE_NAME), manufacturerId, null); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])} + */ + public BleAdvertisingPacket(UUID serviceUuid, int manufacturerId, Option... options) + { + this(new UUID[] { serviceUuid }, null, Option.getFlags(options), manufacturerId, null); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])}, which sets the {@link BleAdvertisingPacket.Option#CONNECTABLE}, + * and {@link BleAdvertisingPacket.Option#INCLUDE_NAME} flags. + */ + public BleAdvertisingPacket(UUID serviceUuid, int manufacturerId, byte[] manufacturerData) + { + this(new UUID[] { serviceUuid }, null, Option.CONNECTABLE.or(Option.INCLUDE_NAME), manufacturerId, manufacturerData); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])} + */ + public BleAdvertisingPacket(UUID serviceUuid, int manufacturerId, byte[] manufacturerData, Option... options) + { + this(new UUID[] { serviceUuid }, null, Option.getFlags(options), manufacturerId, manufacturerData); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])}, which sets the {@link BleAdvertisingPacket.Option#CONNECTABLE}, + * and {@link BleAdvertisingPacket.Option#INCLUDE_NAME} flags. + */ + public BleAdvertisingPacket(UUID[] serviceUuids) + { + this(serviceUuids, null, Option.CONNECTABLE.or(Option.INCLUDE_NAME), 0, null); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])} + */ + public BleAdvertisingPacket(UUID[] serviceUuids, Option... options) { + this(serviceUuids, null, Option.getFlags(options), 0, null); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])}, which sets the {@link BleAdvertisingPacket.Option#CONNECTABLE}, + * and {@link BleAdvertisingPacket.Option#INCLUDE_NAME} flags. + */ + public BleAdvertisingPacket(UUID[] serviceUuids, int manufacturerId) + { + this(serviceUuids, null, Option.CONNECTABLE.or(Option.INCLUDE_NAME), manufacturerId, null); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])} + */ + public BleAdvertisingPacket(UUID[] serviceUuids, int manufacturerId, Option... options) + { + this(serviceUuids, null, Option.getFlags(options), manufacturerId, null); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])}, which sets the {@link BleAdvertisingPacket.Option#CONNECTABLE}, + * and {@link BleAdvertisingPacket.Option#INCLUDE_NAME} flags. + */ + public BleAdvertisingPacket(UUID[] serviceUuids, int manufacturerId, byte[] manufacturerData) + { + this(serviceUuids, null, Option.CONNECTABLE.or(Option.INCLUDE_NAME), manufacturerId, manufacturerData); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])} + */ + public BleAdvertisingPacket(UUID[] serviceUuids, int manufacturerId, byte[] manufacturerData, Option... options) + { + this(serviceUuids, null, Option.getFlags(options), manufacturerId, manufacturerData); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])}, which sets the {@link BleAdvertisingPacket.Option#CONNECTABLE}, + * and {@link BleAdvertisingPacket.Option#INCLUDE_NAME} flags. + */ + public BleAdvertisingPacket(UUID serviceUuid, final UUID serviceDataUuid, final byte[] serviceData) + { + this(new UUID[] { serviceUuid }, new HashMap<UUID, byte[]>(1) {{ put(serviceDataUuid, serviceData); }}, Option.CONNECTABLE.or(Option.INCLUDE_NAME), 0, null); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])} + */ + public BleAdvertisingPacket(UUID serviceUuid, final UUID serviceDataUuid, final byte[] serviceData, Option... options) + { + this(new UUID[] { serviceUuid }, new HashMap<UUID, byte[]>(1) {{ put(serviceDataUuid, serviceData); }}, Option.getFlags(options), 0, null); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])}, which sets the {@link BleAdvertisingPacket.Option#CONNECTABLE}, + * and {@link BleAdvertisingPacket.Option#INCLUDE_NAME} flags. + */ + public BleAdvertisingPacket(UUID[] serviceUuids, final UUID serviceDataUuid, final byte[] serviceData) + { + this(serviceUuids, new HashMap<UUID, byte[]>(1) {{ put(serviceDataUuid, serviceData); }}, Option.CONNECTABLE.or(Option.INCLUDE_NAME), 0, null); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])} + */ + public BleAdvertisingPacket(UUID[] serviceUuids, final UUID serviceDataUuid, final byte[] serviceData, Option... options) + { + this(serviceUuids, new HashMap<UUID, byte[]>(1) {{ put(serviceDataUuid, serviceData); }}, Option.getFlags(options), 0, null); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])}, which sets the {@link BleAdvertisingPacket.Option#CONNECTABLE}, + * and {@link BleAdvertisingPacket.Option#INCLUDE_NAME} flags. + */ + public BleAdvertisingPacket(UUID serviceUuid, Map<UUID, byte[]> serviceUuidsAndData) + { + this(new UUID[] { serviceUuid }, serviceUuidsAndData, Option.CONNECTABLE.or(Option.INCLUDE_NAME), 0, null); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])} + */ + public BleAdvertisingPacket(UUID serviceUuid, Map<UUID, byte[]> serviceUuidsAndData, Option... options) + { + this(new UUID[] { serviceUuid }, serviceUuidsAndData, Option.getFlags(options), 0, null); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])}, which sets the {@link BleAdvertisingPacket.Option#CONNECTABLE}, + * and {@link BleAdvertisingPacket.Option#INCLUDE_NAME} flags. + */ + public BleAdvertisingPacket(UUID serviceUuid, Map<UUID, byte[]> serviceUuidsAndData, int manufacturerId, byte[] manufacturerData) + { + this(new UUID[] { serviceUuid }, serviceUuidsAndData, Option.CONNECTABLE.or(Option.INCLUDE_NAME), manufacturerId, manufacturerData); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])} + */ + public BleAdvertisingPacket(UUID serviceUuid, Map<UUID, byte[]> serviceUuidsAndData, int manufacturerId, byte[] manufacturerData, Option... options) + { + this(new UUID[] { serviceUuid }, serviceUuidsAndData, Option.getFlags(options), manufacturerId, manufacturerData); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])}, which sets the {@link BleAdvertisingPacket.Option#CONNECTABLE}, + * and {@link BleAdvertisingPacket.Option#INCLUDE_NAME} flags. + */ + public BleAdvertisingPacket(final UUID serviceDataUuid, final byte[] serviceData) + { + this(new UUID[0], new HashMap<UUID, byte[]>(1) {{ put(serviceDataUuid, serviceData); }}, Option.CONNECTABLE.or(Option.INCLUDE_NAME), 0, null); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])} + */ + public BleAdvertisingPacket(final UUID serviceDataUuid, final byte[] serviceData, Option... options) + { + this(new UUID[0], new HashMap<UUID, byte[]>(1) {{ put(serviceDataUuid, serviceData); }}, Option.getFlags(options), 0, null); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])}, which sets the {@link BleAdvertisingPacket.Option#CONNECTABLE}, + * and {@link BleAdvertisingPacket.Option#INCLUDE_NAME} flags. + */ + public BleAdvertisingPacket(final UUID serviceDataUuid, final byte[] serviceData, int manufacturerId, byte[] manufacturerData) + { + this(new UUID[0], new HashMap<UUID, byte[]>(1) {{ put(serviceDataUuid, serviceData); }}, Option.CONNECTABLE.or(Option.INCLUDE_NAME), manufacturerId, manufacturerData); + } + + /** + * Overload of {@link #BleAdvertisingPacket(UUID[], Map, int, int, byte[])} + */ + public BleAdvertisingPacket(final UUID serviceDataUuid, final byte[] serviceData, int manufacturerId, byte[] manufacturerData, Option... options) + { + this(new UUID[0], new HashMap<UUID, byte[]>(1) {{ put(serviceDataUuid, serviceData); }}, Option.getFlags(options), manufacturerId, manufacturerData); + } + + /** + * Returns the manufacturer Id being used + */ + public int getManufacturerId() + { + return m_manufacturerId; + } + + /** + * Returns the manufacturer data + */ + public byte[] getManufacturerData() + { + return m_manData; + } + + /** + * Whether or not this advertisement is connectable + */ + public boolean isConnectable() + { + return (m_options & Option.CONNECTABLE.bit()) == Option.CONNECTABLE.bit(); + } + + /** + * Whether or not this advertisement includes the device name + */ + public boolean includeDeviceName() + { + return (m_options & Option.INCLUDE_NAME.bit()) == Option.INCLUDE_NAME.bit(); + } + + /** + * Whether or not this advertisement includes the Tx power level in the packet + */ + public boolean includeTxPowerLevel() + { + return (m_options & Option.INCLUDE_TX_POWER.bit()) == Option.INCLUDE_TX_POWER.bit(); + } + + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + /*package*/ AdvertiseSettings getNativeSettings(BleAdvertisingMode mode, BleTransmissionPower power, Interval timeout) { + AdvertiseSettings.Builder settings = new AdvertiseSettings.Builder(); + settings.setAdvertiseMode(mode.getNativeMode()); + settings.setTxPowerLevel(power.getNativeMode()); + settings.setConnectable(isConnectable()); + settings.setTimeout((int) timeout.millis()); + return settings.build(); + } + + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + /*package*/ AdvertiseData getNativeData() { + AdvertiseData.Builder data = new AdvertiseData.Builder(); + for (UUID id : serviceUuids) + { + data.addServiceUuid(new ParcelUuid(id)); + } + if (m_manufacturerId != 0 && m_manData != null) + { + data.addManufacturerData(m_manufacturerId, m_manData); + } + if (serviceData != null && serviceData.size() > 0) + { + for (UUID dataUuid : serviceData.keySet()) + { + data.addServiceData(new ParcelUuid(dataUuid), serviceData.get(dataUuid)); + } + } + data.setIncludeDeviceName(includeDeviceName()); + data.setIncludeTxPowerLevel(includeTxPowerLevel()); + return data.build(); + } + + /** + * Returns true if this advertising packet contains the uuid given. + */ + public boolean hasUuid(UUID uuid) + { + if (serviceUuids != null && serviceUuids.length > 0) + { + for (UUID id : serviceUuids) + { + if (id.equals(uuid)) + { + return true; + } + } + } + if (serviceData != null && serviceData.size() > 0) + { + for (UUID id : serviceData.keySet()) + { + if (id.equals(uuid)) + { + return true; + } + } + } + return false; + } + + /** + * Returns a HashSet of UUIDS that will be advertised + */ + public UUID[] getUuids() + { + return serviceUuids; + } + + /** + * Returns a Map of 16bit service UUIDs, along with the associated byte arrays. + */ + public Map<UUID, byte[]> getServiceData() + { + return serviceData; + } + + + /** + * Enumeration for advertising options + */ + public static enum Option implements BitwiseEnum + { + + CONNECTABLE(1), + INCLUDE_NAME(2), + INCLUDE_TX_POWER(4); + + private final int m_bit; + + private Option(int bit) + { + m_bit = bit; + } + + public static int getFlags(Option[] options) { + if (options == null || options.length == 0) { + return 0; + } + int flags = 0; + for (Option o : options) { + flags |= o.bit(); + } + return flags; + } + + @Override public int or(BitwiseEnum state) + { + return m_bit | state.bit(); + } + + @Override public int or(int bits) + { + return m_bit | bits; + } + + @Override public int bit() + { + return m_bit; + } + + @Override public boolean overlaps(int mask) + { + return (m_bit & mask) != 0x0; + } + } + + +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleAdvertisingSettings.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleAdvertisingSettings.java new file mode 100644 index 0000000000000000000000000000000000000000..a2acd258a8971bbfda7b43408eca1d60d66f7aa1 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleAdvertisingSettings.java @@ -0,0 +1,169 @@ +package com.idevicesinc.sweetblue; + + +import android.bluetooth.le.AdvertiseSettings; +import com.idevicesinc.sweetblue.utils.Interval; + +/** + * Class used specify Ble Advertising settings. + */ +public class BleAdvertisingSettings { + + /** + * Type-safe parallel of static final int members of {@link android.bluetooth.le.AdvertiseSettings}. + * This is only applicable for Android >= 5.0 OS levels. + */ + public enum BleAdvertisingMode { + + /** + * This option is recommended and will let SweetBlue automatically choose what advertising mode to use + * based on whether the app is backgrounded, and if we're doing a continuous, or short-term advertisement + */ + AUTO(-1), + + /** + * Strict typing for {@link AdvertiseSettings#ADVERTISE_MODE_LOW_POWER}. + */ + LOW_FREQUENCY(AdvertiseSettings.ADVERTISE_MODE_LOW_POWER), + + /** + * Strict typing for {@link AdvertiseSettings#ADVERTISE_MODE_BALANCED}. + */ + MEDIUM_FREQUENCY(AdvertiseSettings.ADVERTISE_MODE_BALANCED), + + /** + * Strict typing for {@link AdvertiseSettings#ADVERTISE_MODE_LOW_LATENCY}. + */ + HIGH_FREQUENCY(AdvertiseSettings.ADVERTISE_MODE_LOW_LATENCY); + + private final int m_nativeMode; + + BleAdvertisingMode(int nativeMode) + { + m_nativeMode = nativeMode; + } + + /** + * Returns one of the static final int members of {@link AdvertiseSettings}, or -1 for {@link #AUTO}. + */ + public int getNativeMode() + { + return m_nativeMode; + } + } + + /** + * Type-safe parallel of static final int members of {@link android.bluetooth.le.AdvertiseSettings}. + * This is only applicable for Android >= 5.0 OS levels. + */ + public enum BleTransmissionPower { + + /** + * Strict typing for {@link AdvertiseSettings#ADVERTISE_TX_POWER_ULTRA_LOW}. + */ + ULTRA_LOW (AdvertiseSettings.ADVERTISE_TX_POWER_ULTRA_LOW), + + /** + * Strict typing for {@link AdvertiseSettings#ADVERTISE_TX_POWER_LOW}. + */ + LOW (AdvertiseSettings.ADVERTISE_TX_POWER_LOW), + + /** + * Strict typing for {@link AdvertiseSettings#ADVERTISE_TX_POWER_MEDIUM}. + */ + MEDIUM (AdvertiseSettings.ADVERTISE_TX_POWER_MEDIUM), + + /** + * Strict typing for {@link AdvertiseSettings#ADVERTISE_TX_POWER_HIGH}. + */ + HIGH (AdvertiseSettings.ADVERTISE_TX_POWER_HIGH); + + private final int m_nativeMode; + + BleTransmissionPower(int nativeMode) + { + m_nativeMode = nativeMode; + } + + /** + * Returns one of the static final int members of {@link AdvertiseSettings} + */ + public int getNativeMode() + { + return m_nativeMode; + } + + } + + private final BleAdvertisingMode m_mode; + private final BleTransmissionPower m_power; + private final Interval m_timeout; + + /** + * Base constructor which sets all relevant Ble advertising settings + */ + public BleAdvertisingSettings(BleAdvertisingMode mode, BleTransmissionPower power, Interval timeout) { + m_mode = mode; + m_power = power; + m_timeout = timeout; + } + + /** + * Overload of {@link #BleAdvertisingSettings(BleAdvertisingMode, BleTransmissionPower, Interval)}, which sets + * the {@link com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode} to {@link com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode#AUTO}, + * {@link com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower} to {@link com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower#MEDIUM}, + * and the timeout to {@link Interval#ZERO} (no timeout). + */ + public BleAdvertisingSettings() { + this(BleAdvertisingMode.AUTO, BleTransmissionPower.MEDIUM, Interval.ZERO); + } + + /** + * Overload of {@link #BleAdvertisingSettings(BleAdvertisingMode, BleTransmissionPower, Interval)}, which sets the + * {@link com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode} to {@link com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode#AUTO}. + */ + public BleAdvertisingSettings(BleTransmissionPower power, Interval timeout) { + this(BleAdvertisingMode.AUTO, power, timeout); + } + + /** + * Overload of {@link #BleAdvertisingSettings(BleAdvertisingMode, BleTransmissionPower, Interval)}, which sets the + * {@link com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode} to {@link com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode#AUTO}, + * and the timeout to {@link Interval#ZERO} (no timeout). + */ + public BleAdvertisingSettings(BleTransmissionPower power) { + this(BleAdvertisingMode.AUTO, power, Interval.ZERO); + } + + /** + * Overload of {@link #BleAdvertisingSettings(BleAdvertisingMode, BleTransmissionPower, Interval)}, which sets the + * {@link com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode} to {@link com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode#AUTO}, and + * {@link com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower} to {@link com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower#MEDIUM}. + */ + public BleAdvertisingSettings(Interval timeout) { + this(BleAdvertisingMode.AUTO, BleTransmissionPower.MEDIUM, timeout); + } + + /** + * Returns the advertising mode specified with {@link com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode} + */ + public BleAdvertisingMode getAdvertisingMode() { + return m_mode; + } + + /** + * Returns the advertising transmission power specified with {@link com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower} + */ + public BleTransmissionPower getTransmissionPower() { + return m_power; + } + + /** + * Returns the timeout period. + */ + public Interval getTimeout() { + return m_timeout; + } + + +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleCharacteristic.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleCharacteristic.java new file mode 100644 index 0000000000000000000000000000000000000000..6b4806a3ca5e834a75dab9f94a9a97cabdf3166b --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleCharacteristic.java @@ -0,0 +1,53 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothGattCharacteristic; + +import com.idevicesinc.sweetblue.utils.Utils_Byte; + +import java.util.UUID; + +/** + * Proxy of {@link android.bluetooth.BluetoothGattCharacteristic} to force stricter compile-time checks and order of operations + * when creating characteristics for {@link BleServer}. + * + * @see BleServices + */ +public class BleCharacteristic +{ + final BluetoothGattCharacteristic m_native; + + public BleCharacteristic(final UUID uuid, final BleCharacteristicProperty property, final BleCharacteristicPermission permission, final BleDescriptor ... descriptors) + { + this(uuid, property.bit(), permission.bit(), descriptors); + } + + public BleCharacteristic(final UUID uuid, final BleDescriptor descriptor, final BleCharacteristicPermission permission, final BleCharacteristicProperty ... properties) + { + this(uuid, Utils_Byte.toBits(properties), permission.bit(), new BleDescriptor[]{descriptor}); + } + + public BleCharacteristic(final UUID uuid, final BleDescriptor descriptor, final BleCharacteristicProperty property, final BleCharacteristicPermission ... permissions) + { + this(uuid, property.bit(), Utils_Byte.toBits(permissions), new BleDescriptor[]{descriptor}); + } + + public BleCharacteristic(final UUID uuid, final BleCharacteristicPermission permission, final BleCharacteristicProperty property, final BleDescriptor ... descriptors) + { + this(uuid, property.bit(), permission.bit(), descriptors); + } + + public BleCharacteristic(final UUID uuid, final BleCharacteristicProperty[] properties, final BleCharacteristicPermission[] permissions, final BleDescriptor ... descriptors) + { + this(uuid, Utils_Byte.toBits(properties), Utils_Byte.toBits(permissions), descriptors); + } + + private BleCharacteristic(final UUID uuid, final int properties, final int permissions, final BleDescriptor[] descriptors) + { + m_native = new BluetoothGattCharacteristic(uuid, properties, permissions); + + for( int i = 0; i < descriptors.length; i++ ) + { + m_native.addDescriptor(descriptors[i].m_native); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleCharacteristicPermission.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleCharacteristicPermission.java new file mode 100644 index 0000000000000000000000000000000000000000..5dc38f312f4a3f40d6fb9d7639da52ef4c87eb9b --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleCharacteristicPermission.java @@ -0,0 +1,80 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothGattCharacteristic; + +import com.idevicesinc.sweetblue.utils.BitwiseEnum; + +/** + * This enum enforces compile-time constraints over various public static int PERMISSION_ members + * of {@link android.bluetooth.BluetoothGattCharacteristic}. + */ +public enum BleCharacteristicPermission implements BitwiseEnum +{ + /** + * Strict typing for {@link BluetoothGattCharacteristic#PERMISSION_READ}. + */ + READ(BluetoothGattCharacteristic.PERMISSION_READ), + + /** + * Strict typing for {@link BluetoothGattCharacteristic#PERMISSION_READ_ENCRYPTED}. + */ + READ_ENCRYPTED(BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED), + + /** + * Strict typing for {@link BluetoothGattCharacteristic#PERMISSION_READ_ENCRYPTED_MITM}. + */ + READ_ENCRYPTED_MITM(BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED_MITM), + + /** + * Strict typing for {@link BluetoothGattCharacteristic#PERMISSION_WRITE}. + */ + WRITE(BluetoothGattCharacteristic.PERMISSION_WRITE), + + /** + * Strict typing for {@link BluetoothGattCharacteristic#PERMISSION_WRITE_ENCRYPTED}. + */ + WRITE_ENCRYPTED(BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED), + + /** + * Strict typing for {@link BluetoothGattCharacteristic#PERMISSION_WRITE_ENCRYPTED_MITM}. + */ + WRITE_ENCRYPTED_MITM(BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED_MITM), + + /** + * Strict typing for {@link BluetoothGattCharacteristic#PERMISSION_WRITE_SIGNED}. + */ + WRITE_SIGNED(BluetoothGattCharacteristic.PERMISSION_WRITE_SIGNED), + + /** + * Strict typing for {@link BluetoothGattCharacteristic#PERMISSION_WRITE_SIGNED_MITM}. + */ + WRITE_SIGNED_MITM(BluetoothGattCharacteristic.PERMISSION_WRITE_SIGNED_MITM); + + private final int m_bit; + + private BleCharacteristicPermission(final int bit) + { + m_bit = bit; + } + + @Override public int or(BitwiseEnum state) + { + return 0; + } + + @Override public int or(int bits) + { + return m_bit | bits; + } + + @Override public int bit() + { + return m_bit; + } + + @Override public boolean overlaps(int mask) + { + return (m_bit & mask) != 0x0; + } + +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleCharacteristicProperty.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleCharacteristicProperty.java new file mode 100644 index 0000000000000000000000000000000000000000..03cbfa65e45a00af0500de441c0ee6026a74941d --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleCharacteristicProperty.java @@ -0,0 +1,82 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothGattCharacteristic; + +import com.idevicesinc.sweetblue.utils.BitwiseEnum; + +/** + * This enum enforces compile-time constraints over various public static int PROPERTY_ members + * of {@link android.bluetooth.BluetoothGattCharacteristic}. + */ +public enum BleCharacteristicProperty implements BitwiseEnum +{ + /** + * Strict typing for {@link BluetoothGattCharacteristic#PROPERTY_BROADCAST}. + */ + BROADCAST(BluetoothGattCharacteristic.PROPERTY_BROADCAST), + + /** + * Strict typing for {@link BluetoothGattCharacteristic#PROPERTY_READ}. + */ + READ(BluetoothGattCharacteristic.PROPERTY_READ), + + /** + * Strict typing for {@link BluetoothGattCharacteristic#PROPERTY_WRITE_NO_RESPONSE}. + */ + WRITE_NO_RESPONSE(BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE), + + /** + * Strict typing for {@link BluetoothGattCharacteristic#PROPERTY_WRITE}. + */ + WRITE(BluetoothGattCharacteristic.PROPERTY_WRITE), + + /** + * Strict typing for {@link BluetoothGattCharacteristic#PROPERTY_NOTIFY}. + */ + NOTIFY(BluetoothGattCharacteristic.PROPERTY_NOTIFY), + + /** + * Strict typing for {@link BluetoothGattCharacteristic#PROPERTY_INDICATE}. + */ + INDICATE(BluetoothGattCharacteristic.PROPERTY_INDICATE), + + /** + * Strict typing for {@link BluetoothGattCharacteristic#PROPERTY_SIGNED_WRITE}. + */ + SIGNED_WRITE(BluetoothGattCharacteristic.PROPERTY_SIGNED_WRITE), + + /** + * Strict typing for {@link BluetoothGattCharacteristic#PROPERTY_EXTENDED_PROPS}. + */ + EXTENDED_PROPS(BluetoothGattCharacteristic.PROPERTY_EXTENDED_PROPS); + + + private final int m_bit; + + private BleCharacteristicProperty(final int bit) + { + m_bit = bit; + } + + + + @Override public int or(BitwiseEnum state) + { + return 0; + } + + @Override public int or(int bits) + { + return m_bit | bits; + } + + @Override public int bit() + { + return m_bit; + } + + @Override public boolean overlaps(int mask) + { + return (m_bit & mask) != 0x0; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleConnectionPriority.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleConnectionPriority.java new file mode 100644 index 0000000000000000000000000000000000000000..257acba376da60490a96e010e9d83f36aa64c17e --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleConnectionPriority.java @@ -0,0 +1,41 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothGatt; + +/** + * This enum enforces compile-time constraints over various public static int CONNECTION_PRIORITY_* members + * of {@link android.bluetooth.BluetoothGatt} and is passed to {@link BleDevice#setConnectionPriority(BleConnectionPriority, BleDevice.ReadWriteListener)} + * and returned from {@link BleDevice#getConnectionPriority()}. + */ +public enum BleConnectionPriority +{ + /** + * Strict typing for {@link BluetoothGatt#CONNECTION_PRIORITY_LOW_POWER}. + */ + LOW(BluetoothGatt.CONNECTION_PRIORITY_LOW_POWER), + + /** + * Strict typing for {@link BluetoothGatt#CONNECTION_PRIORITY_BALANCED}. + */ + MEDIUM(BluetoothGatt.CONNECTION_PRIORITY_BALANCED), + + /** + * Strict typing for {@link BluetoothGatt#CONNECTION_PRIORITY_HIGH}. + */ + HIGH(BluetoothGatt.CONNECTION_PRIORITY_HIGH); + + private final int m_nativeMode; + + private BleConnectionPriority(final int nativeMode) + { + m_nativeMode = nativeMode; + } + + /** + * Returns one of the static final int members of {@link BleConnectionPriority} whose name starts with CONNECTION_PRIORITY_. + */ + public int getNativeMode() + { + return m_nativeMode; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDescriptor.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDescriptor.java new file mode 100644 index 0000000000000000000000000000000000000000..8ef64d53c9ebe7eb4dc6f2bf2470e2e3a9ed34f6 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDescriptor.java @@ -0,0 +1,33 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothGattDescriptor; + +import com.idevicesinc.sweetblue.utils.Utils_Byte; + +import java.util.UUID; + +/** + * Proxy of {@link android.bluetooth.BluetoothGattDescriptor} to force stricter compile-time checks and order of operations + * when creating descriptors for {@link BleServer}. + * + * @see BleServices + */ +public class BleDescriptor +{ + final BluetoothGattDescriptor m_native; + + public BleDescriptor(final UUID uuid, final BleDescriptorPermission permission) + { + this(uuid, permission.bit()); + } + + public BleDescriptor(final UUID uuid, final BleDescriptorPermission ... permissions) + { + this(uuid, Utils_Byte.toBits(permissions)); + } + + private BleDescriptor(final UUID uuid, final int permissions) + { + m_native = new BluetoothGattDescriptor(uuid, permissions); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDescriptorPermission.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDescriptorPermission.java new file mode 100644 index 0000000000000000000000000000000000000000..cc19f4fbee44a6e8e7e005809011ee772b7362d0 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDescriptorPermission.java @@ -0,0 +1,78 @@ +package com.idevicesinc.sweetblue; + +import com.idevicesinc.sweetblue.utils.BitwiseEnum; +import android.bluetooth.BluetoothGattDescriptor; + +/** + * This enum enforces compile-time constraints over various public static int PERMISSION_ members + * of {@link BluetoothGattDescriptor}. + */ +public enum BleDescriptorPermission implements BitwiseEnum +{ + /** + * Strict typing for {@link BluetoothGattDescriptor#PERMISSION_READ}. + */ + READ(BluetoothGattDescriptor.PERMISSION_READ), + + /** + * Strict typing for {@link BluetoothGattDescriptor#PERMISSION_READ_ENCRYPTED}. + */ + READ_ENCRYPTED(BluetoothGattDescriptor.PERMISSION_READ_ENCRYPTED), + + /** + * Strict typing for {@link BluetoothGattDescriptor#PERMISSION_READ_ENCRYPTED_MITM}. + */ + READ_ENCRYPTED_MITM(BluetoothGattDescriptor.PERMISSION_READ_ENCRYPTED_MITM), + + /** + * Strict typing for {@link BluetoothGattDescriptor#PERMISSION_WRITE}. + */ + WRITE(BluetoothGattDescriptor.PERMISSION_WRITE), + + /** + * Strict typing for {@link BluetoothGattDescriptor#PERMISSION_WRITE_ENCRYPTED}. + */ + WRITE_ENCRYPTED(BluetoothGattDescriptor.PERMISSION_WRITE_ENCRYPTED), + + /** + * Strict typing for {@link BluetoothGattDescriptor#PERMISSION_WRITE_ENCRYPTED_MITM}. + */ + WRITE_ENCRYPTED_MITM(BluetoothGattDescriptor.PERMISSION_WRITE_ENCRYPTED_MITM), + + /** + * Strict typing for {@link BluetoothGattDescriptor#PERMISSION_WRITE_SIGNED}. + */ + WRITE_SIGNED(BluetoothGattDescriptor.PERMISSION_WRITE_SIGNED), + + /** + * Strict typing for {@link BluetoothGattDescriptor#PERMISSION_WRITE_SIGNED_MITM}. + */ + WRITE_SIGNED_MITM(BluetoothGattDescriptor.PERMISSION_WRITE_SIGNED_MITM); + + private final int m_bit; + + private BleDescriptorPermission(final int bit) + { + m_bit = bit; + } + + @Override public int or(BitwiseEnum state) + { + return 0; + } + + @Override public int or(int bits) + { + return m_bit | bits; + } + + @Override public int bit() + { + return m_bit; + } + + @Override public boolean overlaps(int mask) + { + return (m_bit & mask) != 0x0; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDevice.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDevice.java new file mode 100644 index 0000000000000000000000000000000000000000..11075f1a2bbee83fd1d903570cc1676ff15c5293 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDevice.java @@ -0,0 +1,6522 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCallback; +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattDescriptor; +import android.bluetooth.BluetoothGattService; +import android.content.BroadcastReceiver; + +import com.idevicesinc.sweetblue.BleDevice.BondListener.BondEvent; +import com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent; +import com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.Status; +import com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.Timing; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Type; +import com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter; +import com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.CharacteristicEventType; +import com.idevicesinc.sweetblue.BleNode.ConnectionFailListener.AutoConnectUsage; +import com.idevicesinc.sweetblue.PA_StateTracker.E_Intent; +import com.idevicesinc.sweetblue.P_Task_Bond.E_TransactionLockBehavior; +import com.idevicesinc.sweetblue.annotations.Advanced; +import com.idevicesinc.sweetblue.annotations.Immutable; +import com.idevicesinc.sweetblue.annotations.Nullable; +import com.idevicesinc.sweetblue.annotations.Nullable.Prevalence; +import com.idevicesinc.sweetblue.utils.BleScanInfo; +import com.idevicesinc.sweetblue.utils.Distance; +import com.idevicesinc.sweetblue.utils.EmptyIterator; +import com.idevicesinc.sweetblue.utils.EpochTime; +import com.idevicesinc.sweetblue.utils.EpochTimeRange; +import com.idevicesinc.sweetblue.utils.Event; +import com.idevicesinc.sweetblue.utils.ForEach_Breakable; +import com.idevicesinc.sweetblue.utils.ForEach_Returning; +import com.idevicesinc.sweetblue.utils.ForEach_Void; +import com.idevicesinc.sweetblue.utils.FutureData; +import com.idevicesinc.sweetblue.utils.GenericListener_Void; +import com.idevicesinc.sweetblue.utils.HistoricalData; +import com.idevicesinc.sweetblue.utils.HistoricalDataCursor; +import com.idevicesinc.sweetblue.utils.Interval; +import com.idevicesinc.sweetblue.utils.Percent; +import com.idevicesinc.sweetblue.utils.PresentData; +import com.idevicesinc.sweetblue.utils.State; +import com.idevicesinc.sweetblue.utils.State.ChangeIntent; +import com.idevicesinc.sweetblue.utils.TimeEstimator; +import com.idevicesinc.sweetblue.utils.UsesCustomNull; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Utils_Byte; +import com.idevicesinc.sweetblue.utils.Utils_Rssi; +import com.idevicesinc.sweetblue.utils.Utils_ScanRecord; +import com.idevicesinc.sweetblue.utils.Utils_State; +import com.idevicesinc.sweetblue.utils.Utils_String; +import com.idevicesinc.sweetblue.utils.Uuids; + +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import static com.idevicesinc.sweetblue.BleDeviceState.ADVERTISING; +import static com.idevicesinc.sweetblue.BleDeviceState.AUTHENTICATED; +import static com.idevicesinc.sweetblue.BleDeviceState.AUTHENTICATING; +import static com.idevicesinc.sweetblue.BleDeviceState.BONDED; +import static com.idevicesinc.sweetblue.BleDeviceState.BONDING; +import static com.idevicesinc.sweetblue.BleDeviceState.CONNECTED; +import static com.idevicesinc.sweetblue.BleDeviceState.CONNECTING; +import static com.idevicesinc.sweetblue.BleDeviceState.CONNECTING_OVERALL; +import static com.idevicesinc.sweetblue.BleDeviceState.DISCONNECTED; +import static com.idevicesinc.sweetblue.BleDeviceState.DISCOVERED; +import static com.idevicesinc.sweetblue.BleDeviceState.DISCOVERING_SERVICES; +import static com.idevicesinc.sweetblue.BleDeviceState.INITIALIZED; +import static com.idevicesinc.sweetblue.BleDeviceState.INITIALIZING; +import static com.idevicesinc.sweetblue.BleDeviceState.PERFORMING_OTA; +import static com.idevicesinc.sweetblue.BleDeviceState.RECONNECTING_LONG_TERM; +import static com.idevicesinc.sweetblue.BleDeviceState.RECONNECTING_SHORT_TERM; +import static com.idevicesinc.sweetblue.BleDeviceState.SERVICES_DISCOVERED; +import static com.idevicesinc.sweetblue.BleDeviceState.UNBONDED; +import static com.idevicesinc.sweetblue.BleDeviceState.UNDISCOVERED; + +/** + * This is the one other class you will use the most besides {@link BleManager}. + * It acts as a BLE-specific abstraction for the {@link BluetoothDevice} and + * {@link BluetoothGatt} classes. It does everything you would expect, like + * providing methods for connecting, reading/writing characteristics, enabling + * notifications, etc. + * <br><br> + * Although instances of this class can be created explicitly through + * {@link BleManager#newDevice(String, String)}, usually they're created + * implicitly by {@link BleManager} as a result of a scanning operation (e.g. + * {@link BleManager#startScan()}) and sent to you through + * {@link BleManager.DiscoveryListener#onEvent(BleManager.DiscoveryListener.DiscoveryEvent)}. + */ +public class BleDevice extends BleNode +{ + /** + * Special value that is used in place of Java's built-in <code>null</code>. + */ + @Immutable + public static final BleDevice NULL = new BleDevice(null, null, NULL_STRING(), NULL_STRING(), BleDeviceOrigin.EXPLICIT, null, /*isNull=*/true); + + /** + * Builder class for sending a write over BLE. Use this class to set the service and/or characteristic + * UUIDs, and the data you'd like to write. This class provides convenience methods for sending + * booleans, ints, shorts, longs, and Strings. Use with {@link #write(WriteBuilder)}, + * or {@link #write(WriteBuilder, ReadWriteListener)}. + */ + public static class WriteBuilder + { + + private UUID serviceUUID = null; + private UUID charUUID = null; + private FutureData data = null; + private boolean bigEndian = true; + + + /** + * Basic constructor. You must at the very least call {@link #setCharacteristicUUID(UUID)}, and one of the + * methods that add data ({@link #setBytes(byte[])}, {@link #setInt(int)}, etc..) before attempting to + * send the write. + */ + public WriteBuilder() { + this(/*bigEndian*/true, null, null); + } + + /** + * Overload of {@link com.idevicesinc.sweetblue.BleDevice.WriteBuilder#BleDevice.WriteBuilder(boolean, UUID, UUID)}. If @param isBigEndian is true, + * @param isBigEndian - if <code>true</code>, then when using {@link #setInt(int)}, {@link #setShort(short)}, + * or {@link #setLong(long)}, SweetBlue will reverse the bytes for you. + */ + public WriteBuilder(boolean isBigEndian) { + this(isBigEndian, null, null); + } + + /** + * Overload of {@link com.idevicesinc.sweetblue.BleDevice.WriteBuilder#BleDevice.WriteBuilder(boolean, UUID, UUID)}. If @param isBigEndian is true, + * @param isBigEndian - if <code>true</code>, then when using {@link #setInt(int)}, {@link #setShort(short)}, + * or {@link #setLong(long)}, SweetBlue will reverse the bytes for you. + */ + public WriteBuilder(boolean isBigEndian, UUID characteristicUUID) { + this(isBigEndian, null, characteristicUUID); + } + + /** + * Overload of {@link com.idevicesinc.sweetblue.BleDevice.WriteBuilder#BleDevice.WriteBuilder(boolean, UUID, UUID)}. + */ + public WriteBuilder(UUID characteristicUUID) { + this(/*bigendian*/true, null, characteristicUUID); + } + + /** + * Overload of {@link com.idevicesinc.sweetblue.BleDevice.WriteBuilder#BleDevice.WriteBuilder(boolean, UUID, UUID)}. + */ + public WriteBuilder(UUID serviceUUID, UUID characteristicUUID) { + this(/*bigendian*/true, serviceUUID, characteristicUUID); + } + + /** + * Main constructor to use. All other constructors overload this one. + * @param isBigEndian - if <code>true</code>, then when using {@link #setInt(int)}, {@link #setShort(short)}, + * or {@link #setLong(long)}, SweetBlue will reverse the bytes for you. + */ + public WriteBuilder(boolean isBigEndian, UUID serviceUUID, UUID characteristicUUID) { + bigEndian = isBigEndian; + this.serviceUUID = serviceUUID; + charUUID = characteristicUUID; + } + + + /** + * Set the service UUID for this write. This is only needed when you have characteristics with identical uuids under different services. + */ + public WriteBuilder setServiceUUID(UUID uuid) { + serviceUUID = uuid; + return this; + } + + /** + * Set the characteristic UUID to write to. + */ + public WriteBuilder setCharacteristicUUID(UUID uuid) { + charUUID = uuid; + return this; + } + + /** + * Set the raw bytes to write. + */ + public WriteBuilder setBytes(byte[] data) { + this.data = new PresentData(data); + return this; + } + + /** + * Set the boolean to write. + */ + public WriteBuilder setBoolean(boolean value) { + data = new PresentData(value ? new byte[] { 0x1 } : new byte[] { 0x0 }); + return this; + } + + /** + * Set an int to be written. + */ + public WriteBuilder setInt(int val) { + final byte[] d = Utils_Byte.intToBytes(val); + if (bigEndian) { + Utils_Byte.reverseBytes(d); + } + data = new PresentData(d); + return this; + } + + /** + * Set a short to be written. + */ + public WriteBuilder setShort(short val) { + final byte[] d = Utils_Byte.shortToBytes(val); + if (bigEndian) { + Utils_Byte.reverseBytes(d); + } + data = new PresentData(d); + return this; + } + + /** + * Set a long to be written. + */ + public WriteBuilder setLong(long val) { + final byte[] d = Utils_Byte.longToBytes(val); + if (bigEndian) { + Utils_Byte.reverseBytes(d); + } + data = new PresentData(d); + return this; + } + + /** + * Set a string to be written. This method also allows you to specify the string encoding. If the encoding + * fails, then {@link String#getBytes()} is used instead, which uses "UTF-8" by default. + */ + public WriteBuilder setString(String value, String stringEncoding) { + byte[] bytes; + try { + bytes = value.getBytes(stringEncoding); + } catch (UnsupportedEncodingException e) { + bytes = value.getBytes(); + } + data = new PresentData(bytes); + return this; + } + + /** + * Set a string to be written. This defaults to "UTF-8" encoding. + */ + public WriteBuilder setString(String value) { + return setString(value, "UTF-8"); + } + + } + + /** + * Provide an implementation of this callback to various methods like {@link BleDevice#read(UUID, ReadWriteListener)}, + * {@link BleDevice#write(UUID, byte[], ReadWriteListener)}, {@link BleDevice#startPoll(UUID, Interval, ReadWriteListener)}, + * {@link BleDevice#enableNotify(UUID, ReadWriteListener)}, {@link BleDevice#readRssi(ReadWriteListener)}, etc. + */ + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface ReadWriteListener extends com.idevicesinc.sweetblue.utils.GenericListener_Void<ReadWriteListener.ReadWriteEvent> + { + /** + * A value returned to {@link ReadWriteListener#onEvent(Event)} + * by way of {@link ReadWriteEvent#status} that indicates success of the + * operation or the reason for its failure. This enum is <i>not</i> + * meant to match up with {@link BluetoothGatt}.GATT_* values in any way. + * + * @see ReadWriteEvent#status() + */ + public static enum Status implements UsesCustomNull + { + /** + * As of now, only used for {@link ConnectionFailListener.ConnectionFailEvent#txnFailReason()} in some cases. + */ + NULL, + + /** + * If {@link ReadWriteEvent#type} {@link Type#isRead()} then {@link ReadWriteEvent#data} will contain some data returned from + * the device. If type is {@link Type#WRITE} then {@link ReadWriteEvent#data} was sent to the device. + */ + SUCCESS, + + /** + * {@link BleDevice#read(UUID, ReadWriteListener)}, {@link BleDevice#write(UUID, byte[])}, + * {@link BleDevice#enableNotify(UUID, ReadWriteListener)}, etc. was called on {@link BleDevice#NULL}. + */ + NULL_DEVICE, + + /** + * Device is not {@link BleDeviceState#CONNECTED}. + */ + NOT_CONNECTED, + + /** + * Couldn't find a matching {@link ReadWriteEvent#target} for the {@link ReadWriteEvent#charUuid} (or + * {@link ReadWriteEvent#descUuid} if {@link ReadWriteEvent#target} is {@link Target#DESCRIPTOR}) which was given to + * {@link BleDevice#read(UUID, ReadWriteListener)}, {@link BleDevice#write(UUID, byte[])}, etc. This most likely + * means that the internal call to {@link BluetoothGatt#discoverServices()} didn't find any + * {@link BluetoothGattService} that contained a {@link BluetoothGattCharacteristic} for {@link ReadWriteEvent#charUuid()}. + * This can also happen if the internal call to get a BluetoothService(s) causes an exception (seen on some phones). + */ + NO_MATCHING_TARGET, + + /** + * Specific to {@link Target#RELIABLE_WRITE}, this means the underlying call to {@link BluetoothGatt#beginReliableWrite()} + * returned <code>false</code>. + */ + RELIABLE_WRITE_FAILED_TO_BEGIN, + + /** + * Specific to {@link Target#RELIABLE_WRITE}, this means {@link BleDevice#reliableWrite_begin(ReadWriteListener)} was + * called twice without an intervening call to either {@link BleDevice#reliableWrite_abort()} or {@link BleDevice#reliableWrite_execute()}. + */ + RELIABLE_WRITE_ALREADY_BEGAN, + + /** + * Specific to {@link Target#RELIABLE_WRITE}, this means {@link BleDevice#reliableWrite_abort()} or {@link BleDevice#reliableWrite_execute()} + * was called without a previous call to {@link BleDevice#reliableWrite_begin(ReadWriteListener)}. + */ + RELIABLE_WRITE_NEVER_BEGAN, + + /** + * Specific to {@link Target#RELIABLE_WRITE}, this means {@link BleDevice#reliableWrite_abort()} was called. + */ + RELIABLE_WRITE_ABORTED, + + /** + * You tried to do a read on a characteristic that is write-only, or + * vice-versa, or tried to read a notify-only characteristic, or etc., etc. + */ + OPERATION_NOT_SUPPORTED, + + /** + * The android api level doesn't support the lower level API call in the native stack. For example if you try to use + * {@link BleDevice#setMtu(int, ReadWriteListener)}, which requires API level 21, and you are at level 18. + */ + ANDROID_VERSION_NOT_SUPPORTED, + + /** + * {@link BluetoothGatt#setCharacteristicNotification(BluetoothGattCharacteristic, boolean)} + * returned <code>false</code> for an unknown reason. This {@link Status} is only relevant for calls to + * {@link BleDevice#enableNotify(UUID, ReadWriteListener)} and {@link BleDevice#disableNotify(UUID, ReadWriteListener)} + * (or the various overloads). + */ + FAILED_TO_TOGGLE_NOTIFICATION, + + /** + * {@link BluetoothGattCharacteristic#setValue(byte[])} (or one of its overloads) or + * {@link BluetoothGattDescriptor#setValue(byte[])} (or one of its overloads) returned <code>false</code>. + */ + FAILED_TO_SET_VALUE_ON_TARGET, + + /** + * The call to {@link BluetoothGatt#readCharacteristic(BluetoothGattCharacteristic)} + * or {@link BluetoothGatt#writeCharacteristic(BluetoothGattCharacteristic)} + * or etc. returned <code>false</code> and thus failed immediately + * for unknown reasons. No good remedy for this...perhaps try {@link BleManager#reset()}. + */ + FAILED_TO_SEND_OUT, + + /** + * The operation was cancelled by the device becoming {@link BleDeviceState#DISCONNECTED}. + */ + CANCELLED_FROM_DISCONNECT, + + /** + * The operation was cancelled because {@link BleManager} went {@link BleManagerState#TURNING_OFF} and/or + * {@link BleManagerState#OFF}. Note that if the user turns off BLE from their OS settings (airplane mode, etc.) then + * {@link ReadWriteEvent#status} could potentially be {@link #CANCELLED_FROM_DISCONNECT} because SweetBlue might get + * the disconnect callback before the turning off callback. Basic testing has revealed that this is *not* the case, but you never know. + * <br><br> + * Either way, the device was or will be disconnected. + */ + CANCELLED_FROM_BLE_TURNING_OFF, + + /** + * Used either when {@link ReadWriteEvent#type()} {@link Type#isRead()} and the stack returned a <code>null</code> + * value for {@link BluetoothGattCharacteristic#getValue()} despite the operation being otherwise "successful", <i>or</i> + * {@link BleDevice#write(UUID, byte[])} (or overload(s) ) were called with a null data parameter. For the read case, the library + * will throw an {@link BleManager.UhOhListener.UhOh#READ_RETURNED_NULL}, but hopefully it was just a temporary glitch. If the problem persists try {@link BleManager#reset()}. + */ + NULL_DATA, + + /** + * Used either when {@link ReadWriteEvent#type} {@link Type#isRead()} and the operation was "successful" but + * returned a zero-length array for {@link ReadWriteEvent#data}, <i>or</i> {@link BleDevice#write(UUID, byte[])} (or overload(s) ) + * was called with a non-null but zero-length data parameter. Note that {@link ReadWriteEvent#data} will be a zero-length array for + * all other error statuses as well, for example {@link #NO_MATCHING_TARGET}, {@link #NOT_CONNECTED}, etc. In other words it's never null. + */ + EMPTY_DATA, + + /** + * For now only used when giving a negative or zero value to {@link BleDevice#setMtu(int, ReadWriteListener)}. + */ + INVALID_DATA, + + /** + * The operation failed in a "normal" fashion, at least relative to all the other strange ways an operation can fail. This means for + * example that {@link BluetoothGattCallback#onCharacteristicRead(BluetoothGatt, BluetoothGattCharacteristic, int)} + * returned a status code that was not zero. This could mean the device went out of range, was turned off, signal was disrupted, + * whatever. Often this means that the device is about to become {@link BleDeviceState#DISCONNECTED}. {@link ReadWriteEvent#gattStatus()} + * will most likely be non-zero, and you can check against the static fields in {@link BleStatuses} for more information. + * + * @see ReadWriteEvent#gattStatus() + */ + REMOTE_GATT_FAILURE, + + /** + * Operation took longer than time specified in {@link BleNodeConfig#taskTimeoutRequestFilter} so we cut it loose. + */ + TIMED_OUT; + + /** + * Returns <code>true</code> for {@link #CANCELLED_FROM_DISCONNECT} or {@link #CANCELLED_FROM_BLE_TURNING_OFF}. + */ + public boolean wasCancelled() + { + return this == CANCELLED_FROM_DISCONNECT || this == Status.CANCELLED_FROM_BLE_TURNING_OFF; + } + + @Override public boolean isNull() + { + return this == NULL; + } + } + + /** + * The type of operation for a {@link ReadWriteEvent} - read, write, poll, etc. + */ + public static enum Type implements UsesCustomNull + { + /** + * As of now, only used for {@link ConnectionFailListener.ConnectionFailEvent#txnFailReason()} in some cases. + */ + NULL, + + /** + * Associated with {@link BleDevice#read(UUID, ReadWriteListener)} or {@link BleDevice#readRssi(ReadWriteListener)}. + */ + READ, + + /** + * Associated with {@link BleDevice#write(UUID, byte[])} or {@link BleDevice#write(UUID, byte[], ReadWriteListener)} + * or {@link BleDevice#setMtu(int)} or {@link BleDevice#setName(String, UUID, ReadWriteListener)}. + * + * @see #isWrite() + */ + WRITE, + + /** + * Similar to {@link #WRITE} but under the hood {@link BluetoothGattCharacteristic#WRITE_TYPE_NO_RESPONSE} is used. + * See also {@link BluetoothGattCharacteristic#PROPERTY_WRITE_NO_RESPONSE}. + * + * @see #isWrite() + */ + WRITE_NO_RESPONSE, + + /** + * Similar to {@link #WRITE} but under the hood {@link BluetoothGattCharacteristic#WRITE_TYPE_SIGNED} is used. + * See also {@link BluetoothGattCharacteristic#PROPERTY_SIGNED_WRITE}. + * + * @see #isWrite() + */ + WRITE_SIGNED, + + /** + * Associated with {@link BleDevice#startPoll(UUID, Interval, ReadWriteListener)} or {@link BleDevice#startRssiPoll(Interval, ReadWriteListener)}. + */ + POLL, + + /** + * Associated with {@link BleDevice#enableNotify(UUID, ReadWriteListener)} when we actually get a notification. + */ + NOTIFICATION, + + /** + * Similar to {@link #NOTIFICATION}, kicked off from {@link BleDevice#enableNotify(UUID, ReadWriteListener)}, but + * under the hood this is treated slightly differently. + */ + INDICATION, + + /** + * Associated with {@link BleDevice#startChangeTrackingPoll(UUID, Interval, ReadWriteListener)} + * or {@link BleDevice#enableNotify(UUID, Interval, ReadWriteListener)} where a force-read timeout is invoked. + */ + PSUEDO_NOTIFICATION, + + /** + * Associated with {@link BleDevice#enableNotify(UUID, ReadWriteListener)} and called when enabling the notification completes by writing to the + * Descriptor of the given {@link UUID}. {@link BleDevice.ReadWriteListener.Status#SUCCESS} doesn't <i>necessarily</i> mean that notifications will + * definitely now work (there may be other issues in the underlying stack), but it's a reasonable guarantee. + */ + ENABLING_NOTIFICATION, + + /** + * Opposite of {@link #ENABLING_NOTIFICATION}. + */ + DISABLING_NOTIFICATION; + + /** + * Returns <code>true</code> for every {@link Type} except {@link #isWrite()}, {@link #ENABLING_NOTIFICATION}, and + * {@link #DISABLING_NOTIFICATION}. Overall this convenience method is meant to tell you when we've <i>received</i> something from + * the device as opposed to writing something to it. + */ + public boolean isRead() + { + return !isWrite() && this != ENABLING_NOTIFICATION && this != DISABLING_NOTIFICATION; + } + + /** + * Returns <code>true</code> if <code>this</code> is {@link #WRITE} or {@link #WRITE_NO_RESPONSE} or {@link #WRITE_SIGNED}. + */ + public boolean isWrite() + { + return this == WRITE || this == WRITE_NO_RESPONSE || this == WRITE_SIGNED; + } + + /** + * Returns true if <code>this</code> is {@link #NOTIFICATION}, {@link #PSUEDO_NOTIFICATION}, or {@link #INDICATION}. + */ + public boolean isNotification() + { + return this.isNativeNotification() || this == PSUEDO_NOTIFICATION; + } + + /** + * Subset of {@link #isNotification()}, returns <code>true</code> only for {@link #NOTIFICATION} and {@link #INDICATION}, i.e. only + * notifications who origin is an *actual* notification (or indication) sent from the remote BLE device. + */ + public boolean isNativeNotification() + { + return this == NOTIFICATION || this == INDICATION; + } + + /** + * Returns the {@link BleNodeConfig.HistoricalDataLogFilter.Source} equivalent + * for this {@link BleDevice.ReadWriteListener.Type}, or {@link BleNodeConfig.HistoricalDataLogFilter.Source#NULL}. + */ + public BleNodeConfig.HistoricalDataLogFilter.Source toHistoricalDataSource() + { + switch(this) + { + case READ: return BleNodeConfig.HistoricalDataLogFilter.Source.READ; + case POLL: return BleNodeConfig.HistoricalDataLogFilter.Source.POLL; + case NOTIFICATION: return BleNodeConfig.HistoricalDataLogFilter.Source.NOTIFICATION; + case INDICATION: return BleNodeConfig.HistoricalDataLogFilter.Source.INDICATION; + case PSUEDO_NOTIFICATION: return BleNodeConfig.HistoricalDataLogFilter.Source.PSUEDO_NOTIFICATION; + } + + return BleNodeConfig.HistoricalDataLogFilter.Source.NULL; + } + + @Override public boolean isNull() + { + return this == NULL; + } + } + + /** + * The type of GATT "object", provided by {@link ReadWriteEvent#target()}. + */ + public static enum Target implements UsesCustomNull + { + /** + * As of now, only used for {@link ConnectionFailListener.ConnectionFailEvent#txnFailReason()} in some cases. + */ + NULL, + + /** + * The {@link ReadWriteEvent} returned has to do with a {@link BluetoothGattCharacteristic} under the hood. + */ + CHARACTERISTIC, + + /** + * The {@link ReadWriteEvent} returned has to do with a {@link BluetoothGattDescriptor} under the hood. + */ + DESCRIPTOR, + + /** + * The {@link ReadWriteEvent} is coming in from using {@link BleDevice#readRssi(ReadWriteListener)} or + * {@link BleDevice#startRssiPoll(Interval, ReadWriteListener)}. + */ + RSSI, + + /** + * The {@link ReadWriteEvent} is coming in from using {@link BleDevice#setMtu(int, ReadWriteListener)} or overloads. + */ + MTU, + + /** + * The {@link ReadWriteEvent} is coming in from using <code>reliableWrite_*()</code> overloads such as {@link BleDevice#reliableWrite_begin(ReadWriteListener)}, + * {@link BleDevice#reliableWrite_execute()}, etc. + */ + RELIABLE_WRITE, + + /** + * The {@link ReadWriteEvent} is coming in from using {@link BleDevice#setConnectionPriority(BleConnectionPriority, ReadWriteListener)} or overloads. + */ + CONNECTION_PRIORITY; + + @Override public boolean isNull() + { + return this == NULL; + } + } + + /** + * Provides a bunch of information about a completed read, write, or notification. + */ + @com.idevicesinc.sweetblue.annotations.Immutable + public static class ReadWriteEvent extends com.idevicesinc.sweetblue.utils.Event implements com.idevicesinc.sweetblue.utils.UsesCustomNull + { + /** + * Value used in place of <code>null</code>, either indicating that {@link #descUuid} isn't used for the {@link ReadWriteEvent} + * because {@link #target} is {@link Target#CHARACTERISTIC}, or that both {@link #descUuid} and {@link #charUuid} aren't applicable + * because {@link #target} is {@link Target#RSSI}. + */ + public static final UUID NON_APPLICABLE_UUID = Uuids.INVALID; + + /** + * The {@link BleDevice} this {@link ReadWriteEvent} is for. + */ + public BleDevice device() { return m_device; } + private final BleDevice m_device; + + /** + * Convience to return the mac address of {@link #device()}. + */ + public String macAddress() { return m_device.getMacAddress(); } + + /** + * The type of operation, read, write, etc. + */ + public Type type() { return m_type; } + private final Type m_type; + + /** + * The type of GATT object this {@link ReadWriteEvent} is for, currently characteristic, descriptor, or rssi. + */ + public Target target() { return m_target; } + private final Target m_target; + + /** + * The {@link UUID} of the service associated with this {@link ReadWriteEvent}. This will always be a non-null {@link UUID}, + * even if {@link #target} is {@link Target#DESCRIPTOR}. If {@link #target} is {@link Target#RSSI} then this will be referentially equal + * (i.e. you can use == to compare) to {@link #NON_APPLICABLE_UUID}. + */ + public UUID serviceUuid() { return m_serviceUuid; } + private final UUID m_serviceUuid; + + /** + * The {@link UUID} of the characteristic associated with this {@link ReadWriteEvent}. This will always be a non-null {@link UUID}, + * even if {@link #target} is {@link Target#DESCRIPTOR}. If {@link #target} is {@link Target#RSSI} then this will be referentially equal + * (i.e. you can use == to compare) to {@link #NON_APPLICABLE_UUID}. + */ + public UUID charUuid() { return m_charUuid; } + private final UUID m_charUuid; + + /** + * The {@link UUID} of the descriptor associated with this {@link ReadWriteEvent}. If {@link #target} is + * {@link Target#CHARACTERISTIC} or {@link Target#RSSI} then this will be referentially equal + * (i.e. you can use == to compare) to {@link #NON_APPLICABLE_UUID}. + */ + public UUID descUuid() { return m_descUuid; } + private final UUID m_descUuid; + + /** + * The data sent to the peripheral if {@link ReadWriteEvent#type} {@link Type#isWrite()}, otherwise the data received from the + * peripheral if {@link ReadWriteEvent#type} {@link Type#isRead()}. This will never be <code>null</code>. For error cases it will be a + * zero-length array. + */ + public @Nullable(Nullable.Prevalence.NEVER) byte[] data() { return m_data; } + private final byte[] m_data; + + /** + * This value gets updated as a result of a {@link BleDevice#readRssi(ReadWriteListener)} call. It will + * always be equivalent to {@link BleDevice#getRssi()} but is included here for convenience. + * + * @see BleDevice#getRssi() + * @see BleDevice#getRssiPercent() + * @see BleDevice#getDistance() + */ + public int rssi() { return m_rssi; } + private final int m_rssi; + + /** + * This value gets set as a result of a {@link BleDevice#setMtu(int, ReadWriteListener)} call. The value returned + * will be the same as that given to {@link BleDevice#setMtu(int, ReadWriteListener)}, which means it will be the + * same as {@link BleDevice#getMtu()} if {@link #status()} equals {@link ReadWriteListener.Status#SUCCESS}. + * + * @see BleDevice#getMtu() + */ + public int mtu() { return m_mtu; } + private final int m_mtu; + + /** + * Indicates either success or the type of failure. Some values of {@link Status} are not used for certain values of {@link Type}. + * For example a {@link Type#NOTIFICATION} cannot fail with {@link BleDevice.ReadWriteListener.Status#TIMED_OUT}. + */ + public Status status() { return m_status; } + private final Status m_status; + + /** + * Time spent "over the air" - so in the native stack, processing in + * the peripheral's embedded software, what have you. This will + * always be slightly less than {@link #time_total()}. + */ + public Interval time_ota() { return m_transitTime; } + private final Interval m_transitTime; + + /** + * Total time it took for the operation to complete, whether success + * or failure. This mainly includes time spent in the internal job + * queue plus {@link ReadWriteEvent#time_ota()}. This will always be + * longer than {@link #time_ota()}, though usually only slightly so. + */ + public Interval time_total() { return m_totalTime; } + private final Interval m_totalTime; + + /** + * The native gatt status returned from the stack, if applicable. If the {@link #status} returned is, for example, + * {@link ReadWriteListener.Status#NO_MATCHING_TARGET}, then the operation didn't even reach the point where a gatt status is + * provided, in which case this member is set to {@link BleStatuses#GATT_STATUS_NOT_APPLICABLE} (value of + * {@value com.idevicesinc.sweetblue.BleStatuses#GATT_STATUS_NOT_APPLICABLE}). Otherwise it will be <code>0</code> for success or greater than + * <code>0</code> when there's an issue. <i>Generally</i> this value will only be meaningful when {@link #status} is + * {@link ReadWriteListener.Status#SUCCESS} or {@link ReadWriteListener.Status#REMOTE_GATT_FAILURE}. There are + * also some cases where this will be 0 for success but {@link #status} is for example + * {@link ReadWriteListener.Status#NULL_DATA} - in other words the underlying stack deemed the operation a success but SweetBlue + * disagreed. For this reason it's recommended to treat this value as a debugging tool and use {@link #status} for actual + * application logic if possible. + * <br><br> + * See {@link BluetoothGatt} for its static <code>GATT_*</code> status code members. Also see the source code of + * {@link BleStatuses} for SweetBlue's more comprehensive internal reference list of gatt status values. This list may not be + * totally accurate or up-to-date, nor may it match GATT_ values used by the bluetooth stack on your phone. + */ + public int gattStatus() { return m_gattStatus; } + private final int m_gattStatus; + + /** + * This returns <code>true</code> if this event was the result of an explicit call through SweetBlue, e.g. through + * {@link BleDevice#read(UUID)}, {@link BleDevice#write(UUID, byte[])}, etc. It will return <code>false</code> otherwise, + * which can happen if for example you use {@link BleDevice#getNativeGatt()} to bypass SweetBlue for whatever reason. + * Another theoretical case is if you make an explicit call through SweetBlue, then you get {@link com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status#TIMED_OUT}, + * but then the native stack eventually *does* come back with something - this has never been observed, but it is possible. + */ + public boolean solicited() { return m_solicited; } + private final boolean m_solicited; + + /** + * This value gets set as a result of a {@link BleDevice#setConnectionPriority(BleConnectionPriority, ReadWriteListener)} call. The value returned + * will be the same as that given to {@link BleDevice#setConnectionPriority(BleConnectionPriority, ReadWriteListener)}, which means it will be the + * same as {@link BleDevice#getConnectionPriority()} if {@link #status()} equals {@link ReadWriteListener.Status#SUCCESS}. + * + * @see BleDevice#getConnectionPriority() + */ + public BleConnectionPriority connectionPriority() { return m_connectionPriority; } + private final BleConnectionPriority m_connectionPriority; + + ReadWriteEvent(BleDevice device, UUID serviceUuid, UUID charUuid, UUID descUuid, Type type, Target target, byte[] data, Status status, int gattStatus, double totalTime, double transitTime, boolean solicited) + { + this.m_device = device; + this.m_serviceUuid = serviceUuid != null ? serviceUuid : NON_APPLICABLE_UUID; + this.m_charUuid = charUuid != null ? charUuid : NON_APPLICABLE_UUID; + this.m_descUuid = descUuid != null ? descUuid : NON_APPLICABLE_UUID; + this.m_type = type; + this.m_target = target; + this.m_status = status; + this.m_gattStatus = gattStatus; + this.m_totalTime = Interval.secs(totalTime); + this.m_transitTime = Interval.secs(transitTime); + this.m_data = data != null ? data : EMPTY_BYTE_ARRAY; + this.m_rssi = device.getRssi(); + this.m_mtu = device.getMtu(); + this.m_solicited = solicited; + this.m_connectionPriority = device.getConnectionPriority(); + } + + ReadWriteEvent(BleDevice device, Type type, int rssi, Status status, int gattStatus, double totalTime, double transitTime, boolean solicited) + { + this.m_device = device; + this.m_charUuid = NON_APPLICABLE_UUID; + this.m_descUuid = NON_APPLICABLE_UUID; + this.m_serviceUuid = NON_APPLICABLE_UUID; + this.m_type = type; + this.m_target = Target.RSSI; + this.m_status = status; + this.m_gattStatus = gattStatus; + this.m_totalTime = Interval.secs(totalTime); + this.m_transitTime = Interval.secs(transitTime); + this.m_data = EMPTY_BYTE_ARRAY; + this.m_rssi = status == Status.SUCCESS ? rssi : device.getRssi(); + this.m_mtu = device.getMtu(); + this.m_solicited = solicited; + this.m_connectionPriority = device.getConnectionPriority(); + } + + ReadWriteEvent(BleDevice device, int mtu, Status status, int gattStatus, double totalTime, double transitTime, boolean solicited) + { + this.m_device = device; + this.m_charUuid = NON_APPLICABLE_UUID; + this.m_descUuid = NON_APPLICABLE_UUID; + this.m_serviceUuid = NON_APPLICABLE_UUID; + this.m_type = Type.WRITE; + this.m_target = Target.MTU; + this.m_status = status; + this.m_gattStatus = gattStatus; + this.m_totalTime = Interval.secs(totalTime); + this.m_transitTime = Interval.secs(transitTime); + this.m_data = EMPTY_BYTE_ARRAY; + this.m_rssi = device.getRssi(); + this.m_mtu = status == Status.SUCCESS ? mtu : device.getMtu(); + this.m_solicited = solicited; + this.m_connectionPriority = device.getConnectionPriority(); + } + + ReadWriteEvent(BleDevice device, BleConnectionPriority connectionPriority, Status status, int gattStatus, double totalTime, double transitTime, boolean solicited) + { + this.m_device = device; + this.m_charUuid = NON_APPLICABLE_UUID; + this.m_descUuid = NON_APPLICABLE_UUID; + this.m_serviceUuid = NON_APPLICABLE_UUID; + this.m_type = Type.WRITE; + this.m_target = Target.CONNECTION_PRIORITY; + this.m_status = status; + this.m_gattStatus = gattStatus; + this.m_totalTime = Interval.secs(totalTime); + this.m_transitTime = Interval.secs(transitTime); + this.m_data = EMPTY_BYTE_ARRAY; + this.m_rssi = device.getRssi(); + this.m_mtu = device.getMtu(); + this.m_solicited = solicited; + this.m_connectionPriority = connectionPriority; + } + + static ReadWriteEvent NULL(BleDevice device) + { + return new ReadWriteEvent(device, NON_APPLICABLE_UUID, NON_APPLICABLE_UUID, NON_APPLICABLE_UUID, Type.NULL, Target.NULL, EMPTY_BYTE_ARRAY, Status.NULL, BleStatuses.GATT_STATUS_NOT_APPLICABLE, Interval.ZERO.secs(), Interval.ZERO.secs(), /*solicited=*/true); + } + + /** + * Forwards {@link BleDevice#getNativeService(UUID)}, which will be nonnull + * if {@link #target()} is {@link Target#CHARACTERISTIC} or {@link Target#DESCRIPTOR}. + */ + public @Nullable(Prevalence.NORMAL) BluetoothGattService service() + { + return device().getNativeService(serviceUuid()); + } + + /** + * Forwards {@link BleDevice#getNativeCharacteristic(UUID, UUID)}, which will be nonnull + * if {@link #target()} is {@link Target#CHARACTERISTIC} or {@link Target#DESCRIPTOR}. + */ + public @Nullable(Prevalence.NORMAL) BluetoothGattCharacteristic characteristic() + { + return device().getNativeCharacteristic(serviceUuid(), charUuid()); + } + + /** + * Forwards {@link BleDevice#getNativeDescriptor_inChar(UUID, UUID)}, which will be nonnull + * if {@link #target()} is {@link Target#DESCRIPTOR}. + */ + public @Nullable(Prevalence.NORMAL) BluetoothGattDescriptor descriptor() + { + return device().getNativeDescriptor_inChar(charUuid(), descUuid()); + } + + /** + * Convenience method for checking if {@link ReadWriteEvent#status} equals {@link BleDevice.ReadWriteListener.Status#SUCCESS}. + */ + public boolean wasSuccess() + { + return status() == Status.SUCCESS; + } + + /** + * Forwards {@link Status#wasCancelled()}. + */ + public boolean wasCancelled() + { + return status().wasCancelled(); + } + + /** + * Forwards {@link Type#isNotification()}. + */ + public boolean isNotification() + { + return type().isNotification(); + } + + /** + * Forwards {@link Type#isRead()}. + */ + public boolean isRead() + { + return type().isRead(); + } + + /** + * Forwards {@link Type#isWrite()}. + */ + public boolean isWrite() + { + return type().isWrite(); + } + + /** + * Returns the first byte from {@link #data()}, or 0x0 if not available. + */ + public byte data_byte() + { + return data().length > 0 ? data()[0] : 0x0; + } + + /** + * Convenience method that attempts to parse the data as a UTF-8 string. + */ + public @Nullable(Prevalence.NEVER) String data_utf8() + { + return data_string("UTF-8"); + } + + /** + * Best effort parsing of {@link #data()} as a {@link String}. For now simply forwards {@link #data_utf8()}. + * In the future may try to autodetect encoding first. + */ + public @Nullable(Prevalence.NEVER) String data_string() + { + return data_utf8(); + } + + /** + * Convenience method that attempts to parse {@link #data()} as a {@link String} with the given charset, for example <code>"UTF-8"</code>. + */ + public @Nullable(Prevalence.NEVER) String data_string(final String charset) + { + return Utils_String.getStringValue(data(), charset); + } + + /** + * Convenience method that attempts to parse {@link #data()} as an int. + * @param reverse - Set to true if you are connecting to a device with {@link java.nio.ByteOrder#BIG_ENDIAN} byte order, to automatically reverse the bytes before conversion. + */ + public @Nullable(Prevalence.NEVER) int data_int(boolean reverse) + { + if (reverse) + { + byte[] data = data(); + Utils_Byte.reverseBytes(data); + return Utils_Byte.bytesToInt(data); + } + else + { + return Utils_Byte.bytesToInt(data()); + } + } + + /** + * Convenience method that attempts to parse {@link #data()} as a short. + * @param reverse - Set to true if you are connecting to a device with {@link java.nio.ByteOrder#BIG_ENDIAN} byte order, to automatically reverse the bytes before conversion. + */ + public @Nullable(Prevalence.NEVER) short data_short(boolean reverse) + { + if (reverse) + { + byte[] data = data(); + Utils_Byte.reverseBytes(data); + return Utils_Byte.bytesToShort(data); + } + else + { + return Utils_Byte.bytesToShort(data()); + } + } + + /** + * Convenience method that attempts to parse {@link #data()} as a long. + * @param reverse - Set to true if you are connecting to a device with {@link java.nio.ByteOrder#BIG_ENDIAN} byte order, to automatically reverse the bytes before conversion. + */ + public @Nullable(Prevalence.NEVER) long data_long(boolean reverse) + { + if (reverse) + { + byte[] data = data(); + Utils_Byte.reverseBytes(data); + return Utils_Byte.bytesToLong(data); + } + else + { + return Utils_Byte.bytesToLong(data()); + } + } + + /** + * Forwards {@link Type#isNull()}. + */ + @Override public boolean isNull() + { + return type().isNull(); + } + + @Override public String toString() + { + if (isNull()) + { + return Type.NULL.toString(); + } + else + { + if (target() == Target.RSSI) + { + return Utils_String.toString + ( + this.getClass(), + "status", status(), + "type", type(), + "target", target(), + "rssi", rssi(), + "gattStatus", device().getManager().getLogger().gattStatus(gattStatus()) + ); + } + else if (target() == Target.MTU ) + { + return Utils_String.toString + ( + this.getClass(), + "status", status(), + "type", type(), + "target", target(), + "mtu", mtu(), + "gattStatus", device().getManager().getLogger().gattStatus(gattStatus()) + ); + } + else if( target() == Target.CONNECTION_PRIORITY ) + { + return Utils_String.toString + ( + this.getClass(), + "status", status(), + "type", type(), + "target", target(), + "connectionPriority", connectionPriority(), + "gattStatus", device().getManager().getLogger().gattStatus(gattStatus()) + ); + } + else + { + return Utils_String.toString + ( + this.getClass(), + "status", status(), + "data", Arrays.toString(data()), + "type", type(), + "charUuid", device().getManager().getLogger().uuidName(charUuid()), + "gattStatus", device().getManager().getLogger().gattStatus(gattStatus()) + ); + } + } + } + } + + /** + * Called when a read or write is complete or when a notification comes in or when a notification is enabled/disabled. + */ +// void onEvent(final ReadWriteEvent e); + } + + /** + * Provide an implementation to {@link BleDevice#setListener_State(StateListener)} and/or + * {@link BleManager#setListener_DeviceState(BleDevice.StateListener)} to receive state change events. + * + * @see BleDeviceState + * @see BleDevice#setListener_State(StateListener) + */ + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface StateListener + { + /** + * Subclass that adds the device field. + */ + @Immutable + public static class StateEvent extends State.ChangeEvent<BleDeviceState> + { + /** + * The device undergoing the state change. + */ + public BleDevice device() { return m_device; } + private final BleDevice m_device; + + /** + * Convience to return the mac address of {@link #device()}. + */ + public String macAddress() { return m_device.getMacAddress(); } + + /** + * The change in gattStatus that may have precipitated the state change, or {@link BleStatuses#GATT_STATUS_NOT_APPLICABLE}. + * For example if {@link #didEnter(State)} with {@link BleDeviceState#DISCONNECTED} is <code>true</code> and + * {@link #didExit(State)} with {@link BleDeviceState#CONNECTING} is also <code>true</code> then {@link #gattStatus()} may be greater + * than zero and give some further hint as to why the connection failed. + * <br><br> + * See {@link ConnectionFailListener.ConnectionFailEvent#gattStatus()} for more information. + */ + public int gattStatus() { return m_gattStatus; } + private final int m_gattStatus; + + StateEvent(BleDevice device, int oldStateBits, int newStateBits, int intentMask, int gattStatus) + { + super(oldStateBits, newStateBits, intentMask); + + this.m_device = device; + this.m_gattStatus = gattStatus; + } + + @Override public String toString() + { + if( device().is(RECONNECTING_SHORT_TERM) ) + { + return Utils_String.toString + ( + this.getClass(), + "device", device().getName_debug(), + "entered", Utils_String.toString(enterMask(), BleDeviceState.VALUES()), + "exited", Utils_String.toString(exitMask(), BleDeviceState.VALUES()), + "current", Utils_String.toString(newStateBits(), BleDeviceState.VALUES()), + "current_native", Utils_String.toString(device().getNativeStateMask(), BleDeviceState.VALUES()), + "gattStatus", device().logger().gattStatus(gattStatus()) + ); + } + else + { + return Utils_String.toString + ( + this.getClass(), + "device", device().getName_debug(), + "entered", Utils_String.toString(enterMask(), BleDeviceState.VALUES()), + "exited", Utils_String.toString(exitMask(), BleDeviceState.VALUES()), + "current", Utils_String.toString(newStateBits(), BleDeviceState.VALUES()), + "gattStatus", device().logger().gattStatus(gattStatus()) + ); + } + } + } + + /** + * Called when a device's bitwise {@link BleDeviceState} changes. As many bits as possible are flipped at the same time. + */ + void onEvent(final StateEvent e); + } + + /** + * Provide an implementation of this callback to {@link BleDevice#setListener_ConnectionFail(ConnectionFailListener)}. + * + * @see DefaultConnectionFailListener + * @see BleDevice#setListener_ConnectionFail(ConnectionFailListener) + */ + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface ConnectionFailListener extends BleNode.ConnectionFailListener + { + /** + * The reason for the connection failure. + */ + public static enum Status implements UsesCustomNull + { + /** + * Used in place of Java's built-in <code>null</code> wherever needed. As of now, the {@link ConnectionFailEvent#status()} given + * to {@link ConnectionFailListener#onEvent(ConnectionFailEvent)} will *never* be {@link ConnectionFailListener.Status#NULL}. + */ + NULL, + + /** + * A call was made to {@link BleDevice#connect()} or its overloads + * but {@link ConnectionFailEvent#device()} is already + * {@link BleDeviceState#CONNECTING} or {@link BleDeviceState#CONNECTED}. + */ + ALREADY_CONNECTING_OR_CONNECTED, + + /** + * {@link BleDevice#connect()} (or various overloads) was called on {@link BleDevice#NULL}. + */ + NULL_DEVICE, + + /** + * Couldn't connect through {@link BluetoothDevice#connectGatt(android.content.Context, boolean, BluetoothGattCallback)} + * because it (a) {@link Timing#IMMEDIATELY} returned <code>null</code>, (b) {@link Timing#EVENTUALLY} returned a bad + * {@link ConnectionFailEvent#gattStatus()}, or (c) {@link Timing#TIMED_OUT}. + */ + NATIVE_CONNECTION_FAILED, + + /** + * {@link BluetoothGatt#discoverServices()} either (a) {@link Timing#IMMEDIATELY} returned <code>false</code>, + * (b) {@link Timing#EVENTUALLY} returned a bad {@link ConnectionFailEvent#gattStatus()}, or (c) {@link Timing#TIMED_OUT}. + */ + DISCOVERING_SERVICES_FAILED, + + /** + * {@link BluetoothDevice#createBond()} either (a) {@link Timing#IMMEDIATELY} returned <code>false</code>, + * (b) {@link Timing#EVENTUALLY} returned a bad {@link ConnectionFailEvent#bondFailReason()}, or (c) {@link Timing#TIMED_OUT}. + * <br><br> + * NOTE: {@link BleDeviceConfig#bondingFailFailsConnection} must be <code>true</code> for this {@link Status} to be applicable. + * + * @see BondListener + */ + BONDING_FAILED, + + /** + * The {@link BleTransaction} instance passed to {@link BleDevice#connect(BleTransaction.Auth)} or + * {@link BleDevice#connect(BleTransaction.Auth, BleTransaction.Init)} failed through {@link BleTransaction#fail()}. + * + */ + AUTHENTICATION_FAILED, + + /** + * {@link BleTransaction} instance passed to {@link BleDevice#connect(BleTransaction.Init)} or + * {@link BleDevice#connect(BleTransaction.Auth, BleTransaction.Init)} failed through {@link BleTransaction#fail()}. + * + */ + INITIALIZATION_FAILED, + + /** + * Remote peripheral randomly disconnected sometime during the connection process. Similar to {@link #NATIVE_CONNECTION_FAILED} + * but only occurs after the device is {@link BleDeviceState#CONNECTED} and we're going through + * {@link BleDeviceState#DISCOVERING_SERVICES}, or {@link BleDeviceState#AUTHENTICATING}, or what have you. It might + * be from the device turning off, or going out of range, or any other random reason. + */ + ROGUE_DISCONNECT, + + /** + * {@link BleDevice#disconnect()} was called sometime during the connection process. + */ + EXPLICIT_DISCONNECT, + + /** + * {@link BleManager#reset()} or {@link BleManager#turnOff()} (or + * overloads) were called sometime during the connection process. + * Basic testing reveals that this value will also be used when a + * user turns off BLE by going through their OS settings, airplane + * mode, etc., but it's not absolutely *certain* that this behavior + * is consistent across phones. For example there might be a phone + * that kills all connections before going through the ble turn-off + * process, in which case SweetBlue doesn't know the difference and + * {@link #ROGUE_DISCONNECT} will be used. + */ + BLE_TURNING_OFF; + + /** + * Returns true for {@link #EXPLICIT_DISCONNECT} or {@link #BLE_TURNING_OFF}. + */ + public boolean wasCancelled() + { + return this == EXPLICIT_DISCONNECT || this == BLE_TURNING_OFF; + } + + /** + * Same as {@link #wasCancelled()}, at least for now, but just being more "explicit", no pun intended. + */ + boolean wasExplicit() + { + return wasCancelled(); + } + + /** + * Whether this status honors a {@link BleNode.ConnectionFailListener.Please#isRetry()}. Returns <code>false</code> if {@link #wasCancelled()} or + * <code>this</code> is {@link #ALREADY_CONNECTING_OR_CONNECTED}. + */ + public boolean allowsRetry() + { + return !this.wasCancelled() && this != ALREADY_CONNECTING_OR_CONNECTED; + } + + @Override public boolean isNull() + { + return this == NULL; + } + + /** + * Convenience method that returns whether this status is something that your app user would usually care about. + * If this returns <code>true</code> then perhaps you should pop up a {@link android.widget.Toast} or something of that nature. + */ + public boolean shouldBeReportedToUser() + { + return this == NATIVE_CONNECTION_FAILED || + this == DISCOVERING_SERVICES_FAILED || + this == BONDING_FAILED || + this == AUTHENTICATION_FAILED || + this == INITIALIZATION_FAILED || + this == ROGUE_DISCONNECT ; + } + } + + /** + * For {@link Status#NATIVE_CONNECTION_FAILED}, {@link Status#DISCOVERING_SERVICES_FAILED}, and + * {@link Status#BONDING_FAILED}, gives further timing information on when the failure took place. + * For all other reasons, {@link ConnectionFailEvent#timing()} will be {@link #NOT_APPLICABLE}. + */ + public static enum Timing + { + /** + * For reasons like {@link ConnectionFailListener.Status#BLE_TURNING_OFF}, {@link ConnectionFailListener.Status#AUTHENTICATION_FAILED}, etc. + */ + NOT_APPLICABLE, + + /** + * The operation failed immediately, for example by the native stack method returning <code>false</code> from a method call. + */ + IMMEDIATELY, + + /** + * The operation failed in the native stack. {@link ConnectionFailListener.ConnectionFailEvent#gattStatus()} + * will probably be a positive number if {@link ConnectionFailListener.ConnectionFailEvent#status()} is + * {@link ConnectionFailListener.Status#NATIVE_CONNECTION_FAILED} or {@link ConnectionFailListener.Status#DISCOVERING_SERVICES_FAILED}. + * {@link ConnectionFailListener.ConnectionFailEvent#bondFailReason()} will probably be a positive number if + * {@link ConnectionFailListener.ConnectionFailEvent#status()} is {@link ConnectionFailListener.Status#BONDING_FAILED}. + */ + EVENTUALLY, + + /** + * The operation took longer than the time dictated by {@link BleDeviceConfig#taskTimeoutRequestFilter}. + */ + TIMED_OUT; + } + + /** + * Structure passed to {@link ConnectionFailListener#onEvent(ConnectionFailEvent)} to provide more info about how/why the connection failed. + */ + @Immutable + public static class ConnectionFailEvent extends BleNode.ConnectionFailListener.ConnectionFailEvent implements UsesCustomNull + { + /** + * The {@link BleDevice} this {@link ConnectionFailEvent} is for. + */ + public BleDevice device() { return m_device; } + private final BleDevice m_device; + + /** + * Convience to return the mac address of {@link #device()}. + */ + public String macAddress() { return m_device.getMacAddress(); } + + /** + * General reason why the connection failed. + */ + public Status status() { return m_status; } + private final Status m_status; + + /** + * See {@link BondEvent#failReason()}. + */ + public int bondFailReason() { return m_bondFailReason; } + private final int m_bondFailReason; + + /** + * The highest state reached by the latest connection attempt. + */ + public BleDeviceState highestStateReached_latest() { return m_highestStateReached_latest; } + private final BleDeviceState m_highestStateReached_latest; + + /** + * The highest state reached during the whole connection attempt cycle. + * <br><br> + * TIP: You can use this to keep the visual feedback in your connection progress UI "bookmarked" while the connection retries + * and goes through previous states again. + */ + public BleDeviceState highestStateReached_total() { return m_highestStateReached_total; } + private final BleDeviceState m_highestStateReached_total; + + /** + * Further timing information for {@link Status#NATIVE_CONNECTION_FAILED}, {@link Status#BONDING_FAILED}, and {@link Status#DISCOVERING_SERVICES_FAILED}. + */ + public Timing timing() { return m_timing; } + private final Timing m_timing; + + /** + * If {@link ConnectionFailEvent#status()} is {@link Status#AUTHENTICATION_FAILED} or + * {@link Status#INITIALIZATION_FAILED} and {@link BleTransaction#fail()} was called somewhere in or + * downstream of {@link ReadWriteListener#onEvent(Event)}, then the {@link ReadWriteEvent} passed there will be returned + * here. Otherwise, this will return a {@link ReadWriteEvent} for which {@link ReadWriteEvent#isNull()} returns <code>true</code>. + */ + public ReadWriteListener.ReadWriteEvent txnFailReason() { return m_txnFailReason; } + private final ReadWriteListener.ReadWriteEvent m_txnFailReason; + + /** + * Returns a chronologically-ordered list of all {@link ConnectionFailEvent} instances returned through + * {@link ConnectionFailListener#onEvent(ConnectionFailEvent)} since the first call to {@link BleDevice#connect()}, + * including the current instance. Thus this list will always have at least a length of one (except if {@link #isNull()} is <code>true</code>). + * The list length is "reset" back to one whenever a {@link BleDeviceState#CONNECTING_OVERALL} operation completes, either + * through becoming {@link BleDeviceState#INITIALIZED}, or {@link BleDeviceState#DISCONNECTED} for good. + */ + public ConnectionFailEvent[] history() { return m_history; } + private final ConnectionFailEvent[] m_history; + + ConnectionFailEvent(BleDevice device, Status reason, Timing timing, int failureCountSoFar, Interval latestAttemptTime, Interval totalAttemptTime, int gattStatus, BleDeviceState highestStateReached, BleDeviceState highestStateReached_total, AutoConnectUsage autoConnectUsage, int bondFailReason, ReadWriteListener.ReadWriteEvent txnFailReason, ArrayList<ConnectionFailEvent> history) + { + super(failureCountSoFar, latestAttemptTime, totalAttemptTime, gattStatus, autoConnectUsage); + + this.m_device = device; + this.m_status = reason; + this.m_timing = timing; + this.m_highestStateReached_latest = highestStateReached != null ? highestStateReached : BleDeviceState.NULL; + this.m_highestStateReached_total = highestStateReached_total != null ? highestStateReached_total : BleDeviceState.NULL; + this.m_bondFailReason = bondFailReason; + this.m_txnFailReason = txnFailReason; + + if( history == null ) + { + this.m_history = EMPTY_HISTORY(); + } + else + { + this.m_history = new ConnectionFailEvent[history.size()+1]; + for( int i = 0; i < history.size(); i++ ) + { + this.m_history[i] = history.get(i); + } + + this.m_history[this.m_history.length-1] = this; + } + + m_device.getManager().ASSERT(highestStateReached != null, "highestState_latest shouldn't be null."); + m_device.getManager().ASSERT(highestStateReached_total != null, "highestState_total shouldn't be null."); + } + + private static ConnectionFailEvent[] s_emptyHistory = null; + static ConnectionFailEvent[] EMPTY_HISTORY() + { + s_emptyHistory = s_emptyHistory != null ? s_emptyHistory : new ConnectionFailEvent[]{}; + + return s_emptyHistory; + } + + static ConnectionFailEvent NULL(BleDevice device) + { + return new ConnectionFailEvent(device, Status.NULL, Timing.NOT_APPLICABLE, 0, Interval.DISABLED, Interval.DISABLED, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BleDeviceState.NULL, BleDeviceState.NULL, AutoConnectUsage.NOT_APPLICABLE, BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE, device.NULL_READWRITE_EVENT(), null); + } + + static ConnectionFailEvent EARLY_OUT(BleDevice device, Status reason) + { + return new ConnectionFailListener.ConnectionFailEvent(device, reason, Timing.TIMED_OUT, 0, Interval.ZERO, Interval.ZERO, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BleDeviceState.NULL, BleDeviceState.NULL, AutoConnectUsage.NOT_APPLICABLE, BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE, device.NULL_READWRITE_EVENT(), null); + } + + /** + * Returns whether this {@link ConnectionFailEvent} instance is a "dummy" value. For now used for + * {@link BleNodeConfig.ReconnectFilter.ReconnectEvent#connectionFailEvent()} in certain situations. + */ + @Override public boolean isNull() + { + return status().isNull(); + } + + /** + * Forwards {@link BleDevice.ConnectionFailListener.Status#shouldBeReportedToUser()} using {@link #status()}. + */ + public boolean shouldBeReportedToUser() + { + return status().shouldBeReportedToUser(); + } + + @Override public String toString() + { + if (isNull()) + { + return Status.NULL.name(); + } + else + { + if( status() == Status.BONDING_FAILED ) + { + return Utils_String.toString + ( + this.getClass(), + "device", device().getName_debug(), + "status", status(), + "timing", timing(), + "bondFailReason", device().getManager().getLogger().gattUnbondReason(bondFailReason()), + "failureCountSoFar", failureCountSoFar() + ); + } + else + { + return Utils_String.toString + ( + this.getClass(), + "device", device().getName_debug(), + "status", status(), + "timing", timing(), + "gattStatus", device().getManager().getLogger().gattStatus(gattStatus()), + "failureCountSoFar", failureCountSoFar() + ); + } + } + } + } + + /** + * Return value is ignored if device is either {@link BleDeviceState#RECONNECTING_LONG_TERM} or reason + * {@link Status#allowsRetry()} is <code>false</code>. If the device is {@link BleDeviceState#RECONNECTING_LONG_TERM} + * then authority is deferred to {@link BleNodeConfig.ReconnectFilter}. + * <br><br> + * Otherwise, this method offers a more convenient way of retrying a connection, as opposed to manually doing it yourself. It also lets + * the library handle things in a slightly more optimized/cleaner fashion and so is recommended for that reason also. + * <br><br> + * NOTE that this callback gets fired *after* {@link StateListener} lets you know that the device is {@link BleDeviceState#DISCONNECTED}. + * <br><br> + * The time parameters like {@link ConnectionFailEvent#attemptTime_latest()} are of optional use to you to decide if connecting again + * is worth it. For example if you've been trying to connect for 10 seconds already, chances are that another connection attempt probably won't work. + */ + Please onEvent(final ConnectionFailEvent e); + } + + /** + * Default implementation of {@link ConnectionFailListener} that attempts a certain number of retries. An instance of this class is set by default + * for all new {@link BleDevice} instances using {@link BleDevice.DefaultConnectionFailListener#DEFAULT_CONNECTION_FAIL_RETRY_COUNT}. + * Use {@link BleDevice#setListener_ConnectionFail(ConnectionFailListener)} to override the default behavior. + * + * @see ConnectionFailListener + * @see BleDevice#setListener_ConnectionFail(ConnectionFailListener) + */ + @Immutable + public static class DefaultConnectionFailListener implements ConnectionFailListener + { + /** + * The default retry count provided to {@link DefaultConnectionFailListener}. + * So if you were to call {@link BleDevice#connect()} and all connections failed, in total the + * library would try to connect {@value #DEFAULT_CONNECTION_FAIL_RETRY_COUNT}+1 times. + * + * @see DefaultConnectionFailListener + */ + public static final int DEFAULT_CONNECTION_FAIL_RETRY_COUNT = 2; + + /** + * The default connection fail limit past which {@link DefaultConnectionFailListener} will start returning {@link BleNode.ConnectionFailListener.Please#retryWithAutoConnectTrue()}. + */ + public static final int DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT = 2; + + /** + * The maximum amount of time to keep trying if connection is failing due to (what usually are) transient bonding failures + */ + public static final Interval MAX_RETRY_TIME_FOR_BOND_FAILURE = Interval.secs(120.0); + + private final int m_retryCount; + private final int m_failCountBeforeUsingAutoConnect; + + public DefaultConnectionFailListener() + { + this(DEFAULT_CONNECTION_FAIL_RETRY_COUNT, DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT); + } + + public DefaultConnectionFailListener(int retryCount, int failCountBeforeUsingAutoConnect) + { + m_retryCount = retryCount; + m_failCountBeforeUsingAutoConnect = failCountBeforeUsingAutoConnect; + } + + public int getRetryCount() + { + return m_retryCount; + } + + @Override public Please onEvent(ConnectionFailEvent e) + { + //--- DRK > Not necessary to check this ourselves, just being explicit. + if (!e.status().allowsRetry() || e.device().is(RECONNECTING_LONG_TERM)) + { + return Please.doNotRetry(); + } + + //--- DRK > It has been noticed that bonding can fail several times due to the follow status code but then succeed, + //--- so we just keep on trying for a little bit in case we can eventually make it. + //--- NOTE: After testing for a little bit, this doesn't seem to work, regardless of how much time you give it. +// if( e.bondFailReason() == BleStatuses.UNBOND_REASON_REMOTE_DEVICE_DOWN ) +// { +// final Interval timeNow = e.attemptTime_total(); +// Interval timeSinceFirstUnbond = e.attemptTime_total(); +// final ConnectionFailEvent[] history = e.history(); +// for( int i = history.length-1; i >= 0; i-- ) +// { +// final ConnectionFailEvent history_ith = history[i]; +// +// if( history_ith.bondFailReason() == BleStatuses.UNBOND_REASON_REMOTE_DEVICE_DOWN ) +// { +// timeSinceFirstUnbond = history_ith.attemptTime_total(); +// } +// else +// { +// break; +// } +// } +// +// final Interval totalTimeFailingDueToBondingIssues = timeNow.minus(timeSinceFirstUnbond); +// +// if( totalTimeFailingDueToBondingIssues.lt(MAX_RETRY_TIME_FOR_BOND_FAILURE) ) +// { +// return Please.retry(); +// } +// } + + if (e.failureCountSoFar() <= m_retryCount) + { + if (e.failureCountSoFar() >= m_failCountBeforeUsingAutoConnect) + { + return Please.retryWithAutoConnectTrue(); + } + else + { + if (e.status() == Status.NATIVE_CONNECTION_FAILED && e.timing() == Timing.TIMED_OUT) + { + if (e.autoConnectUsage() == AutoConnectUsage.USED) + { + return Please.retryWithAutoConnectFalse(); + } + else if (e.autoConnectUsage() == AutoConnectUsage.NOT_USED) + { + return Please.retryWithAutoConnectTrue(); + } + else + { + return Please.retry(); + } + } + else + { + return Please.retry(); + } + } + } + else + { + return Please.doNotRetry(); + } + } + } + + /** + * Pass an instance of this listener to {@link BleDevice#setListener_Bond(BondListener)} or {@link BleDevice#bond(BondListener)}. + */ + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface BondListener + { + /** + * Used on {@link BondEvent#status()} to roughly enumerate success or failure. + */ + public static enum Status implements UsesCustomNull + { + /** + * Fulfills soft contract of {@link UsesCustomNull}. + * + * @see #isNull(). + */ + NULL, + + /** + * The {@link BleDevice#bond()} call succeeded. + */ + SUCCESS, + + /** + * {@link BleDevice#bond(BondListener)} (or overloads) was called on {@link BleDevice#NULL}. + */ + NULL_DEVICE, + + /** + * Already {@link BleDeviceState#BONDED} or in the process of {@link BleDeviceState#BONDING}. + */ + ALREADY_BONDING_OR_BONDED, + + /** + * The call to {@link BluetoothDevice#createBond()} returned <code>false</code> and thus failed immediately. + */ + FAILED_IMMEDIATELY, + + /** + * We received a {@link BluetoothDevice#ACTION_BOND_STATE_CHANGED} through our internal {@link BroadcastReceiver} that we went from + * {@link BleDeviceState#BONDING} back to {@link BleDeviceState#UNBONDED}, which means the attempt failed. + * See {@link BondEvent#failReason()} for more information. + */ + FAILED_EVENTUALLY, + + /** + * The bond operation took longer than the time set in {@link BleDeviceConfig#taskTimeoutRequestFilter} so we cut it loose. + */ + TIMED_OUT, + + /** + * A call was made to {@link BleDevice#unbond()} at some point during the bonding process. + */ + CANCELLED_FROM_UNBOND, + + /** + * Cancelled from {@link BleManager} going {@link BleManagerState#TURNING_OFF} or + * {@link BleManagerState#OFF}, probably from calling {@link BleManager#reset()}. + */ + CANCELLED_FROM_BLE_TURNING_OFF; + + /** + * @return <code>true</code> for {@link #CANCELLED_FROM_BLE_TURNING_OFF} or {@link #CANCELLED_FROM_UNBOND}. + */ + public boolean wasCancelled() + { + return this == CANCELLED_FROM_BLE_TURNING_OFF || this == CANCELLED_FROM_UNBOND; + } + + boolean canFailConnection() + { + return this == FAILED_IMMEDIATELY || this == FAILED_EVENTUALLY || this == TIMED_OUT; + } + + ConnectionFailListener.Timing timing() + { + switch (this) + { + case FAILED_IMMEDIATELY: return Timing.IMMEDIATELY; + case FAILED_EVENTUALLY: return Timing.EVENTUALLY; + case TIMED_OUT: return Timing.TIMED_OUT; + default: return Timing.NOT_APPLICABLE; + } + } + + /** + * @return <code>true</code> if <code>this</code> == {@link #NULL}. + */ + @Override public boolean isNull() + { + return this == NULL; + } + } + + /** + * Struct passed to {@link BondListener#onEvent(BondEvent)} to provide more information about a {@link BleDevice#bond()} attempt. + */ + @Immutable + public static class BondEvent extends Event implements UsesCustomNull + { + /** + * The {@link BleDevice} that attempted to {@link BleDevice#bond()}. + */ + public BleDevice device() { return m_device; } + private final BleDevice m_device; + + /** + * Convience to return the mac address of {@link #device()}. + */ + public String macAddress() { return m_device.getMacAddress(); } + + /** + * The {@link Status} associated with this event. + */ + public Status status() { return m_status; } + private final Status m_status; + + /** + * If {@link #status()} is {@link BondListener.Status#FAILED_EVENTUALLY}, this integer will + * be one of the values enumerated in {@link BluetoothDevice} that start with <code>UNBOND_REASON</code> such as + * {@link BleStatuses#UNBOND_REASON_AUTH_FAILED}. Otherwise it will be equal to {@link BleStatuses#BOND_FAIL_REASON_NOT_APPLICABLE}. + * See also a publically accessible list in {@link BleStatuses}. + */ + public int failReason() { return m_failReason; } + private final int m_failReason; + + /** + * Tells whether the bond was created through an explicit call through SweetBlue, or otherwise. If + * {@link ChangeIntent#INTENTIONAL}, then {@link BleDevice#bond()} (or overloads) were called. If {@link ChangeIntent#UNINTENTIONAL}, + * then the bond was created "spontaneously" as far as SweetBlue is concerned, whether through another app, the OS Bluetooth + * settings, or maybe from a request by the remote BLE device itself. + */ + public State.ChangeIntent intent() { return m_intent; } + private final State.ChangeIntent m_intent; + + BondEvent(BleDevice device, Status status, int failReason, State.ChangeIntent intent) + { + m_device = device; + m_status = status; + m_failReason = failReason; + m_intent = intent; + } + + private static BondEvent NULL(final BleDevice device) + { + return new BondEvent(device, Status.NULL, BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE, State.ChangeIntent.NULL); + } + + /** + * Shortcut for checking if {@link #status()} == {@link BondListener.Status#SUCCESS}. + */ + public boolean wasSuccess() + { + return status() == Status.SUCCESS; + } + + /** + * Forwards {@link Status#wasCancelled()}. + */ + public boolean wasCancelled() + { + return status().wasCancelled(); + } + + @Override public String toString() + { + if( isNull() ) + { + return NULL_STRING(); + } + else + { + return Utils_String.toString + ( + this.getClass(), + "device", device().getName_debug(), + "status", status(), + "failReason", device().getManager().getLogger().gattUnbondReason(failReason()), + "intent", intent() + ); + } + } + + @Override public boolean isNull() + { + return status().isNull(); + } + } + + /** + * Called after a call to {@link BleDevice#bond(BondListener)} (or overloads), + * or when bonding through another app or the operating system settings. + */ + void onEvent(BondEvent e); + } + + static ConnectionFailListener DEFAULT_CONNECTION_FAIL_LISTENER = new DefaultConnectionFailListener(); + + final P_NativeDeviceWrapper m_nativeWrapper; + + private double m_timeSinceLastDiscovery; + private EpochTime m_lastDiscoveryTime = EpochTime.NULL; + + final P_BleDevice_Listeners m_listeners; + private final P_DeviceStateTracker m_stateTracker; + private final P_DeviceStateTracker m_stateTracker_shortTermReconnect; + private final P_PollManager m_pollMngr; + + final P_TransactionManager m_txnMngr; + private final P_ReconnectManager m_reconnectMngr_longTerm; + private final P_ReconnectManager m_reconnectMngr_shortTerm; + private final P_ConnectionFailManager m_connectionFailMngr; + private final P_RssiPollManager m_rssiPollMngr; + private final P_RssiPollManager m_rssiPollMngr_auto; + private final P_Task_Disconnect m_dummyDisconnectTask; + private final P_HistoricalDataManager m_historicalDataMngr; + final P_BondManager m_bondMngr; + + private ReadWriteListener m_defaultReadWriteListener = null; + + private TimeEstimator m_writeTimeEstimator; + private TimeEstimator m_readTimeEstimator; + + private final PA_Task.I_StateListener m_taskStateListener; + + private final BleDeviceOrigin m_origin; + private BleDeviceOrigin m_origin_latest; + + private BleConnectionPriority m_connectionPriority = BleConnectionPriority.MEDIUM; + private int m_mtu = 0; + private int m_rssi = 0; + private int m_advertisingFlags = 0x0; + private Integer m_knownTxPower = null; + private byte[] m_scanRecord = EMPTY_BYTE_ARRAY; + + private BleScanInfo m_scanInfo = new BleScanInfo(); + + private boolean m_useAutoConnect = false; + private boolean m_alwaysUseAutoConnect = false; + private Boolean m_lastConnectOrDisconnectWasUserExplicit = null; + private boolean m_lastDisconnectWasBecauseOfBleTurnOff = false; + private boolean m_underwentPossibleImplicitBondingAttempt = false; + + private BleDeviceConfig m_config = null; + + private BondListener.BondEvent m_nullBondEvent = null; + private ReadWriteListener.ReadWriteEvent m_nullReadWriteEvent = null; + private ConnectionFailListener.ConnectionFailEvent m_nullConnectionFailEvent = null; + + private final boolean m_isNull; + + final P_ReliableWriteManager m_reliableWriteMngr; + + BleDevice(BleManager mngr, BluetoothDevice device_native, String name_normalized, String name_native, BleDeviceOrigin origin, BleDeviceConfig config_nullable, boolean isNull) + { + super(mngr); + + m_origin = origin; + m_origin_latest = m_origin; + m_isNull = isNull; + + if (isNull) + { + m_rssiPollMngr = null; + m_rssiPollMngr_auto = null; + // setConfig(config_nullable); + m_nativeWrapper = new P_NativeDeviceWrapper(this, device_native, name_normalized, name_native); + m_listeners = null; + m_stateTracker = new P_DeviceStateTracker(this, /*forShortTermReconnect=*/false); + m_stateTracker_shortTermReconnect = null; + m_bondMngr = new P_BondManager(this); + stateTracker().set(E_Intent.UNINTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BleDeviceState.NULL, true); + m_pollMngr = new P_PollManager(this); + m_txnMngr = new P_TransactionManager(this); + m_taskStateListener = null; + m_reconnectMngr_longTerm = null; + m_reconnectMngr_shortTerm = null; + m_connectionFailMngr = new P_ConnectionFailManager(this); + m_dummyDisconnectTask = null; + m_historicalDataMngr = null; + m_reliableWriteMngr = null; + } + else + { + m_rssiPollMngr = new P_RssiPollManager(this); + m_rssiPollMngr_auto = new P_RssiPollManager(this); + setConfig(config_nullable); + m_nativeWrapper = new P_NativeDeviceWrapper(this, device_native, name_normalized, name_native); + m_listeners = new P_BleDevice_Listeners(this); + m_stateTracker = new P_DeviceStateTracker(this, /*forShortTermReconnect=*/false); + m_stateTracker_shortTermReconnect = new P_DeviceStateTracker(this, /*forShortTermReconnect=*/true); + m_bondMngr = new P_BondManager(this); + stateTracker().set(E_Intent.UNINTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BleDeviceState.UNDISCOVERED, true, BleDeviceState.DISCONNECTED, true, m_bondMngr.getNativeBondingStateOverrides()); + m_pollMngr = new P_PollManager(this); + m_txnMngr = new P_TransactionManager(this); + m_taskStateListener = m_listeners.m_taskStateListener; + m_reconnectMngr_longTerm = new P_ReconnectManager(this, /*isShortTerm=*/false); + m_reconnectMngr_shortTerm = new P_ReconnectManager(this, /*isShortTerm=*/true); + m_connectionFailMngr = new P_ConnectionFailManager(this); + m_dummyDisconnectTask = new P_Task_Disconnect(this, null, /*explicit=*/false, PE_TaskPriority.FOR_EXPLICIT_BONDING_AND_CONNECTING, /*cancellable=*/true); + m_historicalDataMngr = new P_HistoricalDataManager(this, getMacAddress()); + m_reliableWriteMngr = new P_ReliableWriteManager(this); + } + } + + /** + * Wrapper for {@link BluetoothGatt#beginReliableWrite()} - will return an event such that {@link ReadWriteEvent#isNull()} will + * return <code>false</code> if there are no problems. After calling this you should do a few {@link BleDevice#write(UUID, byte[])} + * calls then call {@link #reliableWrite_execute()}. + */ + public @Nullable(Prevalence.NEVER) ReadWriteEvent reliableWrite_begin(final ReadWriteListener listener) + { + enforceMainThread(); + + return m_reliableWriteMngr.begin(listener); + } + + /** + * Wrapper for {@link BluetoothGatt#abortReliableWrite()} - will return an event such that {@link ReadWriteEvent#isNull()} will + * return <code>false</code> if there are no problems. This call requires a previous call to {@link #reliableWrite_begin(ReadWriteListener)}. + */ + public @Nullable(Prevalence.NEVER) ReadWriteEvent reliableWrite_abort() + { + enforceMainThread(); + + return m_reliableWriteMngr.abort(); + } + + /** + * Wrapper for {@link BluetoothGatt#abortReliableWrite()} - will return an event such that {@link ReadWriteEvent#isNull()} will + * return <code>false</code> if there are no problems. This call requires a previous call to {@link #reliableWrite_begin(ReadWriteListener)}. + */ + public @Nullable(Prevalence.NEVER) ReadWriteEvent reliableWrite_execute() + { + enforceMainThread(); + + return m_reliableWriteMngr.execute(); + } + + @Override protected PA_ServiceManager newServiceManager() + { + return new P_DeviceServiceManager(this); + } + + void notifyOfPossibleImplicitBondingAttempt() + { + m_underwentPossibleImplicitBondingAttempt = true; + } + + P_DeviceStateTracker stateTracker_main() + { + return m_stateTracker; + } + + void stateTracker_updateBoth(E_Intent intent, int status, Object ... statesAndValues) + { + m_stateTracker_shortTermReconnect.update(intent, status, statesAndValues); + stateTracker_main().update(intent, status, statesAndValues); + } + + P_DeviceStateTracker stateTracker() + { + if (stateTracker_main().checkBitMatch(BleDeviceState.RECONNECTING_SHORT_TERM, true)) + { + return m_stateTracker_shortTermReconnect; + } + else + { + return stateTracker_main(); + } + } + + P_ReconnectManager reconnectMngr() + { + if (stateTracker_main().checkBitMatch(BleDeviceState.RECONNECTING_SHORT_TERM, true)) + { + return m_reconnectMngr_shortTerm; + } + else + { + return m_reconnectMngr_longTerm; + } + } + + private void clear_discovery() + { + // clear_common(); + // + // initEstimators(); + } + + private void clear_common() + { + m_connectionFailMngr.setListener(null); + stateTracker_main().setListener(null); + m_config = null; + } + + private void clear_undiscovery() + { + // clear_common(); + + m_lastDiscoveryTime = EpochTime.NULL; + } + + /** + * Optionally sets overrides for any custom options given to {@link BleManager#get(android.content.Context, BleManagerConfig)} + * for this individual device. + */ + public void setConfig(@Nullable(Prevalence.RARE) BleDeviceConfig config_nullable) + { + final boolean allowAllThreads = BleDeviceConfig.bool(config_nullable != null ? config_nullable.allowCallsFromAllThreads : null, conf_mngr().allowCallsFromAllThreads); + + if( false == allowAllThreads ) + { + Utils.enforceMainThread(BleNodeConfig.WRONG_THREAD_MESSAGE); + } + + if (isNull()) return; + + m_config = config_nullable == null ? null : config_nullable.clone(); + + initEstimators(); + + //--- DRK > Not really sure how this config option should be + // interpreted, but here's a first stab for now. + //--- Fringe enough use case that I don't think it's really a big deal. + boolean alwaysUseAutoConnect = BleDeviceConfig.bool(conf_device().alwaysUseAutoConnect, conf_mngr().alwaysUseAutoConnect); + if (alwaysUseAutoConnect) + { + m_alwaysUseAutoConnect = m_useAutoConnect = true; + } + else + { + m_alwaysUseAutoConnect = false; + } + + final Interval autoRssiPollRate = BleDeviceConfig.interval(conf_device().rssiAutoPollRate, conf_mngr().rssiAutoPollRate); + + if (!m_rssiPollMngr.isRunning() && !Interval.isDisabled(autoRssiPollRate)) + { + m_rssiPollMngr_auto.start(autoRssiPollRate.secs(), null); + } + else + { + m_rssiPollMngr_auto.stop(); + } + } + + private void initEstimators() + { + final Integer nForAverageRunningWriteTime = BleDeviceConfig.integer(conf_device().nForAverageRunningWriteTime, conf_mngr().nForAverageRunningWriteTime); + m_writeTimeEstimator = nForAverageRunningWriteTime == null ? null : new TimeEstimator(nForAverageRunningWriteTime); + + final Integer nForAverageRunningReadTime = BleDeviceConfig.integer(conf_device().nForAverageRunningReadTime, conf_mngr().nForAverageRunningReadTime); + m_readTimeEstimator = nForAverageRunningReadTime == null ? null : new TimeEstimator(nForAverageRunningReadTime); + } + + BleDeviceConfig conf_device() + { + return m_config != null ? m_config : conf_mngr(); + } + + @Override BleNodeConfig conf_node() + { + return conf_device(); + } + + /** + * How the device was originally created, either from scanning or explicit creation. + * <br><br> + * NOTE: That devices for which this returns {@link BleDeviceOrigin#EXPLICIT} may still be + * {@link BleManager.DiscoveryListener.LifeCycle#REDISCOVERED} through {@link BleManager#startScan()}. + */ + public BleDeviceOrigin getOrigin() + { + enforceMainThread(); + + return m_origin; + } + + /** + * Returns the last time the device was {@link BleManager.DiscoveryListener.LifeCycle#DISCOVERED} + * or {@link BleManager.DiscoveryListener.LifeCycle#REDISCOVERED}. If {@link #getOrigin()} returns + * {@link BleDeviceOrigin#EXPLICIT} then this will return {@link EpochTime#NULL} unless or until + * the device is {@link BleManager.DiscoveryListener.LifeCycle#REDISCOVERED}. + */ + public EpochTime getLastDiscoveryTime() + { + enforceMainThread(); + + return m_lastDiscoveryTime; + } + + /** + * This enum gives you an indication of the last interaction with a device across app sessions or in-app BLE + * {@link BleManagerState#OFF}->{@link BleManagerState#ON} cycles or undiscovery->rediscovery, which + * basically means how it was last {@link BleDeviceState#DISCONNECTED}. + * <br><br> + * If {@link com.idevicesinc.sweetblue.utils.State.ChangeIntent#NULL}, then the last disconnect is unknown because + * (a) device has never been seen before, + * (b) reason for disconnect was app being killed and {@link BleDeviceConfig#manageLastDisconnectOnDisk} was <code>false</code>, + * (c) app user cleared app data between app sessions or reinstalled the app. + * <br><br> + * If {@link com.idevicesinc.sweetblue.utils.State.ChangeIntent#UNINTENTIONAL}, then from a user experience perspective, the user may not have wanted + * the disconnect to happen, and thus *probably* would want to be automatically connected again as soon as the device is discovered. + * <br><br> + * If {@link com.idevicesinc.sweetblue.utils.State.ChangeIntent#INTENTIONAL}, then the last reason the device was {@link BleDeviceState#DISCONNECTED} was because + * {@link BleDevice#disconnect()} was called, which most-likely means the user doesn't want to automatically connect to this device again. + * <br><br> + * See further explanation at {@link BleDeviceConfig#manageLastDisconnectOnDisk}. + */ + @Advanced + public State.ChangeIntent getLastDisconnectIntent() + { + enforceMainThread(); + + if( isNull() ) return State.ChangeIntent.NULL; + + boolean hitDisk = BleDeviceConfig.bool(conf_device().manageLastDisconnectOnDisk, conf_mngr().manageLastDisconnectOnDisk); + State.ChangeIntent lastDisconnect = getManager().m_diskOptionsMngr.loadLastDisconnect(getMacAddress(), hitDisk); + + return lastDisconnect; + } + + /** + * Set a listener here to be notified whenever this device's state changes. + */ + public void setListener_State(@Nullable(Prevalence.NORMAL) StateListener listener_nullable) + { + enforceMainThread(); + + if( isNull() ) return; + + stateTracker_main().setListener(listener_nullable); + } + + /** + * Set a listener here to be notified whenever a connection fails and to + * have control over retry behavior. + */ + public void setListener_ConnectionFail(@Nullable(Prevalence.NORMAL) ConnectionFailListener listener_nullable) + { + enforceMainThread(); + + if( isNull() ) return; + + m_connectionFailMngr.setListener(listener_nullable); + } + + /** + * Set a listener here to be notified whenever a bond attempt succeeds. This + * will catch attempts to bond both through {@link #bond()} and when bonding + * through the operating system settings or from other apps. + */ + public void setListener_Bond(@Nullable(Prevalence.NORMAL) BondListener listener_nullable) + { + enforceMainThread(); + + if( isNull() ) return; + + m_bondMngr.setListener(listener_nullable); + } + + /** + * Sets a default backup {@link ReadWriteListener} that will be called for all calls to {@link #read(UUID, ReadWriteListener)}, + * {@link #write(UUID, byte[], ReadWriteListener)}, {@link #enableNotify(UUID, ReadWriteListener)}, etc. + * <br><br> + * NOTE: This will be called after the {@link ReadWriteListener} provided directly through the method params. + */ + public void setListener_ReadWrite(@Nullable(Prevalence.NORMAL) ReadWriteListener listener_nullable) + { + enforceMainThread(); + + if( isNull() ) return; + + m_defaultReadWriteListener = listener_nullable; + } + + /** + * Sets a default backup {@link BleNode.HistoricalDataLoadListener} that will be invoked + * for all historical data loads to memory for all uuids. + */ + public void setListener_HistoricalDataLoad(@Nullable(Prevalence.NORMAL) final BleNode.HistoricalDataLoadListener listener_nullable) + { + enforceMainThread(); + + if( isNull() ) return; + + m_historicalDataMngr.setListener(listener_nullable); + } + + /** + * Returns the connection failure retry count during a retry loop. Basic example use case is to provide a callback to + * {@link #setListener_ConnectionFail(ConnectionFailListener)} and update your application's UI with this method's return value downstream of your + * {@link ConnectionFailListener#onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)} override. + */ + public int getConnectionRetryCount() + { + enforceMainThread(); + + if( isNull() ) return 0; + + return m_connectionFailMngr.getRetryCount(); + } + + /** + * Returns the bitwise state mask representation of {@link BleDeviceState} for this device. + * + * @see BleDeviceState + */ + @Advanced + public int getStateMask() + { + enforceMainThread(); + + return stateTracker_main().getState(); + } + + /** + * Returns the actual native state mask representation of the {@link BleDeviceState} for this device. + * The main purpose of this is to reflect what's going on under the hood while {@link BleDevice#is(BleDeviceState)} + * with {@link BleDeviceState#RECONNECTING_SHORT_TERM} is <code>true</code>. + */ + @Advanced + public int getNativeStateMask() + { + enforceMainThread(); + + return stateTracker().getState(); + } + + /** + * See similar explanation for {@link #getAverageWriteTime()}. + * + * @see #getAverageWriteTime() + * @see BleManagerConfig#nForAverageRunningReadTime + */ + @Advanced + public Interval getAverageReadTime() + { + enforceMainThread(); + + return m_readTimeEstimator != null ? Interval.secs(m_readTimeEstimator.getRunningAverage()) : Interval.ZERO; + } + + /** + * Returns the average round trip time in seconds for all write operations started with {@link #write(UUID, byte[])} or + * {@link #write(UUID, byte[], ReadWriteListener)}. This is a running average with N being defined by + * {@link BleManagerConfig#nForAverageRunningWriteTime}. This may be useful for estimating how long a series of + * reads and/or writes will take. For example for displaying the estimated time remaining for a firmware update. + */ + @Advanced + public Interval getAverageWriteTime() + { + enforceMainThread(); + + return m_writeTimeEstimator != null ? Interval.secs(m_writeTimeEstimator.getRunningAverage()) : Interval.ZERO; + } + + /** + * Returns the raw RSSI retrieved from when the device was discovered, + * rediscovered, or when you call {@link #readRssi()} or {@link #startRssiPoll(Interval)}. + * + * @see #getDistance() + */ + public int getRssi() + { + enforceMainThread(); + + return m_rssi; + } + + /** + * Raw RSSI from {@link #getRssi()} is a little cryptic, so this gives you a friendly 0%-100% value for signal strength. + */ + public Percent getRssiPercent() + { + enforceMainThread(); + + if (isNull()) + { + return Percent.ZERO; + } + else + { + final int rssi_min = BleDeviceConfig.integer(conf_device().rssi_min, conf_mngr().rssi_min, BleDeviceConfig.DEFAULT_RSSI_MIN); + final int rssi_max = BleDeviceConfig.integer(conf_device().rssi_max, conf_mngr().rssi_max, BleDeviceConfig.DEFAULT_RSSI_MAX); + final double percent = Utils_Rssi.percent(getRssi(), rssi_min, rssi_max); + + return Percent.fromDouble_clamped(percent); + } + } + + /** + * Returns the approximate distance in meters based on {@link #getRssi()} and + * {@link #getTxPower()}. NOTE: the higher the distance, the less the accuracy. + */ + public Distance getDistance() + { + enforceMainThread(); + + if (isNull()) + { + return Distance.INVALID; + } + else + { + return Distance.meters(Utils_Rssi.distance(getTxPower(), getRssi())); + } + } + + /** + * Returns the calibrated transmission power of the device. If this can't be + * figured out from the device itself then it backs up to the value provided + * in {@link BleDeviceConfig#defaultTxPower}. + * + * @see BleDeviceConfig#defaultTxPower + */ + @Advanced + public int getTxPower() + { + enforceMainThread(); + + if (isNull()) + { + return BleNodeConfig.INVALID_TX_POWER; + } + else + { + if (m_knownTxPower != null) + { + return m_knownTxPower; + } + else + { + final Integer defaultTxPower = BleDeviceConfig.integer(conf_device().defaultTxPower, conf_mngr().defaultTxPower); + final int toReturn = defaultTxPower == null || defaultTxPower == BleNodeConfig.INVALID_TX_POWER ? BleDeviceConfig.DEFAULT_TX_POWER : defaultTxPower; + + return toReturn; + } + } + } + + /** + * Returns the scan record from when we discovered the device. May be empty but never <code>null</code>. + */ + @Advanced + public @Nullable(Prevalence.NEVER) byte[] getScanRecord() + { + enforceMainThread(); + + return m_scanRecord; + } + + /** + * Returns the advertising flags, if any, parse from {@link #getScanRecord()}. + */ + public int getAdvertisingFlags() + { + return m_advertisingFlags; + } + + /** + * Returns the advertised services, if any, parsed from {@link #getScanRecord()}. May be empty but never <code>null</code>. + */ + public @Nullable(Prevalence.NEVER) UUID[] getAdvertisedServices() + { + enforceMainThread(); + + final UUID[] toReturn = m_scanInfo.getServiceUUIDS().size() > 0 ? new UUID[m_scanInfo.getServiceUUIDS().size()] : EMPTY_UUID_ARRAY; + return m_scanInfo.getServiceUUIDS().toArray(toReturn); + } + + /** + * Returns the manufacturer data, if any, parsed from {@link #getScanRecord()}. May be empty but never <code>null</code>. + */ + public @Nullable(Prevalence.NEVER) byte[] getManufacturerData() + { + enforceMainThread(); + + final byte[] toReturn = m_scanInfo.getManufacturerData() != null ? m_scanInfo.getManufacturerData().clone() : new byte[0]; + + return toReturn; + } + + /** + * Returns the manufacturer id, if any, parsed from {@link #getScanRecord()} }. May be -1 if not set + */ + public int getManufacturerId() + { + enforceMainThread(); + + final int toReturn = m_scanInfo.getManufacturerId(); + + return toReturn; + } + + /** + * Returns the manufacturer data, if any, parsed from {@link #getScanRecord()}. May be empty but never <code>null</code>. + */ + public @Nullable(Prevalence.NEVER) Map<UUID, byte[]> getAdvertisedServiceData() + { + enforceMainThread(); + + final Map<UUID, byte[]> toReturn = new HashMap<UUID, byte[]>(); + + toReturn.putAll(m_scanInfo.getServiceData()); + + return toReturn; + } + + /** + * Returns the database table name for the underlying store of historical data for the given {@link UUID}. + */ + @Advanced + public @Nullable(Nullable.Prevalence.NEVER) String getHistoricalDataTableName(final UUID uuid) + { + enforceMainThread(); + + return getManager().m_historicalDatabase.getTableName(getMacAddress(), uuid); + } + + /** + * Returns a cursor capable of random access to the database-persisted historical data for this device. + * Unlike calls to methods like {@link #getHistoricalData_iterator(UUID)} and other overloads, + * this call does not force bulk data load into memory. + * <br><br> + * NOTE: You must call {@link HistoricalDataCursor#close()} when you are done with the data. + */ + @Advanced + public @Nullable(Nullable.Prevalence.NEVER) HistoricalDataCursor getHistoricalData_cursor(final UUID uuid) + { + enforceMainThread(); + + return getHistoricalData_cursor(uuid, EpochTimeRange.FROM_MIN_TO_MAX); + } + + /** + * Same as {@link #getHistoricalData_cursor(UUID)} but constrains the results to the given time range. + * <br><br> + * NOTE: You must call {@link HistoricalDataCursor#close()} when you are done with the data. + */ + @Advanced + public @Nullable(Nullable.Prevalence.NEVER) HistoricalDataCursor getHistoricalData_cursor(final UUID uuid, final EpochTimeRange range) + { + enforceMainThread(); + + return m_historicalDataMngr.getCursor(uuid, range); + } + + /** + * Loads all historical data to memory for this device. + */ + @Advanced + public void loadHistoricalData() + { + loadHistoricalData(null, null); + } + + /** + * Loads all historical data to memory for this device for the given {@link UUID}. + */ + @Advanced + public void loadHistoricalData(final UUID uuid) + { + loadHistoricalData(uuid, null); + } + + /** + * Loads all historical data to memory for this device with a callback for when it's complete. + */ + @Advanced + public void loadHistoricalData(final HistoricalDataLoadListener listener) + { + loadHistoricalData(null, listener); + } + + /** + * Loads all historical data to memory for this device for the given {@link UUID}. + */ + @Advanced + public void loadHistoricalData(final UUID uuid, final HistoricalDataLoadListener listener) + { + enforceMainThread(); + + if( isNull() ) return; + + m_historicalDataMngr.load(uuid, listener); + } + + /** + * Returns whether the device is currently loading any historical data to memory, either through + * {@link #loadHistoricalData()} (or overloads) or {@link #getHistoricalData_iterator(UUID)} (or overloads). + */ + @Advanced + public boolean isHistoricalDataLoading() + { + enforceMainThread(); + + return m_historicalDataMngr.isLoading(null); + } + + /** + * Returns whether the device is currently loading any historical data to memory for the given uuid, either through + * {@link #loadHistoricalData()} (or overloads) or {@link #getHistoricalData_iterator(UUID)} (or overloads). + */ + @Advanced + public boolean isHistoricalDataLoading(final UUID uuid) + { + enforceMainThread(); + + return m_historicalDataMngr.isLoading(uuid); + } + + /** + * Returns <code>true</code> if the historical data for all historical data for + * this device is loaded into memory. + * Use {@link BleNode.HistoricalDataLoadListener} + * to listen for when the load actually completes. If {@link #hasHistoricalData(UUID)} + * returns <code>false</code> then this will also always return <code>false</code>. + */ + @Advanced + public boolean isHistoricalDataLoaded() + { + enforceMainThread(); + + return m_historicalDataMngr.isLoaded(null); + } + + /** + * Returns <code>true</code> if the historical data for a given uuid is loaded into memory. + * Use {@link BleNode.HistoricalDataLoadListener} + * to listen for when the load actually completes. If {@link #hasHistoricalData(UUID)} + * returns <code>false</code> then this will also always return <code>false</code>. + */ + @Advanced + public boolean isHistoricalDataLoaded(final UUID uuid) + { + enforceMainThread(); + + return m_historicalDataMngr.isLoaded(uuid); + } + + /** + * Returns the cached data from the lastest successful read or notify received for a given uuid. + * Basically if you receive a {@link ReadWriteListener.ReadWriteEvent} for which {@link ReadWriteListener.ReadWriteEvent#isRead()} + * and {@link ReadWriteListener.ReadWriteEvent#wasSuccess()} both return <code>true</code> then {@link ReadWriteListener.ReadWriteEvent#data()}, + * will be cached and is retrievable by this method. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + * + * @return The cached value from a previous read or notify, or {@link HistoricalData#NULL} otherwise. + */ + @Advanced + public @Nullable(Nullable.Prevalence.NEVER) HistoricalData getHistoricalData_latest(final UUID uuid) + { + return getHistoricalData_atOffset(uuid, getHistoricalDataCount(uuid) - 1); + } + + /** + * Returns an iterator that will iterate through all {@link HistoricalData} entries. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public @Nullable(Nullable.Prevalence.NEVER) Iterator<HistoricalData> getHistoricalData_iterator(final UUID uuid) + { + return getHistoricalData_iterator(uuid, EpochTimeRange.FROM_MIN_TO_MAX); + } + + /** + * Returns an iterator that will iterate through all {@link HistoricalData} entries within the range provided. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public @Nullable(Nullable.Prevalence.NEVER) Iterator<HistoricalData> getHistoricalData_iterator(final UUID uuid, final EpochTimeRange range) + { + enforceMainThread(); + + if( isNull() ) return new EmptyIterator<HistoricalData>(); + + return m_historicalDataMngr.getIterator(uuid, EpochTimeRange.denull(range)); + } + + /** + * Provides all historical data through the "for each" provided. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + * + * @return <code>true</code> if there are any entries, <code>false</code> otherwise. + */ + @Advanced + public boolean getHistoricalData_forEach(final UUID uuid, final ForEach_Void<HistoricalData> forEach) + { + return getHistoricalData_forEach(uuid, EpochTimeRange.FROM_MIN_TO_MAX, forEach); + } + + /** + * Provides all historical data through the "for each" provided within the range provided. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + * + * @return <code>true</code> if there are any entries, <code>false</code> otherwise. + */ + @Advanced + public boolean getHistoricalData_forEach(final UUID uuid, final EpochTimeRange range, final ForEach_Void<HistoricalData> forEach) + { + enforceMainThread(); + + if( isNull() ) return false; + + return m_historicalDataMngr.doForEach(uuid, EpochTimeRange.denull(range), forEach); + } + + /** + * Provides all historical data through the "for each" provided. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + * + * @return <code>true</code> if there are any entries, <code>false</code> otherwise. + */ + @Advanced + public boolean getHistoricalData_forEach(final UUID uuid, final ForEach_Breakable<HistoricalData> forEach) + { + return getHistoricalData_forEach(uuid, EpochTimeRange.FROM_MIN_TO_MAX, forEach); + } + + /** + * Provides all historical data through the "for each" provided within the range provided. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + * + * @return <code>true</code> if there are any entries, <code>false</code> otherwise. + */ + @Advanced + public boolean getHistoricalData_forEach(final UUID uuid, final EpochTimeRange range, final ForEach_Breakable<HistoricalData> forEach) + { + enforceMainThread(); + + if( isNull() ) return false; + + return m_historicalDataMngr.doForEach(uuid, EpochTimeRange.denull(range), forEach); + } + + /** + * Same as {@link #addHistoricalData(UUID, byte[], EpochTime)} but returns the data from the chronological offset, i.e. <code>offsetFromStart=0</code> + * will return the earliest {@link HistoricalData}. Use in combination with {@link #getHistoricalDataCount(java.util.UUID)} to iterate + * "manually" through this device's historical data for the given characteristic. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public @Nullable(Nullable.Prevalence.NEVER) HistoricalData getHistoricalData_atOffset(final UUID uuid, final int offsetFromStart) + { + return getHistoricalData_atOffset(uuid, EpochTimeRange.FROM_MIN_TO_MAX, offsetFromStart); + } + + /** + * Same as {@link #getHistoricalData_atOffset(java.util.UUID, int)} but offset is relative to the time range provided. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public @Nullable(Nullable.Prevalence.NEVER) HistoricalData getHistoricalData_atOffset(final UUID uuid, final EpochTimeRange range, final int offsetFromStart) + { + enforceMainThread(); + + if( isNull() ) return HistoricalData.NULL; + + return m_historicalDataMngr.getWithOffset(uuid, EpochTimeRange.denull(range), offsetFromStart); + } + + /** + * Returns the number of historical data entries that have been logged for the device's given characteristic. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public int getHistoricalDataCount(final UUID uuid) + { + return getHistoricalDataCount(uuid, EpochTimeRange.FROM_MIN_TO_MAX); + } + + /** + * Returns the number of historical data entries that have been logged + * for the device's given characteristic within the range provided. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public int getHistoricalDataCount(final UUID uuid, final EpochTimeRange range) + { + enforceMainThread(); + + if( isNull() ) return 0; + + return m_historicalDataMngr.getCount(uuid, EpochTimeRange.denull(range)); + } + + /** + * Returns <code>true</code> if there is any historical data at all for this device. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public boolean hasHistoricalData() + { + return hasHistoricalData(EpochTimeRange.FROM_MIN_TO_MAX); + } + + /** + * Returns <code>true</code> if there is any historical data at all for this device within the given range. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public boolean hasHistoricalData(final EpochTimeRange range) + { + enforceMainThread(); + + if( isNull() ) return false; + + return m_historicalDataMngr.hasHistoricalData(range); + } + + /** + * Returns <code>true</code> if there is any historical data for the given uuid. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public boolean hasHistoricalData(final UUID uuid) + { + return hasHistoricalData(uuid, EpochTimeRange.FROM_MIN_TO_MAX); + } + + /** + * Returns <code>true</code> if there is any historical data for any of the given uuids. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public boolean hasHistoricalData(final UUID[] uuids) + { + for( int i = 0; i < uuids.length; i++ ) + { + if( hasHistoricalData(uuids[i], EpochTimeRange.FROM_MIN_TO_MAX) ) + { + return true; + } + } + + enforceMainThread(); + + return false; + } + + /** + * Returns <code>true</code> if there is any historical data for the given uuid within the given range. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public boolean hasHistoricalData(final UUID uuid, final EpochTimeRange range) + { + enforceMainThread(); + + if( isNull() ) return false; + + return m_historicalDataMngr.hasHistoricalData(uuid, range); + } + + /** + * Manual way to add data to the historical data list managed by this device. You may want to use this if, + * for example, your remote BLE device is capable of taking and caching independent readings while not connected. + * After you connect with this device and download the log you can add it manually here. + * Really you can use this for any arbitrary historical data though, even if it's not associated with a characteristic. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void addHistoricalData(final UUID uuid, final byte[] data, final EpochTime epochTime) + { + enforceMainThread(); + + if( isNull() ) return; + + m_historicalDataMngr.add_single(uuid, data, epochTime, BleNodeConfig.HistoricalDataLogFilter.Source.SINGLE_MANUAL_ADDITION); + } + + /** + * Just an overload of {@link #addHistoricalData(UUID, byte[], EpochTime)} with the data and epochTime parameters switched around. + */ + @Advanced + public void addHistoricalData(final UUID uuid, final EpochTime epochTime, final byte[] data) + { + this.addHistoricalData(uuid, data, epochTime); + } + + /** + * Same as {@link #addHistoricalData(UUID, byte[], EpochTime)} but uses {@link System#currentTimeMillis()} for the timestamp. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void addHistoricalData(final UUID uuid, final byte[] data) + { + enforceMainThread(); + + if( isNull() ) return; + + m_historicalDataMngr.add_single(uuid, data, new EpochTime(), BleNodeConfig.HistoricalDataLogFilter.Source.SINGLE_MANUAL_ADDITION); + } + + /** + * Same as {@link #addHistoricalData(UUID, byte[], EpochTime)}. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void addHistoricalData(final UUID uuid, final HistoricalData historicalData) + { + enforceMainThread(); + + if( isNull() ) return; + + m_historicalDataMngr.add_single(uuid, historicalData, BleNodeConfig.HistoricalDataLogFilter.Source.SINGLE_MANUAL_ADDITION); + } + + /** + * Same as {@link #addHistoricalData(UUID, byte[], EpochTime)} but for large datasets this is more efficient when writing to disk. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void addHistoricalData(final UUID uuid, final Iterator<HistoricalData> historicalData) + { + enforceMainThread(); + + if( isNull() ) return; + + m_historicalDataMngr.add_multiple(uuid, historicalData); + } + + /** + * Same as {@link #addHistoricalData(UUID, byte[], EpochTime)} but for large datasets this is more efficient when writing to disk. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void addHistoricalData(final UUID uuid, final List<HistoricalData> historicalData) + { + addHistoricalData(uuid, historicalData.iterator()); + } + + /** + * Same as {@link #addHistoricalData(UUID, byte[], EpochTime)} but for large datasets this is more efficient when writing to disk. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void addHistoricalData(final UUID uuid, final ForEach_Returning<HistoricalData> historicalData) + { + enforceMainThread(); + + if( isNull() ) return; + + m_historicalDataMngr.add_multiple(uuid, historicalData); + } + + /** + * Returns whether the device is in any of the provided states. + * + * @see #is(BleDeviceState) + */ + public boolean isAny(BleDeviceState... states) + { + for (int i = 0; i < states.length; i++) + { + if (is(states[i])) return true; + } + + enforceMainThread(); + + return false; + } + + /** + * Returns whether the device is in all of the provided states. + * + * @see #isAny(BleDeviceState...) + */ + public boolean isAll(BleDeviceState... states) + { + for (int i = 0; i < states.length; i++) + { + if( !is(states[i]) ) return false; + } + + enforceMainThread(); + + return true; + } + + /** + * Convenience method to tell you whether a call to {@link #connect()} (or overloads) has a chance of succeeding. + * For example if the device is {@link BleDeviceState#CONNECTING_OVERALL} or {@link BleDeviceState#INITIALIZED} + * then this will return <code>false</code>. + */ + public boolean isConnectable() + { + if( isAny(BleDeviceState.INITIALIZED, BleDeviceState.CONNECTING_OVERALL) ) + { + return false; + } + else + { + return true; + } + } + + /** + * Returns whether the device is in the provided state. + * + * @see #isAny(BleDeviceState...) + */ + public boolean is(final BleDeviceState state) + { + return state.overlaps(getStateMask()); + } + + /** + * Returns <code>true</code> if there is any bitwise overlap between the provided value and {@link #getStateMask()}. + * + * @see #isAll(int) + */ + public boolean isAny(final int mask_BleDeviceState) + { + return (getStateMask() & mask_BleDeviceState) != 0x0; + } + + /** + * Returns <code>true</code> if there is complete bitwise overlap between the provided value and {@link #getStateMask()}. + * + * @see #isAny(int) + */ + public boolean isAll(final int mask_BleDeviceState) + { + return (getStateMask() & mask_BleDeviceState) == mask_BleDeviceState; + } + + /** + * Similar to {@link #is(BleDeviceState)} and {@link #isAny(BleDeviceState...)} but allows you to give a simple query + * made up of {@link BleDeviceState} and {@link Boolean} pairs. So an example would be + * <code>myDevice.is({@link BleDeviceState#CONNECTING}, true, {@link BleDeviceState#RECONNECTING_LONG_TERM}, false)</code>. + */ + public boolean is(Object... query) + { + return Utils_State.query(getStateMask(), query); + } + + boolean isAny_internal(BleDeviceState... states) + { + enforceMainThread(); + + for (int i = 0; i < states.length; i++) + { + if (is_internal(states[i])) + { + return true; + } + } + + return false; + } + + boolean is_internal(BleDeviceState state) + { + return state.overlaps(stateTracker().getState()); + } + + /** + * If {@link #is(BleDeviceState)} returns true for the given state (i.e. if + * the device is in the given state) then this method will (a) return the + * amount of time that the device has been in the state. Otherwise, this + * will (b) return the amount of time that the device was *previously* in + * that state. Otherwise, if the device has never been in the state, it will + * (c) return 0.0 seconds. Case (b) might be useful for example for checking + * how long you <i>were</i> connected for after becoming + * {@link BleDeviceState#DISCONNECTED}, for analytics purposes or whatever. + */ + public Interval getTimeInState(BleDeviceState state) + { + enforceMainThread(); + + return Interval.millis(stateTracker_main().getTimeInState(state.ordinal())); + } + + /** + * Same as {@link #setName(String, UUID, BleDevice.ReadWriteListener)} but will not attempt to propagate the + * name change to the remote device. Only {@link #getName_override()} will be affected by this. + */ + public void setName(final String name) + { + setName(name, null, null); + } + + /** + * Same as {@link #setName(String, UUID, BleDevice.ReadWriteListener)} but you can use this + * if you don't care much whether the device name change actually successfully reaches + * the remote device. The write will be attempted regardless. + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent setName(final String name, final UUID characteristicUuid) + { + return setName(name, characteristicUuid, null); + } + + /** + * Sets the local name of the device and also attempts a {@link #write(java.util.UUID, byte[], BleDevice.ReadWriteListener)} + * using the given {@link UUID}. Further calls to {@link #getName_override()} will immediately reflect the name given here. + * Further calls to {@link #getName_native()}, {@link #getName_debug()} and {@link #getName_normalized()} will only reflect + * the name given here if the write is successful. It is somewhat assumed that doing this write will cause the remote device + * to use the new name given here for its device information service {@link Uuids#DEVICE_NAME}. + * If {@link BleDeviceConfig#saveNameChangesToDisk} is <code>true</code> then this name + * will always be returned for {@link #getName_override()}, even if you kill/restart the app. + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent setName(final String name, final UUID characteristicUuid, final ReadWriteListener listener) + { + enforceMainThread(); + + if( !isNull() ) + { + m_nativeWrapper.setName_override(name); + + final boolean saveToDisk = BleDeviceConfig.bool(conf_device().saveNameChangesToDisk, conf_mngr().saveNameChangesToDisk); + + getManager().m_diskOptionsMngr.saveName(getMacAddress(), name, saveToDisk); + } + + if( characteristicUuid != null ) + { + final ReadWriteListener listener_wrapper = new ReadWriteListener() + { + @Override public void onEvent(ReadWriteEvent e) + { + if( e.wasSuccess() ) + { + m_nativeWrapper.updateNativeName(name); + } + + invokeReadWriteCallback(listener, e); + } + }; + + return this.write(characteristicUuid, name.getBytes(), listener_wrapper); + } + else + { + return NULL_READWRITE_EVENT(); + } + } + + /** + * Clears any name previously provided through {@link #setName(String)} or overloads. + */ + public void clearName() + { + enforceMainThread(); + + m_nativeWrapper.clearName_override(); + getManager().m_diskOptionsMngr.clearName(getMacAddress()); + } + + /** + * By default returns the same value as {@link #getName_native()}. + * If you call {@link #setName(String)} (or overloads) + * then calling this will return the same string provided in that setter. + */ + public @Nullable(Prevalence.NEVER) String getName_override() + { + enforceMainThread(); + + return m_nativeWrapper.getName_override(); + } + + /** + * Returns the raw, unmodified device name retrieved from the stack. + * Equivalent to {@link BluetoothDevice#getName()}. It's suggested to use + * {@link #getName_normalized()} if you're using the name to match/filter + * against something, e.g. an entry in a config file or for advertising + * filtering. + */ + public @Nullable(Prevalence.NEVER) String getName_native() + { + enforceMainThread(); + + return m_nativeWrapper.getNativeName(); + } + + /** + * The name retrieved from {@link #getName_native()} can change arbitrarily, + * like the last 4 of the MAC address can get appended sometimes, and spaces + * might get changed to underscores or vice-versa, caps to lowercase, etc. + * This may somehow be standard, to-the-spec behavior but to the newcomer + * it's confusing and potentially time-bomb-bug-inducing, like if you're + * using device name as a filter for something and everything's working + * until one day your app is suddenly broken and you don't know why. This + * method is an attempt to normalize name behavior and always return the + * same name regardless of the underlying stack's whimsy. The target format + * is all lowercase and underscore-delimited with no trailing MAC address. + */ + public @Nullable(Prevalence.NEVER) String getName_normalized() + { + enforceMainThread(); + + return m_nativeWrapper.getNormalizedName(); + } + + /** + * Returns a name useful for logging and debugging. As of this writing it is + * {@link #getName_normalized()} plus the last four digits of the device's + * MAC address from {@link #getMacAddress()}. {@link BleDevice#toString()} + * uses this. + */ + public @Nullable(Prevalence.NEVER) String getName_debug() + { + enforceMainThread(); + + return m_nativeWrapper.getDebugName(); + } + + /** + * Provides just-in-case lower-level access to the native device instance. + * <br><br> + * WARNING: Be careful with this. It generally should not be needed. Only + * invoke "mutators" of this object in times of extreme need. + * <br><br> + * NOTE: If you are forced to use this please contact library developers to + * discuss possible feature addition or report bugs. + */ + @Advanced + public @Nullable(Prevalence.RARE) BluetoothDevice getNative() + { + enforceMainThread(); + + return m_nativeWrapper.getDevice(); + } + + /** + * See pertinent warning for {@link #getNative()}. Generally speaking, this + * will return <code>null</code> if the BleDevice is {@link BleDeviceState#DISCONNECTED}. + * <br><br> + * NOTE: If you are forced to use this please contact library developers to + * discuss possible feature addition or report bugs. + */ + @Advanced + public @Nullable(Prevalence.NORMAL) BluetoothGatt getNativeGatt() + { + enforceMainThread(); + + return m_nativeWrapper.getGatt(); + } + + /** + * Returns the MAC address of this device, as retrieved from the native stack or provided through {@link BleManager#newDevice(String)} (or overloads thereof). + * You may treat this as the unique ID of the device, suitable as a key in a {@link java.util.HashMap}, {@link android.content.SharedPreferences}, etc. + */ + @Override public @Nullable(Prevalence.NEVER) String getMacAddress() + { + return m_nativeWrapper.getAddress(); + } + + /** + * Same as {@link #bond()} but you can pass a listener to be notified of the details behind success or failure. + * + * @return (same as {@link #bond()}). + */ + public @Nullable(Prevalence.NEVER) BondListener.BondEvent bond(BondListener listener) + { + enforceMainThread(); + + if (listener != null) + { + setListener_Bond(listener); + } + + if (isNull()) + { + final BondListener.BondEvent event = m_bondMngr.invokeCallback(BondListener.Status.NULL_DEVICE, BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE, State.ChangeIntent.INTENTIONAL); + + return event; + } + + if (isAny(BONDING, BONDED)) + { + final BondListener.BondEvent event = m_bondMngr.invokeCallback(BondListener.Status.ALREADY_BONDING_OR_BONDED, BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE, State.ChangeIntent.INTENTIONAL); + + return event; + } + + bond_justAddTheTask(E_TransactionLockBehavior.PASSES); + + stateTracker_updateBoth(E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BONDING, true, UNBONDED, false); + + return NULL_BOND_EVENT(); + } + + /** + * Attempts to create a bond. Analogous to {@link BluetoothDevice#createBond()} This is also sometimes called + * pairing, but while pairing and bonding are closely related, they are technically different from each other. + * <br><br> + * Bonding is required for reading/writing encrypted characteristics and, + * anecdotally, may improve connection stability in some cases. This is + * mentioned here and there on Internet threads complaining about Android + * BLE so take it with a grain of salt because it has been directly observed + * by us to degrade stability in some cases as well. + * + * @return (see similar comment for return value of {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + * + * @see #unbond() + */ + public @Nullable(Prevalence.NEVER) BondListener.BondEvent bond() + { + return this.bond(null); + } + + /** + * Opposite of {@link #bond()}. + * + * @return <code>true</code> if successfully {@link BleDeviceState#UNBONDED}, <code>false</code> if already {@link BleDeviceState#UNBONDED}. + * + * @see #bond() + */ + public boolean unbond() + { + enforceMainThread(); + + final boolean alreadyUnbonded = is(UNBONDED); + + unbond_internal(null, BondListener.Status.CANCELLED_FROM_UNBOND); + + return !alreadyUnbonded; + } + + /** + * Starts a connection process, or does nothing if already {@link BleDeviceState#CONNECTED} or {@link BleDeviceState#CONNECTING}. + * Use {@link #setListener_ConnectionFail(ConnectionFailListener)} and {@link #setListener_State(StateListener)} to receive callbacks for + * progress and errors. + * + * @return (same as {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + */ + public @Nullable(Prevalence.NEVER) ConnectionFailListener.ConnectionFailEvent connect() + { + return connect((StateListener) null); + } + + /** + * Same as {@link #connect()} but calls {@link #setListener_State(StateListener)} for you. + * + * @return (same as {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + */ + public @Nullable(Prevalence.NEVER) ConnectionFailListener.ConnectionFailEvent connect(StateListener stateListener) + { + return connect(stateListener, null); + } + + /** + * Same as {@link #connect()} but calls {@link #setListener_ConnectionFail(ConnectionFailListener)} for you. + * + * @return (same as {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + */ + public @Nullable(Prevalence.NEVER) ConnectionFailListener.ConnectionFailEvent connect(ConnectionFailListener failListener) + { + return connect((StateListener)null, failListener); + } + + /** + * Same as {@link #connect()} but calls {@link #setListener_State(StateListener)} and + * {@link #setListener_ConnectionFail(ConnectionFailListener)} for you. + * + * @return (same as {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + */ + public @Nullable(Prevalence.NEVER) ConnectionFailListener.ConnectionFailEvent connect(StateListener stateListener, ConnectionFailListener failListener) + { + return connect(null, null, stateListener, failListener); + } + + /** + * Same as {@link #connect(BleDevice.StateListener, BleDevice.ConnectionFailListener)} + * with reversed arguments. + */ + public @Nullable(Prevalence.NEVER) ConnectionFailListener.ConnectionFailEvent connect(ConnectionFailListener failListener, StateListener stateListener) + { + return connect(stateListener, failListener); + } + + /** + * Same as {@link #connect()} but provides a hook for the app to do some kind of authentication handshake if it wishes. This is popular with + * commercial BLE devices where you don't want hobbyists or competitors using your devices for nefarious purposes - like releasing a better application + * for your device than you ;-). Usually the characteristics read/written inside this transaction are encrypted and so one way or another will require + * the device to become {@link BleDeviceState#BONDED}. This should happen automatically for you, i.e you shouldn't need to call {@link #bond()} yourself. + * + * @return (same as {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + * + * @see #connect() + * @see BleDeviceState#AUTHENTICATING + * @see BleDeviceState#AUTHENTICATED + */ + public @Nullable(Prevalence.NEVER) ConnectionFailListener.ConnectionFailEvent connect(BleTransaction.Auth authenticationTxn) + { + return connect(authenticationTxn, (StateListener) null); + } + + /** + * Same as {@link #connect(BleTransaction.Auth)} but calls {@link #setListener_State(StateListener)} for you. + * + * @return (same as {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + */ + public @Nullable(Prevalence.NEVER) ConnectionFailListener.ConnectionFailEvent connect(BleTransaction.Auth authenticationTxn, StateListener stateListener) + { + return connect(authenticationTxn, stateListener, (ConnectionFailListener) null); + } + + /** + * Same as {@link #connect(BleTransaction.Auth)} but calls + * {@link #setListener_State(StateListener)} and + * {@link #setListener_ConnectionFail(ConnectionFailListener)} for you. + * + * @return (same as {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + */ + public @Nullable(Prevalence.NEVER) ConnectionFailListener.ConnectionFailEvent connect(BleTransaction.Auth authenticationTxn, StateListener stateListener, ConnectionFailListener failListener) + { + return connect(authenticationTxn, null, stateListener, failListener); + } + + /** + * Same as {@link #connect()} but provides a hook for the app to do some kind of initialization before it's considered fully + * {@link BleDeviceState#INITIALIZED}. For example if you had a BLE-enabled thermometer you could use this transaction to attempt an initial + * temperature read before updating your UI to indicate "full" connection success, even though BLE connection itself already succeeded. + * + * @return (same as {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + * + * @see #connect() + * @see BleDeviceState#INITIALIZING + * @see BleDeviceState#INITIALIZED + */ + public @Nullable(Prevalence.NEVER) ConnectionFailListener.ConnectionFailEvent connect(BleTransaction.Init initTxn) + { + return connect(initTxn, (StateListener) null); + } + + /** + * Same as {@link #connect(BleTransaction.Init)} but calls {@link #setListener_State(StateListener)} for you. + * + * @return (same as {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + */ + public @Nullable(Prevalence.NEVER) ConnectionFailListener.ConnectionFailEvent connect(BleTransaction.Init initTxn, StateListener stateListener) + { + return connect(initTxn, stateListener, (ConnectionFailListener) null); + } + + /** + * Yet another overload. + * + * @return (same as {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + */ + public @Nullable(Prevalence.NEVER) ConnectionFailListener.ConnectionFailEvent connect(BleTransaction.Auth authTxn, ConnectionFailListener connectionFailListener) + { + return connect(authTxn, (StateListener) null, connectionFailListener); + } + + /** + * Same as {@link #connect(BleTransaction.Init)} but calls {@link #setListener_State(StateListener)} and + * {@link #setListener_ConnectionFail(ConnectionFailListener)} for you. + * + * @return (same as {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + */ + public @Nullable(Prevalence.NEVER) ConnectionFailListener.ConnectionFailEvent connect(BleTransaction.Init initTxn, StateListener stateListener, ConnectionFailListener failListener) + { + return connect(null, initTxn, stateListener, failListener); + } + + /** + * Combination of {@link #connect(BleTransaction.Auth)} and {@link #connect(BleTransaction.Init)}. See those two methods for explanation. + * + * @return (same as {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + * + * @see #connect() + * @see #connect(BleTransaction.Auth) + * @see #connect(BleTransaction.Init) + */ + public @Nullable(Prevalence.NEVER) ConnectionFailListener.ConnectionFailEvent connect(BleTransaction.Auth authenticationTxn, BleTransaction.Init initTxn) + { + return connect(authenticationTxn, initTxn, (StateListener) null, (ConnectionFailListener) null); + } + + /** + * Same as {@link #connect(BleTransaction.Auth, BleTransaction.Init)} but calls {@link #setListener_State(StateListener)} for you. + * + * @return (same as {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + */ + public @Nullable(Prevalence.NEVER) ConnectionFailListener.ConnectionFailEvent connect(BleTransaction.Auth authenticationTxn, BleTransaction.Init initTxn, StateListener stateListener) + { + return connect(authenticationTxn, initTxn, stateListener, (ConnectionFailListener) null); + } + + /** + * Same as {@link #connect(BleTransaction.Auth, BleTransaction.Init)} but calls {@link #setListener_State(StateListener)} and + * {@link #setListener_ConnectionFail(ConnectionFailListener)} for you. + * + * @return If the attempt could not even "leave the gate" for some resaon, a valid {@link ConnectionFailEvent} is returned telling you why. Otherwise + * this method will still return a non-null instance but {@link ConnectionFailEvent#isNull()} will be <code>true</code>. + * <br><br> + * NOTE: your {@link ConnectionFailListener} will still be called even if this method early-outs. + * <br><br> + * TIP: You can use the return value as an optimization. Many apps will call this method (or its overloads) and throw up a spinner until receiving a + * callback to {@link ConnectionFailListener}. However if {@link ConnectionFailEvent#isNull()} for the return value is <code>false</code>, meaning + * the connection attempt couldn't even start for some reason, then you don't have to throw up the spinner in the first place. + */ + public @Nullable(Prevalence.NEVER) ConnectionFailListener.ConnectionFailEvent connect(BleTransaction.Auth authenticationTxn, BleTransaction.Init initTxn, StateListener stateListener, ConnectionFailListener failListener) + { + enforceMainThread(); + + if (stateListener != null) + { + setListener_State(stateListener); + } + + if (failListener != null) + { + setListener_ConnectionFail(failListener); + } + + m_connectionFailMngr.onExplicitConnectionStarted(); + + final ConnectionFailListener.ConnectionFailEvent info_earlyOut = connect_earlyOut(); + + if (info_earlyOut != null ) return info_earlyOut; + + m_lastConnectOrDisconnectWasUserExplicit = true; + + if (isAny(CONNECTED, CONNECTING, CONNECTING_OVERALL)) + { + //--- DRK > Making a judgement call that an explicit connect call here means we bail out of the long term reconnect state. + stateTracker_main().remove(RECONNECTING_LONG_TERM, E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + + final ConnectionFailListener.ConnectionFailEvent info_alreadyConnected = ConnectionFailListener.ConnectionFailEvent.EARLY_OUT(this, Status.ALREADY_CONNECTING_OR_CONNECTED); + + m_connectionFailMngr.invokeCallback(info_alreadyConnected); + + return info_alreadyConnected; + } + + connect_private(authenticationTxn, initTxn, /* isReconnect= */false); + + return NULL_CONNECTIONFAIL_INFO(); + } + + /** + * Disconnects from a connected device or does nothing if already {@link BleDeviceState#DISCONNECTED}. You can call this at any point + * during the connection process as a whole, during reads and writes, during transactions, whenever, and the device will cleanly cancel all ongoing + * operations. This method will also bring the device out of the {@link BleDeviceState#RECONNECTING_LONG_TERM} state. + * + * @return <code>true</code> if this call "had an effect", such as if the device was previously {@link BleDeviceState#RECONNECTING_LONG_TERM}, + * {@link BleDeviceState#CONNECTING_OVERALL}, or {@link BleDeviceState#INITIALIZED} + * + * @see ConnectionFailListener.Status#EXPLICIT_DISCONNECT + */ + public boolean disconnect() + { + return disconnect_private(Status.EXPLICIT_DISCONNECT); + } + + /** + * Same as {@link #disconnect()} but this call roughly simulates the disconnect as if it's because of the remote device going down, going out of range, etc. + * For example {@link #getLastDisconnectIntent()} will be {@link com.idevicesinc.sweetblue.utils.State.ChangeIntent#UNINTENTIONAL} instead of + * {@link com.idevicesinc.sweetblue.utils.State.ChangeIntent#INTENTIONAL}. + * <br><br> + * If the device is currently {@link BleDeviceState#CONNECTING_OVERALL} then your + * {@link BleDevice.ConnectionFailListener#onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)} + * implementation will be called with {@link ConnectionFailListener.Status#ROGUE_DISCONNECT}. + * <br><br> + * NOTE: One major difference between this and an actual remote disconnect is that this will not cause the device to enter + * {@link BleDeviceState#RECONNECTING_SHORT_TERM} or {@link BleDeviceState#RECONNECTING_LONG_TERM}. + */ + public boolean disconnect_remote() + { + return disconnect_private(Status.ROGUE_DISCONNECT); + } + + private boolean disconnect_private(final Status status) + { + enforceMainThread(); + + if (isNull()) return false; + + final boolean alreadyDisconnected = is(DISCONNECTED); + final boolean reconnecting_longTerm = is(RECONNECTING_LONG_TERM); + + if( status == Status.EXPLICIT_DISCONNECT ) + { + clearForExplicitDisconnect(); + } + + disconnectWithReason(/*priority=*/null, status, Timing.NOT_APPLICABLE, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE, NULL_READWRITE_EVENT()); + + return !alreadyDisconnected || reconnecting_longTerm; + } + + private void clearForExplicitDisconnect() + { + m_pollMngr.clear(); + clearMtu(); + } + + /** + * Convenience method that calls {@link BleManager#undiscover(BleDevice)}. + * + * @return <code>true</code> if the device was successfully {@link BleDeviceState#UNDISCOVERED}, <code>false</code> if BleDevice isn't known to the {@link BleManager}. + * + * @see BleManager#undiscover(BleDevice) + */ + public boolean undiscover() + { + enforceMainThread(); + + if (isNull()) return false; + + return getManager().undiscover(this); + } + + /** + * Convenience forwarding of {@link BleManager#clearSharedPreferences(String)}. + * + * @see BleManager#clearSharedPreferences(BleDevice) + */ + public void clearSharedPreferences() + { + enforceMainThread(); + + getManager().clearSharedPreferences(this); + } + + /** + * First checks referential equality and if <code>false</code> checks + * equality of {@link #getMacAddress()}. Note that ideally this method isn't + * useful to you and never returns true (besides the identity case, which + * isn't useful to you). Otherwise it probably means your app is holding on + * to old references that have been undiscovered, and this may be a bug or + * bad design decision in your code. This library will (well, should) never + * hold references to two devices such that this method returns true for them. + */ + public boolean equals(@Nullable(Prevalence.NORMAL) final BleDevice device_nullable) + { + enforceMainThread(); + + if (device_nullable == null) return false; + if (device_nullable == this) return true; + if (device_nullable.getNative() == null || this.getNative() == null) return false; + if( this.isNull() && device_nullable.isNull() ) return true; + + return device_nullable.getNative().equals(this.getNative()); + } + + /** + * Returns {@link #equals(BleDevice)} if object is an instance of {@link BleDevice}. Otherwise calls super. + * + * @see BleDevice#equals(BleDevice) + */ + @Override public boolean equals(@Nullable(Prevalence.NORMAL) final Object object_nullable) + { + enforceMainThread(); + + if( object_nullable == null ) return false; + + if (object_nullable instanceof BleDevice) + { + BleDevice object_cast = (BleDevice) object_nullable; + + return this.equals(object_cast); + } + + return false; + } + + /** + * Starts a periodic read of a particular characteristic. Use this wherever you can in place of {@link #enableNotify(UUID, ReadWriteListener)}. One + * use case would be to periodically read wind speed from a weather device. You *could* develop your device firmware to send notifications to the app + * only when the wind speed changes, but Android has observed stability issues with notifications, so use them only when needed. + * <br><br> + * TIP: You can call this method when the device is in any {@link BleDeviceState}, even {@link BleDeviceState#DISCONNECTED}. + * + * @see #startChangeTrackingPoll(UUID, Interval, ReadWriteListener) + * @see #enableNotify(UUID, ReadWriteListener) + * @see #stopPoll(UUID, ReadWriteListener) + */ + public void startPoll(final UUID characteristicUuid, final Interval interval, final ReadWriteListener listener) + { + enforceMainThread(); + + final UUID serviceUuid = null; + + m_pollMngr.startPoll(serviceUuid, characteristicUuid, Interval.secs(interval), listener, /*trackChanges=*/false, /*usingNotify=*/false); + } + + /** + * Same as {@link #startPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)} but without a listener. + * <br><br> + * See {@link #read(java.util.UUID)} for an explanation of why you would do this. + */ + public void startPoll(final UUID characteristicUuid, final Interval interval) + { + startPoll(characteristicUuid, interval, null); + } + + /** + * Overload of {@link #startPoll(UUID, Interval, ReadWriteListener)} for when you have characteristics with identical uuids under different services. + */ + public void startPoll(final UUID serviceUuid, final UUID characteristicUuid, final Interval interval, final ReadWriteListener listener) + { + enforceMainThread(); + + m_pollMngr.startPoll(serviceUuid, characteristicUuid, Interval.secs(interval), listener, /*trackChanges=*/false, /*usingNotify=*/false); + } + + /** + * Overload of {@link #startPoll(UUID, Interval)} for when you have characteristics with identical uuids under different services. + */ + public void startPoll(final UUID serviceUuid, final UUID characteristicUuid, final Interval interval) + { + startPoll(serviceUuid, characteristicUuid, interval, null); + } + + /** + * Convenience to call {@link #startPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)} for multiple + * characteristic uuids all at once. + */ + public void startPoll(final UUID[] charUuids, final Interval interval, final ReadWriteListener listener) + { + for( int i = 0; i < charUuids.length; i++ ) + { + startPoll(charUuids[i], interval, listener); + } + } + + /** + * Same as {@link #startPoll(java.util.UUID[], Interval, BleDevice.ReadWriteListener)} but without a listener. + * <br><br> + * See {@link #read(java.util.UUID)} for an explanation of why you would do this. + */ + public void startPoll(final UUID[] charUuids, final Interval interval) + { + startPoll(charUuids, interval, null); + } + + /** + * Convenience to call {@link #startPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)} for multiple + * characteristic uuids all at once. + */ + public void startPoll(final Iterable<UUID> charUuids, final Interval interval, final ReadWriteListener listener) + { + final Iterator<UUID> iterator = charUuids.iterator(); + + while( iterator.hasNext() ) + { + final UUID ith = iterator.next(); + + startPoll(ith, interval, listener); + } + } + + /** + * Same as {@link #startPoll(java.util.UUID[], Interval, BleDevice.ReadWriteListener)} but without a listener. + * <br><br> + * See {@link #read(java.util.UUID)} for an explanation of why you would do this. + */ + public void startPoll(final Iterable<UUID> charUuids, final Interval interval) + { + startPoll(charUuids, interval, null); + } + + /** + * Convenience to call {@link #startChangeTrackingPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)} for multiple + * characteristic uuids all at once. + */ + public void startChangeTrackingPoll(final UUID[] charUuids, final Interval interval, final ReadWriteListener listener) + { + for( int i = 0; i < charUuids.length; i++ ) + { + startChangeTrackingPoll(charUuids[i], interval, listener); + } + } + + /** + * Same as {@link #startChangeTrackingPoll(java.util.UUID[], Interval, BleDevice.ReadWriteListener)} but without a listener. + * <br><br> + * See {@link #read(java.util.UUID)} for an explanation of why you would do this. + */ + public void startChangeTrackingPoll(final UUID[] charUuids, final Interval interval) + { + startChangeTrackingPoll(charUuids, interval, null); + } + + /** + * Convenience to call {@link #startChangeTrackingPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)} for multiple + * characteristic uuids all at once. + */ + public void startChangeTrackingPoll(final Iterable<UUID> charUuids, final Interval interval, final ReadWriteListener listener) + { + final Iterator<UUID> iterator = charUuids.iterator(); + + while( iterator.hasNext() ) + { + final UUID ith = iterator.next(); + + startChangeTrackingPoll(ith, interval, listener); + } + } + + /** + * Same as {@link #startChangeTrackingPoll(java.util.UUID[], Interval, BleDevice.ReadWriteListener)} but without a listener. + * <br><br> + * See {@link #read(java.util.UUID)} for an explanation of why you would do this. + */ + public void startChangeTrackingPoll(final Iterable<UUID> charUuids, final Interval interval) + { + startChangeTrackingPoll(charUuids, interval, null); + } + + /** + * Similar to {@link #startPoll(UUID, Interval, ReadWriteListener)} but only + * invokes a callback when a change in the characteristic value is detected. + * Use this in preference to {@link #enableNotify(UUID, ReadWriteListener)} if possible, + * due to instability issues (rare, but still) with notifications on Android. + * <br><br> + * TIP: You can call this method when the device is in any {@link BleDeviceState}, even {@link BleDeviceState#DISCONNECTED}. + */ + public void startChangeTrackingPoll(final UUID characteristicUuid, final Interval interval, final ReadWriteListener listener) + { + enforceMainThread(); + + final UUID serviceUuid = null; + + m_pollMngr.startPoll(serviceUuid, characteristicUuid, Interval.secs(interval), listener, /*trackChanges=*/true, /*usingNotify=*/false); + } + + /** + * Overload of {@link #startChangeTrackingPoll(UUID, Interval, ReadWriteListener)} for when you have characteristics with identical uuids under different services. + */ + public void startChangeTrackingPoll(final UUID serviceUuid, final UUID characteristicUuid, final Interval interval, final ReadWriteListener listener) + { + enforceMainThread(); + + m_pollMngr.startPoll(serviceUuid, characteristicUuid, Interval.secs(interval), listener, /*trackChanges=*/true, /*usingNotify=*/false); + } + + /** + * Stops a poll(s) started by either {@link #startPoll(UUID, Interval, ReadWriteListener)} or + * {@link #startChangeTrackingPoll(UUID, Interval, ReadWriteListener)}. This will stop all polls matching the provided parameters. + * + * @see #startPoll(UUID, Interval, ReadWriteListener) + * @see #startChangeTrackingPoll(UUID, Interval, ReadWriteListener) + */ + public void stopPoll(final UUID characteristicUuid, final ReadWriteListener listener) + { + final UUID serviceUuid = null; + + stopPoll_private(serviceUuid, characteristicUuid, null, listener); + } + + /** + * Same as {@link #stopPoll(java.util.UUID, BleDevice.ReadWriteListener)} but without the listener. + */ + public void stopPoll(final UUID characteristicUuid) + { + stopPoll(characteristicUuid, (ReadWriteListener) null); + } + + /** + * Same as {@link #stopPoll(UUID, ReadWriteListener)} but with added filtering for the poll {@link Interval}. + */ + public void stopPoll(final UUID characteristicUuid, final Interval interval, final ReadWriteListener listener) + { + final UUID serviceUuid = null; + + stopPoll_private(serviceUuid, characteristicUuid, interval != null ? interval.secs() : null, listener); + } + + /** + * Same as {@link #stopPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)} but without the listener. + */ + public void stopPoll(final UUID characteristicUuid, final Interval interval) + { + final UUID serviceUuid = null; + + stopPoll_private(serviceUuid, characteristicUuid, interval != null ? interval.secs() : null, null); + } + + /** + * Overload of {@link #stopPoll(UUID, ReadWriteListener)} for when you have characteristics with identical uuids under different services. + */ + public void stopPoll(final UUID serviceUuid, final UUID characteristicUuid, final ReadWriteListener listener) + { + stopPoll_private(serviceUuid, characteristicUuid, null, listener); + } + + /** + * Overload of {@link #stopPoll(UUID)} for when you have characteristics with identical uuids under different services. + */ + public void stopPoll(final UUID serviceUuid, final UUID characteristicUuid) + { + stopPoll(serviceUuid, characteristicUuid, (ReadWriteListener) null); + } + + /** + * Overload of {@link #stopPoll(UUID, Interval, ReadWriteListener)} for when you have characteristics with identical uuids under different services. + */ + public void stopPoll(final UUID serviceUuid, final UUID characteristicUuid, final Interval interval, final ReadWriteListener listener) + { + stopPoll_private(serviceUuid, characteristicUuid, interval != null ? interval.secs() : null, listener); + } + + /** + * Overload of {@link #stopPoll(UUID, Interval)} for when you have characteristics with identical uuids under different services. + */ + public void stopPoll(final UUID serviceUuid, final UUID characteristicUuid, final Interval interval) + { + stopPoll_private(serviceUuid, characteristicUuid, interval != null ? interval.secs() : null, null); + } + + /** + * Calls {@link #stopPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)} multiple times for you. + */ + public void stopPoll(final UUID[] uuids, final Interval interval, final ReadWriteListener listener) + { + for( int i = 0; i < uuids.length; i++ ) + { + stopPoll(uuids[i], interval, listener); + } + } + + /** + * Calls {@link #stopPoll(java.util.UUID, Interval)} multiple times for you. + */ + public void stopPoll(final UUID[] uuids, final Interval interval) + { + stopPoll(uuids, interval, null); + } + + /** + * Calls {@link #stopPoll(java.util.UUID)} multiple times for you. + */ + public void stopPoll(final UUID[] uuids) + { + stopPoll(uuids, null, null); + } + + /** + * Calls {@link #stopPoll(java.util.UUID, Interval, BleDevice.ReadWriteListener)} multiple times for you. + */ + public void stopPoll(final Iterable<UUID> uuids, final Interval interval, final ReadWriteListener listener) + { + final Iterator<UUID> iterator = uuids.iterator(); + + while( iterator.hasNext() ) + { + final UUID ith = iterator.next(); + + stopPoll(ith, interval, listener); + } + } + + /** + * Calls {@link #stopPoll(java.util.UUID, Interval)} multiple times for you. + */ + public void stopPoll(final Iterable<UUID> uuids, final Interval interval) + { + stopPoll(uuids, interval, null); + } + + /** + * Calls {@link #stopPoll(java.util.UUID)} multiple times for you. + */ + public void stopPoll(final Iterable<UUID> uuids) + { + stopPoll(uuids, null, null); + } + + + /** + * Writes to the device without a callback. + * + * @return (same as {@link #write(UUID, UUID, byte[])}). + * + * @see #write(UUID, UUID, byte[]) + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent write(WriteBuilder writeBuilder) { + return write(writeBuilder.serviceUUID, writeBuilder.charUUID, writeBuilder.data); + } + + /** + * Writes to the device with a callback. + * + * @return (same as {@link #write(UUID, UUID, byte[], ReadWriteListener)}). + * + * @see #write(UUID, UUID, byte[], ReadWriteListener) + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent write(WriteBuilder writeBuilder, ReadWriteListener listener) { + return write(writeBuilder.serviceUUID, writeBuilder.charUUID, writeBuilder.data, listener); + } + + /** + * Writes to the device without a callback. + * + * @return (same as {@link #write(UUID, byte[], ReadWriteListener)}). + * + * @see #write(UUID, byte[], ReadWriteListener) + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent write(final UUID characteristicUuid, final byte[] data) + { + return this.write(characteristicUuid, new PresentData(data), (ReadWriteListener) null); + } + + /** + * Writes to the device with a callback. + * + * @return (see similar comment for return value of {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + * + * @see #write(UUID, byte[]) + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent write(final UUID characteristicUuid, final byte[] data, final ReadWriteListener listener) + { + final UUID serviceUuid = null; + + return write(serviceUuid, characteristicUuid, new PresentData(data), listener); + } + + /** + * Overload of {@link #write(UUID, byte[])} for when you have characteristics with identical uuids under different services. + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent write(final UUID serviceUuid, final UUID characteristicUuid, final byte[] data) + { + return this.write(serviceUuid, characteristicUuid, new PresentData(data), (ReadWriteListener) null); + } + + /** + * Overload of {@link #write(UUID, byte[], ReadWriteListener)} for when you have characteristics with identical uuids under different services. + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent write(final UUID serviceUuid, final UUID characteristicUuid, final byte[] data, final ReadWriteListener listener) + { + return write(serviceUuid, characteristicUuid, new PresentData(data), listener); + } + + /** + * Writes to the device without a callback. + * + * @return (same as {@link #write(UUID, FutureData, ReadWriteListener)}). + * + * @see #write(UUID, FutureData, ReadWriteListener) + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent write(final UUID characteristicUuid, final FutureData futureData) + { + return this.write(characteristicUuid, futureData, (ReadWriteListener) null); + } + + /** + * Writes to the device with a callback. + * + * @return (see similar comment for return value of {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + * + * @see #write(UUID, FutureData) + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent write(final UUID characteristicUuid, final FutureData futureData, final ReadWriteListener listener) + { + final UUID serviceUuid = null; + + return write(serviceUuid, characteristicUuid, futureData, listener); + } + + /** + * Overload of {@link #write(UUID, FutureData)} for when you have characteristics with identical uuids under different services. + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent write(final UUID serviceUuid, final UUID characteristicUuid, final FutureData futureData) + { + return this.write(serviceUuid, characteristicUuid, futureData, (ReadWriteListener) null); + } + + /** + * Overload of {@link #write(UUID, FutureData, ReadWriteListener)} for when you have characteristics with identical uuids under different services. + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent write(final UUID serviceUuid, final UUID characteristicUuid, final FutureData futureData, final ReadWriteListener listener) + { + return write_internal(serviceUuid, characteristicUuid, Uuids.INVALID, futureData, listener); + } + + /** + * Writes to the device descriptor without a callback. + * + * @return (same as {@link #writeDescriptor(UUID, byte[], ReadWriteListener)}). + * + * @see #writeDescriptor(UUID, byte[], ReadWriteListener) + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent writeDescriptor(final UUID descriptorUuid, final byte[] data) + { + return writeDescriptor(descriptorUuid, data, (ReadWriteListener) null); + } + + /** + * Writes to the device descriptor with a callback. + * + * @return (see similar comment for return value of {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + * + * @see #writeDescriptor(UUID, byte[]) + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent writeDescriptor(final UUID descriptorUuid, final byte[] data, final ReadWriteListener listener) + { + final UUID characteristicUuid = null; + + return writeDescriptor(characteristicUuid, descriptorUuid, data, listener); + } + + /** + * Overload of {@link #writeDescriptor(UUID, byte[])} for when you have descriptors with identical uuids under different services. + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent writeDescriptor(final UUID characteristicUuid, final UUID descriptorUuid, final byte[] data) + { + return writeDescriptor(characteristicUuid, descriptorUuid, data, (ReadWriteListener) null); + } + + /** + * Overload of {@link #writeDescriptor(UUID, byte[], ReadWriteListener)} for when you have descriptors with identical uuids under different characteristics. + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent writeDescriptor(final UUID characteristicUuid, final UUID descriptorUuid, final byte[] data, final ReadWriteListener listener) + { + final UUID serviceUuid = null; + + return writeDescriptor(serviceUuid, characteristicUuid, descriptorUuid, data, listener); + } + + /** + * Overload of {@link #writeDescriptor(UUID, byte[], ReadWriteListener)} for when you have descriptors with identical uuids under different characteristics and/or services. + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent writeDescriptor(final UUID serviceUuid, final UUID characteristicUuid, final UUID descriptorUuid, final byte[] data, final ReadWriteListener listener) + { + return writeDescriptor(serviceUuid, characteristicUuid, descriptorUuid, new PresentData(data), listener); + } + + /** + * Writes to the device descriptor without a callback. + * + * @return (same as {@link #writeDescriptor(UUID, byte[], ReadWriteListener)}). + * + * @see #writeDescriptor(UUID, byte[], ReadWriteListener) + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent writeDescriptor(final UUID descriptorUuid, final FutureData futureData) + { + return writeDescriptor(descriptorUuid, futureData, (ReadWriteListener) null); + } + + /** + * Writes to the device with a callback. + * + * @return (see similar comment for return value of {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + * + * @see #writeDescriptor(UUID, byte[]) + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent writeDescriptor(final UUID descriptorUuid, final FutureData futureData, final ReadWriteListener listener) + { + final UUID characteristicUuid = null; + + return writeDescriptor(characteristicUuid, descriptorUuid, futureData, listener); + } + + /** + * Overload of {@link #writeDescriptor(UUID, byte[])} for when you have descriptors with identical uuids under different services. + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent writeDescriptor(final UUID characteristicUuid, final UUID descriptorUuid, final FutureData futureData) + { + return writeDescriptor(characteristicUuid, descriptorUuid, futureData, (ReadWriteListener) null); + } + + /** + * Overload of {@link #writeDescriptor(UUID, byte[], ReadWriteListener)} for when you have descriptors with identical uuids under different characteristics. + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent writeDescriptor(final UUID characteristicUuid, final UUID descriptorUuid, final FutureData futureData, final ReadWriteListener listener) + { + return writeDescriptor(characteristicUuid, descriptorUuid, futureData, listener); + } + + /** + * Overload of {@link #writeDescriptor(UUID, byte[], ReadWriteListener)} for when you have descriptors with identical uuids under different characteristics and/or services. + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent writeDescriptor(final UUID serviceUuid, final UUID characteristicUuid, final UUID descriptorUuid, final FutureData futureData, final ReadWriteListener listener) + { + return write_internal(serviceUuid, characteristicUuid, descriptorUuid, futureData, listener); + } + + /** + * Reads from the device without a callback - the callback will still be sent through any listeners provided + * to either {@link BleDevice#setListener_ReadWrite(ReadWriteListener)} or {@link BleManager#setListener_ReadWrite(com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)}. + * + * @return (same as {@link #readDescriptor(UUID, BleDevice.ReadWriteListener)}). + * + * @see #readDescriptor(UUID, ReadWriteListener) + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent readDescriptor(final UUID descriptorUuid) + { + return readDescriptor(descriptorUuid, (ReadWriteListener) null); + } + + /** + * Reads from the device with a callback. + * + * @return (see similar comment for return value of {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + * + * @see #readDescriptor(UUID) + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent readDescriptor(final UUID descriptorUuid, final ReadWriteListener listener) + { + final UUID characteristicUuid = null; + + return readDescriptor(characteristicUuid, descriptorUuid, listener); + } + + /** + * Overload of {@link #readDescriptor(UUID)} for when you have descriptors with identical uuids under different services. + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent readDescriptor(final UUID characteristicUuid, final UUID descriptorUuid) + { + return readDescriptor(characteristicUuid, descriptorUuid, (ReadWriteListener) null); + } + + /** + * Overload of {@link #readDescriptor(UUID, ReadWriteListener)} for when you have descriptors with identical uuids under different characteristics. + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent readDescriptor(final UUID characteristicUuid, final UUID descriptorUuid, final ReadWriteListener listener) + { + return readDescriptor(characteristicUuid, descriptorUuid, listener); + } + + /** + * Overload of {@link #readDescriptor(UUID, ReadWriteListener)} for when you have descriptors with identical uuids under different characteristics and/or services. + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent readDescriptor(final UUID serviceUuid, final UUID characteristicUuid, final UUID descriptorUuid) + { + return readDescriptor(serviceUuid, characteristicUuid, descriptorUuid, null); + } + + /** + * Overload of {@link #readDescriptor(UUID, ReadWriteListener)} for when you have descriptors with identical uuids under different characteristics and/or services. + */ + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent readDescriptor(final UUID serviceUuid, final UUID characteristicUuid, final UUID descriptorUuid, final ReadWriteListener listener) + { + return read_internal(serviceUuid, characteristicUuid, descriptorUuid, Type.READ, listener); + } + + /** + * Same as {@link #readRssi(ReadWriteListener)} but use this method when you don't much care when/if the RSSI is actually updated. + * + * @return (same as {@link #readRssi(ReadWriteListener)}). + */ + public ReadWriteListener.ReadWriteEvent readRssi() + { + return readRssi(null); + } + + /** + * Wrapper for {@link BluetoothGatt#readRemoteRssi()}. This will eventually update the value returned by {@link #getRssi()} but it is not + * instantaneous. When a new RSSI is actually received the given listener will be called. The device must be {@link BleDeviceState#CONNECTED} for + * this call to succeed. When the device is not {@link BleDeviceState#CONNECTED} then the value returned by + * {@link #getRssi()} will be automatically updated every time this device is discovered (or rediscovered) by a scan operation. + * + * @return (see similar comment for return value of {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + */ + public ReadWriteListener.ReadWriteEvent readRssi(final ReadWriteListener listener) + { + enforceMainThread(); + + final ReadWriteEvent earlyOutResult = serviceMngr_device().getEarlyOutEvent(Uuids.INVALID, Uuids.INVALID, Uuids.INVALID, EMPTY_FUTURE_DATA, Type.READ, ReadWriteListener.Target.RSSI); + + if (earlyOutResult != null) + { + invokeReadWriteCallback(listener, earlyOutResult); + + return earlyOutResult; + } + + readRssi_internal(Type.READ, listener); + + return NULL_READWRITE_EVENT(); + } + + /** + * Same as {@link #setConnectionPriority(BleConnectionPriority, ReadWriteListener)} but use this method when you don't much care when/if the connection priority is updated. + * + * @return (same as {@link #setConnectionPriority(BleConnectionPriority, ReadWriteListener)}). + */ + @Advanced + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent setConnectionPriority(final BleConnectionPriority connectionPriority) + { + return setConnectionPriority(connectionPriority, null); + } + + /** + * Wrapper for {@link BluetoothGatt#requestConnectionPriority(int)} which attempts to change the connection priority for a given connection. + * This will eventually update the value returned by {@link #getConnectionPriority()} but it is not + * instantaneous. When we receive confirmation from the native stack then this value will be updated. The device must be {@link BleDeviceState#CONNECTED} for + * this call to succeed. + * + * @see #setConnectionPriority(BleConnectionPriority, ReadWriteListener) + * @see #getConnectionPriority() + * + * @return (see similar comment for return value of {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + */ + @Advanced + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent setConnectionPriority(final BleConnectionPriority connectionPriority, final ReadWriteListener listener) + { + enforceMainThread(); + + return setConnectionPriority_private(connectionPriority, listener, getOverrideReadWritePriority()); + } + + private @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent setConnectionPriority_private(final BleConnectionPriority connectionPriority, final ReadWriteListener listener, final PE_TaskPriority taskPriority) + { + if( false == Utils.isLollipop() ) + { + final ReadWriteEvent e = new ReadWriteEvent(this, connectionPriority, ReadWriteListener.Status.ANDROID_VERSION_NOT_SUPPORTED, BleStatuses.GATT_STATUS_NOT_APPLICABLE, 0.0, 0.0, /*solicited=*/true); + + invokeReadWriteCallback(listener, e); + + return e; + } + else + { + final ReadWriteEvent earlyOutResult = serviceMngr_device().getEarlyOutEvent(Uuids.INVALID, Uuids.INVALID, Uuids.INVALID, EMPTY_FUTURE_DATA, Type.WRITE, ReadWriteListener.Target.CONNECTION_PRIORITY); + + if( earlyOutResult != null ) + { + invokeReadWriteCallback(listener, earlyOutResult); + + return earlyOutResult; + } + else + { + getTaskQueue().add(new P_Task_RequestConnectionPriority(this, listener, m_txnMngr.getCurrent(), taskPriority, connectionPriority)); + + return NULL_READWRITE_EVENT(); + } + } + } + + /** + * Returns the connection priority value set by {@link #setConnectionPriority(BleConnectionPriority, ReadWriteListener)}, or {@link BleDeviceConfig#DEFAULT_MTU_SIZE} if + * it was never set explicitly. + */ + @Advanced + public BleConnectionPriority getConnectionPriority() + { + return m_connectionPriority; + } + + /** + * Returns the "maximum transmission unit" value set by {@link #setMtu(int, ReadWriteListener)}, or {@link BleDeviceConfig#DEFAULT_MTU_SIZE} if + * it was never set explicitly. + */ + @Advanced + public int getMtu() + { + return m_mtu == 0 ? BleDeviceConfig.DEFAULT_MTU_SIZE : m_mtu; + } + + /** + * Same as {@link #setMtuToDefault( ReadWriteListener)} but use this method when you don't much care when/if the "maximum transmission unit" is actually updated. + * + * @return (same as {@link #setMtu(int, ReadWriteListener)}). + */ + @Advanced + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent setMtuToDefault() + { + return setMtuToDefault(null); + } + + /** + * Overload of {@link #setMtu(int, ReadWriteListener)} that returns the "maximum transmission unit" to the default. + * Unlike {@link #setMtu(int)}, this can be called when the device is {@link BleDeviceState#DISCONNECTED} in the event that you don't want the + * MTU to be auto-set upon next reconnection. + * + * @return (see similar comment for return value of {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + */ + @Advanced + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent setMtuToDefault(final ReadWriteListener listener) + { + enforceMainThread(); + + if( is(CONNECTED) ) + { + return setMtu(BleNodeConfig.DEFAULT_MTU_SIZE, listener); + } + else + { + clearMtu(); + + final ReadWriteEvent e = new ReadWriteEvent(this, getMtu(), ReadWriteListener.Status.SUCCESS, BleStatuses.GATT_SUCCESS, 0.0, 0.0, /*solicited=*/true); + + invokeReadWriteCallback(listener, e); + + return e; + } + } + + /** + * Same as {@link #setMtu(int, ReadWriteListener)} but use this method when you don't much care when/if the "maximum transmission unit" is actually updated. + * + * @return (same as {@link #setMtu(int, ReadWriteListener)}). + */ + @Advanced + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent setMtu(final int mtu) + { + return setMtu(mtu, null); + } + + /** + * Wrapper for {@link BluetoothGatt#requestMtu(int)} which attempts to change the "maximum transmission unit" for a given connection. + * This will eventually update the value returned by {@link #getMtu()} but it is not + * instantaneous. When we receive confirmation from the native stack then this value will be updated. The device must be {@link BleDeviceState#CONNECTED} for + * this call to succeed. + * + * @return (see similar comment for return value of {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + */ + @Advanced + public @Nullable(Prevalence.NEVER) ReadWriteListener.ReadWriteEvent setMtu(final int mtu, final ReadWriteListener listener) + { + enforceMainThread(); + + return setMtu_private(mtu, listener, getOverrideReadWritePriority()); + } + + private ReadWriteListener.ReadWriteEvent setMtu_private(final int mtu, final ReadWriteListener listener, PE_TaskPriority priority) + { + if( false == Utils.isLollipop() ) + { + final ReadWriteEvent e = new ReadWriteEvent(this, getMtu(), ReadWriteListener.Status.ANDROID_VERSION_NOT_SUPPORTED, BleStatuses.GATT_STATUS_NOT_APPLICABLE, 0.0, 0.0, /*solicited=*/true); + + invokeReadWriteCallback(listener, e); + + return e; + } + else + { + if( mtu <= 0 ) + { + final ReadWriteEvent e = new ReadWriteEvent(this, getMtu(), ReadWriteListener.Status.INVALID_DATA, BleStatuses.GATT_STATUS_NOT_APPLICABLE, 0.0, 0.0, /*solicited=*/true); + + invokeReadWriteCallback(listener, e); + + return e; + } + else + { + final ReadWriteEvent earlyOutResult = serviceMngr_device().getEarlyOutEvent(Uuids.INVALID, Uuids.INVALID, Uuids.INVALID, EMPTY_FUTURE_DATA, Type.WRITE, ReadWriteListener.Target.MTU); + + if( earlyOutResult != null ) + { + invokeReadWriteCallback(listener, earlyOutResult); + + return earlyOutResult; + } + else + { + getTaskQueue().add(new P_Task_RequestMtu(this, listener, m_txnMngr.getCurrent(), priority, mtu)); + + return NULL_READWRITE_EVENT(); + } + } + } + } + + /** + * Same as {@link #startPoll(UUID, Interval, ReadWriteListener)} but for when you don't care when/if the RSSI is actually updated. + * <br><br> + * TIP: You can call this method when the device is in any {@link BleDeviceState}, even {@link BleDeviceState#DISCONNECTED}. + */ + public void startRssiPoll(final Interval interval) + { + startRssiPoll(interval, null); + } + + /** + * Kicks off a poll that automatically calls {@link #readRssi(ReadWriteListener)} at the {@link Interval} frequency + * specified. This can be called before the device is actually {@link BleDeviceState#CONNECTED}. If you call this more than once in a + * row then the most recent call's parameters will be respected. + * <br><br> + * TIP: You can call this method when the device is in any {@link BleDeviceState}, even {@link BleDeviceState#DISCONNECTED}. + */ + public void startRssiPoll(final Interval interval, final ReadWriteListener listener) + { + enforceMainThread(); + + if( isNull() ) return; + + m_rssiPollMngr.start(interval.secs(), listener); + + m_rssiPollMngr_auto.stop(); + } + + /** + * Stops an RSSI poll previously started either by {@link #startRssiPoll(Interval)} or {@link #startRssiPoll(Interval, ReadWriteListener)}. + */ + public void stopRssiPoll() + { + enforceMainThread(); + + if (isNull()) return; + + m_rssiPollMngr.stop(); + + final Interval autoPollRate = BleDeviceConfig.interval(conf_device().rssiAutoPollRate, conf_mngr().rssiAutoPollRate); + + if (!Interval.isDisabled(autoPollRate)) + { + m_rssiPollMngr_auto.start(autoPollRate.secs(), null); + } + } + + void readRssi_internal(Type type, ReadWriteListener listener) + { + queue().add(new P_Task_ReadRssi(this, listener, m_txnMngr.getCurrent(), getOverrideReadWritePriority(), type)); + } + + /** + * One method to remove absolutely all "metadata" related to this device that is stored on disk and/or cached in memory in any way. + * This method is useful if for example you have a "forget device" feature in your app. + */ + public void clearAllData() + { + enforceMainThread(); + + clearName(); + clearHistoricalData(); + clearSharedPreferences(); + } + + /** + * Clears all {@link HistoricalData} tracked by this device. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void clearHistoricalData() + { + enforceMainThread(); + + if( isNull() ) return; + + m_historicalDataMngr.clearEverything(); + } + + /** + * Clears the first <code>count</code> number of {@link HistoricalData} tracked by this device. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void clearHistoricalData(final long count) + { + clearHistoricalData(EpochTimeRange.FROM_MIN_TO_MAX, count); + } + + /** + * Clears all {@link HistoricalData} tracked by this device within the given range. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void clearHistoricalData(final EpochTimeRange range) + { + clearHistoricalData(range, Long.MAX_VALUE); + } + + /** + * Clears the first <code>count</code> number of {@link HistoricalData} tracked by this device within the given range. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void clearHistoricalData(final EpochTimeRange range, final long count) + { + enforceMainThread(); + + if( isNull() ) return; + + m_historicalDataMngr.delete_all(range, count, /*memoryOnly=*/false); + } + + /** + * Clears all {@link HistoricalData} tracked by this device for a particular + * characteristic {@link java.util.UUID}. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void clearHistoricalData(final UUID uuid) + { + clearHistoricalData(uuid, EpochTimeRange.FROM_MIN_TO_MAX, Long.MAX_VALUE); + } + + /** + * Overload of {@link #clearHistoricalData(UUID)} that just calls that method multiple times. + */ + public void clearHistoricalData(final UUID ... uuids) + { + for( int i = 0; i < uuids.length; i++ ) + { + final UUID ith = uuids[i]; + + clearHistoricalData(ith); + } + } + + /** + * Clears the first <code>count</code> number of {@link HistoricalData} tracked by this device for a particular + * characteristic {@link java.util.UUID}. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void clearHistoricalData(final UUID uuid, final long count) + { + clearHistoricalData(uuid, EpochTimeRange.FROM_MIN_TO_MAX, count); + } + + /** + * Clears all {@link HistoricalData} tracked by this device for a particular + * characteristic {@link java.util.UUID} within the given range. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void clearHistoricalData(final UUID uuid, final EpochTimeRange range) + { + clearHistoricalData(uuid, range, Long.MAX_VALUE); + } + + /** + * Clears the first <code>count</code> number of {@link HistoricalData} tracked by this device for a particular + * characteristic {@link java.util.UUID} within the given range. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void clearHistoricalData(final UUID uuid, final EpochTimeRange range, final long count) + { + enforceMainThread(); + + if( isNull() ) return; + + m_historicalDataMngr.delete(uuid, range, count, /*memoryOnly=*/false); + } + + /** + * Clears all {@link HistoricalData} tracked by this device. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void clearHistoricalData_memoryOnly() + { + clearHistoricalData_memoryOnly(EpochTimeRange.FROM_MIN_TO_MAX, Long.MAX_VALUE); + } + + /** + * Clears the first <code>count</code> number of {@link HistoricalData} tracked by this device. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void clearHistoricalData_memoryOnly(final long count) + { + clearHistoricalData_memoryOnly(EpochTimeRange.FROM_MIN_TO_MAX, count); + } + + /** + * Clears all {@link HistoricalData} tracked by this device within the given range. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void clearHistoricalData_memoryOnly(final EpochTimeRange range) + { + clearHistoricalData_memoryOnly(range, Long.MAX_VALUE); + } + + /** + * Clears the first <code>count</code> number of {@link HistoricalData} tracked by this device within the given range. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void clearHistoricalData_memoryOnly(final EpochTimeRange range, final long count) + { + enforceMainThread(); + + if( isNull() ) return; + + m_historicalDataMngr.delete_all(range, count, /*memoryOnly=*/true); + } + + /** + * Clears all {@link HistoricalData} tracked by this device for a particular + * characteristic {@link java.util.UUID}. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void clearHistoricalData_memoryOnly(final UUID uuid) + { + clearHistoricalData_memoryOnly(uuid, EpochTimeRange.FROM_MIN_TO_MAX, Long.MAX_VALUE); + } + + /** + * Clears the first <code>count</code> number of {@link HistoricalData} tracked by this device for a particular + * characteristic {@link java.util.UUID}. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void clearHistoricalData_memoryOnly(final UUID uuid, final long count) + { + clearHistoricalData_memoryOnly(uuid, EpochTimeRange.FROM_MIN_TO_MAX, count); + } + + /** + * Clears all {@link HistoricalData} tracked by this device for a particular + * characteristic {@link java.util.UUID} within the given range. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void clearHistoricalData_memoryOnly(final UUID characteristicUuid, final EpochTimeRange range) + { + clearHistoricalData_memoryOnly(characteristicUuid, range, Long.MAX_VALUE); + } + + /** + * Clears the first <code>count</code> number of {@link HistoricalData} tracked by this device for a particular + * characteristic {@link java.util.UUID} within the given range. + * + * @see BleNodeConfig.HistoricalDataLogFilter + * @see BleNodeConfig.DefaultHistoricalDataLogFilter + */ + @Advanced + public void clearHistoricalData_memoryOnly(final UUID characteristicUuid, final EpochTimeRange range, final long count) + { + enforceMainThread(); + + if( isNull() ) return; + + m_historicalDataMngr.delete(characteristicUuid, range, count, /*memoryOnly=*/true); + } + + /** + * Overload of {@link #read(UUID)}. + */ + public void read(final UUID[] charUuids) + { + read(charUuids, null); + } + + /** + * Overload of {@link #read(UUID, ReadWriteListener)}. + */ + public void read(final UUID[] charUuids, final ReadWriteListener listener) + { + for( int i = 0; i < charUuids.length; i++ ) + { + read(charUuids[i], listener); + } + } + + /** + * Overload of {@link #read(UUID)}. + */ + public void read(final Iterable<UUID> charUuids) + { + read(charUuids, null); + } + + /** + * Overload of {@link #read(UUID, ReadWriteListener)}. + */ + public void read(final Iterable<UUID> charUuids, final ReadWriteListener listener) + { + final Iterator<UUID> iterator = charUuids.iterator(); + + while( iterator.hasNext() ) + { + final UUID charUuid = iterator.next(); + + read(charUuid, listener); + } + } + + /** + * Same as {@link #read(java.util.UUID, BleDevice.ReadWriteListener)} but you can use this + * if you don't immediately care about the result. The callback will still be posted to {@link BleDevice.ReadWriteListener} + * instances (if any) provided to {@link BleDevice#setListener_ReadWrite(BleDevice.ReadWriteListener)} and + * {@link BleManager#setListener_ReadWrite(BleDevice.ReadWriteListener)}. + */ + public ReadWriteListener.ReadWriteEvent read(final UUID characteristicUuid) + { + final UUID serviceUuid = null; + + return read_internal(serviceUuid, characteristicUuid, Uuids.INVALID, Type.READ, null); + } + + /** + * Reads a characteristic from the device. + * + * @return (see similar comment for return value of {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + */ + public ReadWriteListener.ReadWriteEvent read(final UUID characteristicUuid, final ReadWriteListener listener) + { + final UUID serviceUuid = null; + + return read_internal(serviceUuid, characteristicUuid, Uuids.INVALID, Type.READ, listener); + } + + /** + * Overload of {@link #read(UUID)} for when you have characteristics with identical uuids under different services. + */ + public ReadWriteListener.ReadWriteEvent read(final UUID serviceUuid, final UUID characteristicUuid) + { + return read_internal(serviceUuid, characteristicUuid, Uuids.INVALID, Type.READ, null); + } + + /** + * Overload of {@link #read(UUID, ReadWriteListener)} for when you have characteristics with identical uuids under different services. + */ + public ReadWriteListener.ReadWriteEvent read(final UUID serviceUuid, final UUID characteristicUuid, final ReadWriteListener listener) + { + return read_internal(serviceUuid, characteristicUuid, Uuids.INVALID, Type.READ, listener); + } + + /** + * Read the battery level of this device. This just calls {@link #read(UUID, UUID, ReadWriteListener)} using {@link Uuids#BATTERY_SERVICE_UUID}, + * and {@link Uuids#BATTERY_LEVEL}. If your battery service/characteristic uses a custom UUID, then use {@link #read(UUID, UUID, ReadWriteListener)} with + * your custom UUIDs. + */ + public ReadWriteEvent readBatteryLevel(ReadWriteListener listener) + { + return read_internal(Uuids.BATTERY_SERVICE_UUID, Uuids.BATTERY_LEVEL, Uuids.INVALID, Type.READ, listener); + } + + /** + * This method is intended to be used when the device has 2 battery characteristics in the same service. The @param valueToMatch tells SweetBlue which + * characteristic to actually read from. NOTE: This expects the FULL byte array for comparison, which by the Bluetooth spec found here + * <a href="https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml"</a> + * says that it should be 7 bytes. SweetBlue will NOT enforce the 7 byte length, in the odd case that someone implements this descriptor out-of-spec. + */ + public ReadWriteEvent readBatteryLevel(byte[] valueToMatch, ReadWriteListener listener) + { + return readBatteryLevel(valueToMatch, Uuids.CHARACTERISTIC_PRESENTATION_FORMAT_DESCRIPTOR_UUID, listener); + } + + /** + * Read the battery level of this device. This method is intended to be used if the device being read has two battery characteristics in the battery service. + * This method allows you to state which descriptor to match the @param valueToMatch to, to pick the correct characteristic to read the battery level from. + * This method is needed if you do not implement dual battery level exactly to the Bluetooth spec. + */ + @Advanced + public ReadWriteEvent readBatteryLevel(byte[] valueToMatch, UUID descriptorUuid, ReadWriteListener listener) + { + enforceMainThread(); + + final ReadWriteEvent earlyOutResult = serviceMngr_device().getEarlyOutEvent(Uuids.BATTERY_SERVICE_UUID, Uuids.BATTERY_LEVEL, Uuids.INVALID, EMPTY_FUTURE_DATA, Type.READ, ReadWriteListener.Target.CHARACTERISTIC); + + if (earlyOutResult != null) + { + invokeReadWriteCallback(listener, earlyOutResult); + + return earlyOutResult; + } + + final BluetoothGattCharacteristic characteristic = getServiceManager().getCharacteristic(Uuids.BATTERY_SERVICE_UUID, Uuids.BATTERY_LEVEL); + + final boolean requiresBonding = m_bondMngr.bondIfNeeded(characteristic.getUuid(), BondFilter.CharacteristicEventType.READ); + + queue().add(new P_Task_BatteryLevel(this, valueToMatch, descriptorUuid, listener, requiresBonding, m_txnMngr.getCurrent(), getOverrideReadWritePriority())); + + return NULL_READWRITE_EVENT(); + } + + /** + * Returns <code>true</code> if notifications are enabled for the given uuid. + * NOTE: {@link #isNotifyEnabling(UUID)} may return true here even if this returns false. + * + * @see #isNotifyEnabling(UUID) + */ + public boolean isNotifyEnabled(final UUID uuid) + { + enforceMainThread(); + + if( isNull() ) return false; + + final UUID serviceUuid = null; + + final int/*__E_NotifyState*/ notifyState = m_pollMngr.getNotifyState(serviceUuid, uuid); + + return notifyState == P_PollManager.E_NotifyState__ENABLED; + } + + /** + * Returns <code>true</code> if SweetBlue is in the process of enabling notifications for the given uuid. + * + * @see #isNotifyEnabled(UUID) + */ + public boolean isNotifyEnabling(final UUID uuid) + { + enforceMainThread(); + + if( isNull() ) return false; + + final UUID serviceUuid = null; + + final int/*__E_NotifyState*/ notifyState = m_pollMngr.getNotifyState(serviceUuid, uuid); + + return notifyState == P_PollManager.E_NotifyState__ENABLING; + } + + /** + * Overload for {@link #enableNotify(UUID)}. + */ + public void enableNotify(final UUID[] charUuids) + { + this.enableNotify(charUuids, Interval.INFINITE, null); + } + + /** + * Overload for {@link #enableNotify(UUID, ReadWriteListener)}. + */ + public void enableNotify(final UUID[] charUuids, ReadWriteListener listener) + { + this.enableNotify(charUuids, Interval.INFINITE, listener); + } + + /** + * Overload for {@link #enableNotify(UUID, Interval)}. + */ + public void enableNotify(final UUID[] charUuids, final Interval forceReadTimeout) + { + this.enableNotify(charUuids, forceReadTimeout, null); + } + + /** + * Overload for {@link #enableNotify(UUID, Interval, ReadWriteListener)}. + */ + public void enableNotify(final UUID[] charUuids, final Interval forceReadTimeout, final ReadWriteListener listener) + { + for( int i = 0; i < charUuids.length; i++ ) + { + final UUID ith = charUuids[i]; + + enableNotify(ith, forceReadTimeout, listener); + } + } + + /** + * Overload for {@link #enableNotify(UUID)}. + */ + public void enableNotify(final Iterable<UUID> charUuids) + { + this.enableNotify(charUuids, Interval.INFINITE, null); + } + + /** + * Overload for {@link #enableNotify(UUID, ReadWriteListener)}. + */ + public void enableNotify(final Iterable<UUID> charUuids, ReadWriteListener listener) + { + this.enableNotify(charUuids, Interval.INFINITE, listener); + } + + /** + * Overload for {@link #enableNotify(UUID, Interval)}. + */ + public void enableNotify(final Iterable<UUID> charUuids, final Interval forceReadTimeout) + { + this.enableNotify(charUuids, forceReadTimeout, null); + } + + /** + * Overload for {@link #enableNotify(UUID, Interval, ReadWriteListener)}. + */ + public void enableNotify(final Iterable<UUID> charUuids, final Interval forceReadTimeout, final ReadWriteListener listener) + { + final Iterator<UUID> iterator = charUuids.iterator(); + + while( iterator.hasNext() ) + { + final UUID ith = iterator.next(); + + enableNotify(ith, forceReadTimeout, listener); + } + } + + /** + * Same as {@link #enableNotify(java.util.UUID, BleDevice.ReadWriteListener)} but you can use + * this if you don't need a callback. Callbacks will still be posted to {@link BleDevice.ReadWriteListener} + * instances (if any) provided to {@link BleDevice#setListener_ReadWrite(BleDevice.ReadWriteListener)} and + * {@link BleManager#setListener_ReadWrite(BleDevice.ReadWriteListener)}. + */ + public ReadWriteListener.ReadWriteEvent enableNotify(final UUID characteristicUuid) + { + return this.enableNotify(null, characteristicUuid, Interval.INFINITE, null); + } + + /** + * Enables notification on the given characteristic. The listener will be called both for the notifications themselves and for the actual + * registration for the notification. <code>switch</code> on {@link Type#ENABLING_NOTIFICATION} + * and {@link Type#NOTIFICATION} (or {@link Type#INDICATION}) in your listener to distinguish between these. + * + * @return (see similar comment for return value of {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + */ + public ReadWriteListener.ReadWriteEvent enableNotify(final UUID characteristicUuid, ReadWriteListener listener) + { + return this.enableNotify(null, characteristicUuid, Interval.INFINITE, listener); + } + + /** + * Same as {@link #enableNotify(java.util.UUID, Interval, BleDevice.ReadWriteListener)} but you can use + * this if you don't need a callback. Callbacks will still be posted to {@link BleDevice.ReadWriteListener} + * instances (if any) provided to {@link BleDevice#setListener_ReadWrite(BleDevice.ReadWriteListener)} and + * {@link BleManager#setListener_ReadWrite(BleDevice.ReadWriteListener)}. + */ + public ReadWriteListener.ReadWriteEvent enableNotify(final UUID characteristicUuid, final Interval forceReadTimeout) + { + return this.enableNotify(null, characteristicUuid, forceReadTimeout, null); + } + + /** + * Same as {@link #enableNotify(UUID, ReadWriteListener)} but forces a read after a given amount of time. If you received {@link ReadWriteListener.Status#SUCCESS} for + * {@link Type#ENABLING_NOTIFICATION} but haven't received an actual notification in some time it may be a sign that notifications have broken + * in the underlying stack. + * + * @return (same as {@link #enableNotify(UUID, ReadWriteListener)}). + */ + public ReadWriteListener.ReadWriteEvent enableNotify(final UUID characteristicUuid, final Interval forceReadTimeout, final ReadWriteListener listener) + { + return this.enableNotify(null, characteristicUuid, forceReadTimeout, listener); + } + + /** + * Overload of {@link #enableNotify(UUID)} for when you have characteristics with identical uuids under different services. + */ + public ReadWriteListener.ReadWriteEvent enableNotify(final UUID serviceUuid, final UUID characteristicUuid) + { + return this.enableNotify(serviceUuid, characteristicUuid, Interval.INFINITE, null); + } + + /** + * Overload of {@link #enableNotify(UUID, ReadWriteListener)} for when you have characteristics with identical uuids under different services. + */ + public ReadWriteListener.ReadWriteEvent enableNotify(final UUID serviceUuid, final UUID characteristicUuid, ReadWriteListener listener) + { + return this.enableNotify(serviceUuid, characteristicUuid, Interval.INFINITE, listener); + } + + /** + * Overload of {@link #enableNotify(UUID, Interval)} for when you have characteristics with identical uuids under different services. + */ + public ReadWriteListener.ReadWriteEvent enableNotify(final UUID serviceUuid, final UUID characteristicUuid, final Interval forceReadTimeout) + { + return this.enableNotify(serviceUuid, characteristicUuid, forceReadTimeout, null); + } + + /** + * Overload of {@link #enableNotify(UUID, Interval, ReadWriteListener)} for when you have characteristics with identical uuids under different services. + */ + public ReadWriteListener.ReadWriteEvent enableNotify(final UUID serviceUuid, final UUID characteristicUuid, final Interval forceReadTimeout, final ReadWriteListener listener) + { + enforceMainThread(); + + final ReadWriteEvent earlyOutResult = serviceMngr_device().getEarlyOutEvent(serviceUuid, characteristicUuid, Uuids.INVALID, EMPTY_FUTURE_DATA, Type.ENABLING_NOTIFICATION, ReadWriteListener.Target.CHARACTERISTIC); + + if (earlyOutResult != null) + { + invokeReadWriteCallback(listener, earlyOutResult); + + if (earlyOutResult.status() == ReadWriteListener.Status.NO_MATCHING_TARGET || (Interval.INFINITE.equals(forceReadTimeout) || Interval.DISABLED.equals(forceReadTimeout))) + { + //--- DRK > No need to put this notify in the poll manager because either the characteristic wasn't found + //--- or the notify (or indicate) property isn't supported and we're not doing a backing read poll. + return earlyOutResult; + } + } + + final BluetoothGattCharacteristic characteristic = getServiceManager().getCharacteristic(serviceUuid, characteristicUuid); + final int/*__E_NotifyState*/ notifyState = m_pollMngr.getNotifyState(serviceUuid, characteristicUuid); + final boolean shouldSendOutNotifyEnable = notifyState == P_PollManager.E_NotifyState__NOT_ENABLED && (earlyOutResult == null || earlyOutResult.status() != ReadWriteListener.Status.OPERATION_NOT_SUPPORTED); + + final ReadWriteEvent result; + final boolean isConnected = is(CONNECTED); + + if( shouldSendOutNotifyEnable && characteristic != null && isConnected ) + { + m_bondMngr.bondIfNeeded(characteristicUuid, CharacteristicEventType.ENABLE_NOTIFY); + + queue().add(new P_Task_ToggleNotify(this, characteristic, /*enable=*/true, m_txnMngr.getCurrent(), listener, getOverrideReadWritePriority())); + + m_pollMngr.onNotifyStateChange(serviceUuid, characteristicUuid, P_PollManager.E_NotifyState__ENABLING); + + result = NULL_READWRITE_EVENT(); + } + else if (notifyState == P_PollManager.E_NotifyState__ENABLED) + { + if (listener != null && isConnected ) + { + result = m_pollMngr.newAlreadyEnabledEvent(characteristic, serviceUuid, characteristicUuid); + + invokeReadWriteCallback(listener, result); + } + else + { + result = NULL_READWRITE_EVENT(); + } + + if( !isConnected ) + { + getManager().ASSERT(false, "Notification is enabled but we're not connected!"); + } + } + else + { + result = NULL_READWRITE_EVENT(); + } + + m_pollMngr.startPoll(serviceUuid, characteristicUuid, forceReadTimeout.secs(), listener, /*trackChanges=*/true, /*usingNotify=*/true); + + return result; + } + + /** + * Disables all notifications enabled by {@link #enableNotify(UUID, ReadWriteListener)} or + * {@link #enableNotify(UUID, Interval, ReadWriteListener)}. The listener + * provided should be the same one that you passed to {@link #enableNotify(UUID, ReadWriteListener)}. Listen for + * {@link Type#DISABLING_NOTIFICATION} in your listener to know when the remote device actually confirmed. + * + * @return (see similar comment for return value of {@link #connect(BleTransaction.Auth, BleTransaction.Init, StateListener, ConnectionFailListener)}). + */ + public ReadWriteListener.ReadWriteEvent disableNotify(final UUID characteristicUuid, final ReadWriteListener listener) + { + final UUID serviceUuid = null; + + return this.disableNotify_private(serviceUuid, characteristicUuid, null, listener); + } + + /** + * Same as {@link #disableNotify(UUID, ReadWriteListener)} but filters on the given {@link Interval}. + * + * @return (same as {@link #disableNotify(UUID, ReadWriteListener)}). + */ + public ReadWriteListener.ReadWriteEvent disableNotify(final UUID characteristicUuid, final Interval forceReadTimeout, final ReadWriteListener listener) + { + final UUID serviceUuid = null; + + return this.disableNotify_private(serviceUuid, characteristicUuid, Interval.secs(forceReadTimeout), listener); + } + + /** + * Same as {@link #disableNotify(java.util.UUID, BleDevice.ReadWriteListener)} but you can use this if you don't care about the result. + * The callback will still be posted to {@link BleDevice.ReadWriteListener} + * instances (if any) provided to {@link BleDevice#setListener_ReadWrite(BleDevice.ReadWriteListener)} and + * {@link BleManager#setListener_ReadWrite(BleDevice.ReadWriteListener)}. + */ + public ReadWriteListener.ReadWriteEvent disableNotify(final UUID characteristicUuid) + { + final UUID serviceUuid = null; + + return this.disableNotify_private(serviceUuid, characteristicUuid, null, null); + } + + /** + * Same as {@link #disableNotify(UUID, ReadWriteListener)} but filters on the given {@link Interval} without a listener. + * + * @return (same as {@link #disableNotify(UUID, ReadWriteListener)}). + */ + public ReadWriteListener.ReadWriteEvent disableNotify(final UUID characteristicUuid, final Interval forceReadTimeout) + { + final UUID serviceUuid = null; + + return this.disableNotify_private(serviceUuid, characteristicUuid, Interval.secs(forceReadTimeout), null); + } + + /** + * Overload of {@link #disableNotify(UUID, ReadWriteListener)} for when you have characteristics with identical uuids under different services. + */ + public ReadWriteListener.ReadWriteEvent disableNotify(final UUID serviceUuid, final UUID characteristicUuid, final ReadWriteListener listener) + { + return this.disableNotify_private(serviceUuid, characteristicUuid, null, listener); + } + + /** + * Overload of {@link #disableNotify(UUID, Interval, ReadWriteListener)} for when you have characteristics with identical uuids under different services. + */ + public ReadWriteListener.ReadWriteEvent disableNotify(final UUID serviceUuid, final UUID characteristicUuid, final Interval forceReadTimeout, final ReadWriteListener listener) + { + return this.disableNotify_private(serviceUuid, characteristicUuid, Interval.secs(forceReadTimeout), listener); + } + + /** + * Overload of {@link #disableNotify(UUID)} for when you have characteristics with identical uuids under different services. + */ + public ReadWriteListener.ReadWriteEvent disableNotify(final UUID serviceUuid, final UUID characteristicUuid) + { + return this.disableNotify_private(serviceUuid, characteristicUuid, null, null); + } + + /** + * Overload of {@link #disableNotify(UUID, Interval)} for when you have characteristics with identical uuids under different services. + */ + public ReadWriteListener.ReadWriteEvent disableNotify(final UUID serviceUuid, final UUID characteristicUuid, final Interval forceReadTimeout) + { + return this.disableNotify_private(serviceUuid, characteristicUuid, Interval.secs(forceReadTimeout), null); + } + + /** + * Overload for {@link #disableNotify(UUID, ReadWriteListener)}. + */ + public void disableNotify(final UUID[] uuids, final ReadWriteListener listener) + { + this.disableNotify(uuids, null, listener); + } + + /** + * Overload for {@link #disableNotify(UUID)}. + */ + public void disableNotify(final UUID[] uuids) + { + this.disableNotify(uuids, null, null); + } + + /** + * Overload for {@link #disableNotify(UUID, Interval)}. + */ + public void disableNotify(final UUID[] uuids, final Interval forceReadTimeout) + { + this.disableNotify(uuids, forceReadTimeout, null); + } + + /** + * Overload for {@link #disableNotify(UUID, Interval, BleDevice.ReadWriteListener)}. + */ + public void disableNotify(final UUID[] uuids, final Interval forceReadTimeout, final ReadWriteListener listener) + { + for( int i = 0; i < uuids.length; i++ ) + { + final UUID ith = uuids[i]; + + disableNotify(ith, forceReadTimeout, listener); + } + } + + /** + * Overload for {@link #disableNotify(UUID)}. + */ + public void disableNotify(final Iterable<UUID> charUuids) + { + this.disableNotify(charUuids, Interval.INFINITE, null); + } + + /** + * Overload for {@link #disableNotify(UUID, ReadWriteListener)}. + */ + public void disableNotify(final Iterable<UUID> charUuids, ReadWriteListener listener) + { + this.disableNotify(charUuids, Interval.INFINITE, listener); + } + + /** + * Overload for {@link #disableNotify(UUID, Interval)}. + */ + public void disableNotify(final Iterable<UUID> charUuids, final Interval forceReadTimeout) + { + this.disableNotify(charUuids, forceReadTimeout, null); + } + + /** + * Overload for {@link #disableNotify(UUID, Interval, ReadWriteListener)}. + */ + public void disableNotify(final Iterable<UUID> charUuids, final Interval forceReadTimeout, final ReadWriteListener listener) + { + final Iterator<UUID> iterator = charUuids.iterator(); + + while( iterator.hasNext() ) + { + final UUID ith = iterator.next(); + + disableNotify(ith, forceReadTimeout, listener); + } + } + + /** + * Kicks off an "over the air" long-term transaction if it's not already + * taking place and the device is {@link BleDeviceState#INITIALIZED}. This + * will put the device into the {@link BleDeviceState#PERFORMING_OTA} state + * if <code>true</code> is returned. You can use this to do firmware + * updates, file transfers, etc. + * <br><br> + * TIP: Use the {@link TimeEstimator} class to let your users know roughly + * how much time it will take for the ota to complete. + * <br><br> + * TIP: For shorter-running transactions consider using {@link #performTransaction(BleTransaction)}. + * + * @return <code>true</code> if OTA has started, otherwise <code>false</code> if device is either already + * {@link BleDeviceState#PERFORMING_OTA} or is not {@link BleDeviceState#INITIALIZED}. + * + * @see BleManagerConfig#includeOtaReadWriteTimesInAverage + * @see BleManagerConfig#autoScanDuringOta + * @see #performTransaction(BleTransaction) + */ + public boolean performOta(final BleTransaction.Ota txn) + { + enforceMainThread(); + + if( performTransaction_earlyOut(txn) ) return false; + + if ( is(PERFORMING_OTA) ) + { + //--- DRK > The strictest and maybe best way to early out here, but as far as expected behavior this may be better. + //--- In the end it's a judgement call, what's best API-wise with user expectations. + m_txnMngr.cancelOtaTransaction(); + } + + m_txnMngr.startOta(txn); + + return true; + } + + /** + * Allows you to perform an arbitrary transaction that is not associated with any {@link BleDeviceState} like + * {@link BleDeviceState#PERFORMING_OTA}, {@link BleDeviceState#AUTHENTICATING} or {@link BleDeviceState#INITIALIZING}. + * Generally this transaction should be short, several reads and writes. For longer-term transaction consider using + * {@link #performOta(BleTransaction.Ota)}. + * <br><br> + * The device must be {@link BleDeviceState#INITIALIZED}. + * <br><br> + * TIP: For long-term transactions consider using {@link #performOta(BleTransaction.Ota)}. + * + * @return <code>true</code> if the transaction successfully started, <code>false</code> otherwise if device is not {@link BleDeviceState#INITIALIZED}. + */ + public boolean performTransaction(final BleTransaction txn) + { + enforceMainThread(); + + if( performTransaction_earlyOut(txn) ) return false; + + m_txnMngr.performAnonTransaction(txn); + + return true; + } + + private boolean performTransaction_earlyOut(final BleTransaction txn) + { + if ( txn == null ) return true; + if (isNull()) return true; + if (!is_internal(INITIALIZED)) return true; + if ( m_txnMngr.getCurrent() != null ) return true; + + return false; + } + + /** + * Returns the device's name and current state for logging and debugging purposes. + */ + @Override public String toString() + { + if (isNull()) + { + return NULL_STRING(); + } + else + { + return m_nativeWrapper.getDebugName() + " " + stateTracker_main().toString(); + } + } + + private boolean shouldAddOperationTime() + { + boolean includeFirmwareUpdateReadWriteTimesInAverage = BleDeviceConfig.bool(conf_device().includeOtaReadWriteTimesInAverage, conf_mngr().includeOtaReadWriteTimesInAverage); + + return includeFirmwareUpdateReadWriteTimesInAverage || !is(PERFORMING_OTA); + } + + void addReadTime(double timeStep) + { + if (!shouldAddOperationTime()) + return; + + if (m_readTimeEstimator != null) + { + m_readTimeEstimator.addTime(timeStep); + } + } + + void addWriteTime(double timeStep) + { + if (!shouldAddOperationTime()) return; + + if (m_writeTimeEstimator != null) + { + m_writeTimeEstimator.addTime(timeStep); + } + } + + void setToAlwaysUseAutoConnectIfItWorked() + { + m_alwaysUseAutoConnect = m_useAutoConnect; + } + + boolean shouldUseAutoConnect() + { + return m_useAutoConnect; + } + + P_BleDevice_Listeners getListeners() + { + return m_listeners; + } + + P_TaskQueue getTaskQueue() + { + return queue(); + } + + // PA_StateTracker getStateTracker(){ return m_stateTracker; } + BleTransaction getOtaTxn() + { + return m_txnMngr.m_otaTxn; + } + + P_PollManager getPollManager() + { + return m_pollMngr; + } + + void onNewlyDiscovered(final BluetoothDevice device_native, final BleManagerConfig.ScanFilter.ScanEvent scanEvent_nullable, int rssi, byte[] scanRecord_nullable, final BleDeviceOrigin origin) + { + m_origin_latest = origin; + + clear_discovery(); + + m_nativeWrapper.updateNativeDevice(device_native); + + onDiscovered_private(scanEvent_nullable, rssi, scanRecord_nullable); + + stateTracker_main().update(E_Intent.UNINTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE, m_bondMngr.getNativeBondingStateOverrides(), UNDISCOVERED, false, DISCOVERED, true, ADVERTISING, origin == BleDeviceOrigin.FROM_DISCOVERY, DISCONNECTED, true); + } + + void onRediscovered(final BluetoothDevice device_native, final BleManagerConfig.ScanFilter.ScanEvent scanEvent_nullable, int rssi, byte[] scanRecord_nullable, final BleDeviceOrigin origin) + { + m_origin_latest = origin; + + m_nativeWrapper.updateNativeDevice(device_native); + + onDiscovered_private(scanEvent_nullable, rssi, scanRecord_nullable); + + stateTracker_main().update(PA_StateTracker.E_Intent.UNINTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE, m_bondMngr.getNativeBondingStateOverrides(), ADVERTISING, true); + } + + void onUndiscovered(E_Intent intent) + { + clear_undiscovery(); + + if( m_reconnectMngr_longTerm != null ) m_reconnectMngr_longTerm.stop(); + if( m_reconnectMngr_shortTerm != null ) m_reconnectMngr_shortTerm.stop(); + if( m_rssiPollMngr != null ) m_rssiPollMngr.stop(); + if( m_rssiPollMngr_auto != null ) m_rssiPollMngr_auto.stop(); + if( m_pollMngr != null ) m_pollMngr.clear(); + + stateTracker_main().set(intent, BleStatuses.GATT_STATUS_NOT_APPLICABLE, UNDISCOVERED, true, DISCOVERED, false, ADVERTISING, false, m_bondMngr.getNativeBondingStateOverrides(), DISCONNECTED, true); + + if( m_txnMngr != null ) + { + m_txnMngr.cancelAllTransactions(); + } + } + + double getTimeSinceLastDiscovery() + { + return m_timeSinceLastDiscovery; + } + + private void onDiscovered_private(final BleManagerConfig.ScanFilter.ScanEvent scanEvent_nullable, final int rssi, byte[] scanRecord_nullable) + { + m_lastDiscoveryTime = EpochTime.now(); + m_timeSinceLastDiscovery = 0.0; + updateRssi(rssi); + + if( scanEvent_nullable != null ) + { + m_scanRecord = scanEvent_nullable.scanRecord(); + + updateKnownTxPower(scanEvent_nullable.txPower()); + + m_advertisingFlags = scanEvent_nullable.advertisingFlags(); + + m_scanInfo.clearServiceUUIDs(); + m_scanInfo.populateServiceUUIDs(scanEvent_nullable.advertisedServices()); + + m_scanInfo.setManufacturerId(scanEvent_nullable.manufacturerId()); + m_scanInfo.setManufacturerData(scanEvent_nullable.manufacturerData()); + + m_scanInfo.clearServiceData(); + m_scanInfo.populateServiceData(scanEvent_nullable.serviceData()); + } + else if( scanRecord_nullable != null ) + { + m_scanRecord = scanRecord_nullable; + + m_scanInfo = Utils_ScanRecord.parseScanRecord(scanRecord_nullable); + + updateKnownTxPower(m_scanInfo.getTxPower().value); + } + } + + private void updateKnownTxPower(final int txPower) + { + if( txPower != BleNodeConfig.INVALID_TX_POWER ) + { + m_knownTxPower = txPower; + } + } + + void updateRssi(final int rssi) + { + m_rssi = rssi; + } + + void updateMtu(final int mtu) + { + m_mtu = mtu; + } + + void updateConnectionPriority(final BleConnectionPriority connectionPriority) + { + m_connectionPriority = connectionPriority; + } + + private void clearMtu() + { + updateMtu(0); + } + + void update(double timeStep) + { + m_timeSinceLastDiscovery += timeStep; + + m_pollMngr.update(timeStep); + m_txnMngr.update(timeStep); + m_reconnectMngr_longTerm.update(timeStep); + m_reconnectMngr_shortTerm.update(timeStep); + m_rssiPollMngr.update(timeStep); + } + + void bond_justAddTheTask(E_TransactionLockBehavior lockBehavior) + { + if (conf_device().forceBondDialog) + { + queue().add(new P_Task_BondPopupHack(this, null)); + } + queue().add(new P_Task_Bond(this, /*explicit=*/true, /*partOfConnection=*/false, m_taskStateListener, lockBehavior)); + } + + void unbond_justAddTheTask() + { + unbond_justAddTheTask(null); + } + + void unbond_justAddTheTask(final PE_TaskPriority priority_nullable) + { + queue().add(new P_Task_Unbond(this, m_taskStateListener, priority_nullable)); + } + + void unbond_internal(final PE_TaskPriority priority_nullable, final BondListener.Status status) + { + unbond_justAddTheTask(priority_nullable); + + final boolean wasBonding = is(BONDING); + + stateTracker_updateBoth(E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE, P_BondManager.OVERRIDE_UNBONDED_STATES); + + if (wasBonding) + { + m_bondMngr.invokeCallback(status, BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE, State.ChangeIntent.INTENTIONAL); + } + } + + P_DeviceServiceManager serviceMngr_device() + { + return getServiceManager(); + } + + private ConnectionFailListener.ConnectionFailEvent connect_earlyOut() + { + if (isNull()) + { + final ConnectionFailListener.ConnectionFailEvent e = ConnectionFailListener.ConnectionFailEvent.EARLY_OUT(this, Status.NULL_DEVICE); + + m_connectionFailMngr.invokeCallback(e); + + return e; + } + + return null; + } + + void attemptReconnect() + { + if (connect_earlyOut() != null ) return; + + m_lastConnectOrDisconnectWasUserExplicit = true; + + if (isAny_internal(CONNECTED, CONNECTING, CONNECTING_OVERALL)) + { + final ConnectionFailListener.ConnectionFailEvent info = ConnectionFailListener.ConnectionFailEvent.EARLY_OUT(this, Status.ALREADY_CONNECTING_OR_CONNECTED); + + m_connectionFailMngr.invokeCallback(info); + + return; + } + + connect_private(m_txnMngr.m_authTxn, m_txnMngr.m_initTxn, /*isReconnect=*/true); + } + + private void connect_private(BleTransaction.Auth authenticationTxn, BleTransaction.Init initTxn, final boolean isReconnect) + { + if (is_internal(INITIALIZED)) + { + getManager().ASSERT(false, "Device is initialized but not connected!"); + + return; + } + + m_txnMngr.onConnect(authenticationTxn, initTxn); + + final Object[] extraBondingStates; + + if( is(UNBONDED) && Utils.isKitKat()) + { + final boolean tryBondingWhileDisconnected = BleDeviceConfig.bool(conf_device().tryBondingWhileDisconnected, conf_mngr().tryBondingWhileDisconnected); + final boolean tryBondingWhileDisconnected_manageOnDisk = BleDeviceConfig.bool(conf_device().tryBondingWhileDisconnected_manageOnDisk, conf_mngr().tryBondingWhileDisconnected_manageOnDisk); + final boolean doPreBond = getManager().m_diskOptionsMngr.loadNeedsBonding(getMacAddress(), tryBondingWhileDisconnected_manageOnDisk); + + if( doPreBond && tryBondingWhileDisconnected ) + { + bond_justAddTheTask(E_TransactionLockBehavior.PASSES); + + extraBondingStates = P_BondManager.OVERRIDE_BONDING_STATES; + } + else + { + extraBondingStates = P_BondManager.OVERRIDE_EMPTY_STATES; + } + } + else + { + extraBondingStates = P_BondManager.OVERRIDE_EMPTY_STATES; + } + + onConnecting(/* definitelyExplicit= */true, isReconnect, extraBondingStates, /*bleConnect=*/false); + + //--- DRK > Just accounting for technical possibility that user calls #disconnect() or something in the state change callback for connecting overall. + if( !/*still*/is_internal(CONNECTING_OVERALL) ) + { + return; + } + + queue().add(new P_Task_Connect(this, m_taskStateListener)); + + onConnecting(/* definitelyExplicit= */true, isReconnect, extraBondingStates, /*bleConnect=*/true); + } + + void onConnecting(boolean definitelyExplicit, boolean isReconnect, final Object[] extraBondingStates, final boolean bleConnect) + { + m_lastConnectOrDisconnectWasUserExplicit = definitelyExplicit; + + if (bleConnect && is_internal(/* already */CONNECTING)) + { + P_Task_Connect task = getTaskQueue().getCurrent(P_Task_Connect.class, this); + boolean mostDefinitelyExplicit = task != null && task.isExplicit(); + + //--- DRK > Not positive about this assert...we'll see if it trips. + getManager().ASSERT(definitelyExplicit || mostDefinitelyExplicit); + + stateTracker_main().update(E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE, extraBondingStates); + } + else + { + final E_Intent intent; + + if (definitelyExplicit && !isReconnect) + { + //--- DRK > We're stopping the reconnect process (if it's running) because the user has decided to explicitly connect + //--- for whatever reason. Making a judgement call that the user would then expect reconnect to stop. + //--- In other words it's not stopped for any hard technical reasons...it could go on. + m_reconnectMngr_longTerm.stop(); + intent = E_Intent.INTENTIONAL; + stateTracker().update(intent, BluetoothGatt.GATT_SUCCESS, RECONNECTING_LONG_TERM, false, CONNECTING, bleConnect, CONNECTING_OVERALL, true, DISCONNECTED, false, ADVERTISING, false, extraBondingStates); + } + else + { + intent = lastConnectDisconnectIntent(); + stateTracker().update(intent, BluetoothGatt.GATT_SUCCESS, CONNECTING, bleConnect, CONNECTING_OVERALL, true, DISCONNECTED, false, ADVERTISING, false, extraBondingStates); + } + + if( stateTracker() != stateTracker_main() ) + { + stateTracker_main().update(intent, BleStatuses.GATT_STATUS_NOT_APPLICABLE, UNBONDED, stateTracker().is(UNBONDED), BONDING, stateTracker().is(BONDING), BONDED, stateTracker().is(BONDED)); + } + } + } + + void onNativeConnect(boolean explicit) + { + m_lastDisconnectWasBecauseOfBleTurnOff = false; // DRK > Just being anal. + + E_Intent intent = explicit && !is(RECONNECTING_LONG_TERM) ? E_Intent.INTENTIONAL : E_Intent.UNINTENTIONAL; + m_lastConnectOrDisconnectWasUserExplicit = intent == E_Intent.INTENTIONAL; + + if (is_internal(/*already*/CONNECTED)) + { + //--- DRK > Possible to get here when implicit tasks are involved I think. Not sure if assertion should be here, + //--- and if it should it perhaps should be keyed off whether the task is implicit or something. + //--- Also possible to get here for example on connection fail retries, where we queue a disconnect + //--- but that gets immediately soft-cancelled by what will be a redundant connect task. + //--- OVERALL, This assert is here because I'm just curious how it hits (it does). + String message = "nativelyConnected=" + logger().gattConn(m_nativeWrapper.getConnectionState()) + " gatt==" + m_nativeWrapper.getGatt(); + // getManager().ASSERT(false, message); + getManager().ASSERT(m_nativeWrapper.isNativelyConnected(), message); + + return; + } + + getManager().ASSERT(m_nativeWrapper.getGatt() != null); + + //--- DRK > There exists a fringe case like this: You try to connect with autoConnect==true in the gatt object. + //--- The connection fails, so you stop trying. Then you turn off the remote device. Device gets "undiscovered". + //--- You turn the device back on, and apparently underneath the hood, this whole time, the stack has been trying + //--- to reconnect, and now it does, *without* (re)discovering the device first, or even discovering it at all. + //--- So as usual, here's another gnarly workaround to ensure a consistent API experience through SweetBlue. + // + //--- NOTE: We do explicitly disconnect after a connection failure if we're using autoConnect, so this + //--- case shouldn't really come up much or at all with that in place. + if (!getManager().hasDevice(getMacAddress())) + { + getManager().onDiscovered_fromRogueAutoConnect(this, /*newlyDiscovered=*/true, m_scanInfo.getServiceUUIDS(), getScanRecord(), getRssi()); + } + + //--- DRK > Some trapdoor logic for bad android ble bug. + int nativeBondState = m_nativeWrapper.getNativeBondState(); + if (nativeBondState == BluetoothDevice.BOND_BONDED) + { + //--- DRK > Trying to catch fringe condition here of stack lying to + // us about bonded state. + //--- This is not about finding a logic error in my code. + getManager().ASSERT(getManager().getNative().getAdapter().getBondedDevices().contains(m_nativeWrapper.getDevice())); + } + + logger().d(logger().gattBondState(m_nativeWrapper.getNativeBondState())); + + boolean autoGetServices = BleDeviceConfig.bool(conf_device().autoGetServices, conf_mngr().autoGetServices); + if (autoGetServices) + { + getServices(DISCONNECTED, false, CONNECTING_OVERALL, true, CONNECTING, false, CONNECTED, true, ADVERTISING, false); + } + else + { + m_txnMngr.runAuthOrInitTxnIfNeeded(BluetoothGatt.GATT_SUCCESS, DISCONNECTED, false, CONNECTING_OVERALL, true, CONNECTING, false, CONNECTED, true, ADVERTISING, false); + } + } + + private void getServices(Object... extraFlags) + { + if (!m_nativeWrapper.isNativelyConnected()) + { + return; + } + + queue().add(new P_Task_DiscoverServices(this, m_taskStateListener)); + + //--- DRK > We check up top, but check again here cause we might have been disconnected on another thread in the mean time. + //--- Even without this check the library should still be in a goodish state. Might send some weird state + //--- callbacks to the app but eventually things settle down and we're good again. + if (m_nativeWrapper.isNativelyConnected()) + { + stateTracker().update(lastConnectDisconnectIntent(), BluetoothGatt.GATT_SUCCESS, extraFlags, DISCOVERING_SERVICES, true); + } + } + + void onNativeConnectFail(PE_TaskState state, int gattStatus, ConnectionFailListener.AutoConnectUsage autoConnectUsage) + { + m_nativeWrapper.closeGattIfNeeded(/* disconnectAlso= */true); + + if (state == PE_TaskState.SOFTLY_CANCELLED ) return; + + boolean attemptingReconnect = is(RECONNECTING_LONG_TERM); + BleDeviceState highestState = BleDeviceState.getTransitoryConnectionState(getStateMask()); + + // if( !m_nativeWrapper.isNativelyConnected() ) + // { + // if( !attemptingReconnect ) + // { + //--- DRK > Now doing this at top of method...no harm really and + // catches fringe case logic erros upstream. + // m_nativeWrapper.closeGattIfNeeded(/*disconnectAlso=*/true); + // } + // } + + final boolean wasConnecting = is_internal(CONNECTING_OVERALL); + final ConnectionFailListener.Status connectionFailStatus = ConnectionFailListener.Status.NATIVE_CONNECTION_FAILED; + + if (isAny_internal(CONNECTED, CONNECTING, CONNECTING_OVERALL)) + { + setStateToDisconnected(attemptingReconnect, E_Intent.UNINTENTIONAL, gattStatus, /*forceMainStateTracker=*/false, P_BondManager.OVERRIDE_EMPTY_STATES); + } + + m_txnMngr.cancelAllTransactions(); + + if (wasConnecting) + { + ConnectionFailListener.Timing timing = state == PE_TaskState.FAILED_IMMEDIATELY ? ConnectionFailListener.Timing.IMMEDIATELY : ConnectionFailListener.Timing.EVENTUALLY; + + if (state == PE_TaskState.TIMED_OUT) + { + timing = ConnectionFailListener.Timing.TIMED_OUT; + } + + final int retry__PE_Please = m_connectionFailMngr.onConnectionFailed(connectionFailStatus, timing, attemptingReconnect, gattStatus, BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE, highestState, autoConnectUsage, NULL_READWRITE_EVENT()); + + if (!attemptingReconnect && retry__PE_Please == ConnectionFailListener.Please.PE_Please_RETRY_WITH_AUTOCONNECT_TRUE) + { + m_useAutoConnect = true; + } + else if (!attemptingReconnect && retry__PE_Please == ConnectionFailListener.Please.PE_Please_RETRY_WITH_AUTOCONNECT_FALSE) + { + m_useAutoConnect = false; + } + else + { + m_useAutoConnect = m_alwaysUseAutoConnect; + } + } + } + + void onServicesDiscovered() + { + if( m_mtu > 0 ) + { + if( isAny(RECONNECTING_SHORT_TERM, RECONNECTING_LONG_TERM) ) + { + setMtu_private(m_mtu, null, PE_TaskPriority.FOR_PRIORITY_READS_WRITES); + } + } + + if( m_connectionPriority != BleConnectionPriority.MEDIUM ) + { + if( isAny(RECONNECTING_SHORT_TERM, RECONNECTING_LONG_TERM) ) + { + setConnectionPriority_private(m_connectionPriority, null, PE_TaskPriority.FOR_PRIORITY_READS_WRITES); + } + } + + m_txnMngr.runAuthOrInitTxnIfNeeded(BluetoothGatt.GATT_SUCCESS, DISCOVERING_SERVICES, false, SERVICES_DISCOVERED, true); + } + + void onFullyInitialized(final int gattStatus, Object... extraFlags) + { + m_reconnectMngr_longTerm.stop(); + m_reconnectMngr_shortTerm.stop(); + m_connectionFailMngr.onFullyInitialized(); + + //--- DRK > Saving last disconnect as unintentional here in case for some + //--- reason app is hard killed or something and we never get a disconnect callback. + final boolean hitDisk = BleDeviceConfig.bool(conf_device().manageLastDisconnectOnDisk, conf_mngr().manageLastDisconnectOnDisk); + getManager().m_diskOptionsMngr.saveLastDisconnect(getMacAddress(), State.ChangeIntent.UNINTENTIONAL, hitDisk); + + stateTracker().update(lastConnectDisconnectIntent(), gattStatus, extraFlags, RECONNECTING_LONG_TERM, false, CONNECTING_OVERALL, false, AUTHENTICATING, false, AUTHENTICATED, true, INITIALIZING, false, INITIALIZED, true); + + stateTracker_main().remove(BleDeviceState.RECONNECTING_SHORT_TERM, E_Intent.UNINTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + + private void setStateToDisconnected(final boolean attemptingReconnect_longTerm, final E_Intent intent, final int gattStatus, final boolean forceMainStateTracker, final Object[] overrideBondingStates) + { + //--- DRK > Device probably wasn't advertising while connected so here we reset the timer to keep + //--- it from being immediately undiscovered after disconnection. + m_timeSinceLastDiscovery = 0.0; + + m_txnMngr.clearQueueLock(); + + final P_DeviceStateTracker tracker = forceMainStateTracker ? stateTracker_main() : stateTracker(); + + tracker.set + ( + intent, + gattStatus, + DISCOVERED, true, + DISCONNECTED, true, + // Commenting these out because of un-thought-of case where you unbond then immediately disconnect...native bond state is still BONDED but abstracted state is UNBONDED so a state transition occurs where it shouldn't. +// BONDING, m_nativeWrapper.isNativelyBonding(), +// BONDED, m_nativeWrapper.isNativelyBonded(), +// UNBONDED, m_nativeWrapper.isNativelyUnbonded(), + RECONNECTING_LONG_TERM, attemptingReconnect_longTerm, + ADVERTISING, !attemptingReconnect_longTerm && m_origin_latest == BleDeviceOrigin.FROM_DISCOVERY, + + overrideBondingStates + ); + + if( tracker != stateTracker_main() ) + { + stateTracker_main().update + ( + intent, + gattStatus, + BONDING, tracker.is(BONDING), + BONDED, tracker.is(BONDED), + UNBONDED, tracker.is(UNBONDED) + ); + } + } + + void disconnectWithReason(ConnectionFailListener.Status connectionFailReasonIfConnecting, Timing timing, int gattStatus, int bondFailReason, ReadWriteListener.ReadWriteEvent txnFailReason) + { + disconnectWithReason(null, connectionFailReasonIfConnecting, timing, gattStatus, bondFailReason, txnFailReason); + } + + void disconnectWithReason(PE_TaskPriority disconnectPriority_nullable, ConnectionFailListener.Status connectionFailReasonIfConnecting, Timing timing, int gattStatus, int bondFailReason, ReadWriteListener.ReadWriteEvent txnFailReason) + { + if (isNull()) return; + + final boolean cancelled = connectionFailReasonIfConnecting != null && connectionFailReasonIfConnecting.wasCancelled(); + final boolean explicit = connectionFailReasonIfConnecting != null && connectionFailReasonIfConnecting.wasExplicit(); + final BleDeviceState highestState = BleDeviceState.getTransitoryConnectionState(getStateMask()); + + if( explicit ) + { + m_reconnectMngr_shortTerm.stop(); + } + + if (cancelled) + { + m_useAutoConnect = m_alwaysUseAutoConnect; + + m_connectionFailMngr.onExplicitDisconnect(); + } + + final boolean wasConnecting = is_internal(CONNECTING_OVERALL); + final boolean attemptingReconnect_longTerm = cancelled ? false : is(RECONNECTING_LONG_TERM); + + E_Intent intent = cancelled ? E_Intent.INTENTIONAL : E_Intent.UNINTENTIONAL; + m_lastConnectOrDisconnectWasUserExplicit = intent == E_Intent.INTENTIONAL; + + final boolean cancellableFromConnect = BleDeviceConfig.bool(conf_device().disconnectIsCancellable, conf_mngr().disconnectIsCancellable); + final boolean tryBondingWhileDisconnected = connectionFailReasonIfConnecting == Status.BONDING_FAILED && BleDeviceConfig.bool(conf_device().tryBondingWhileDisconnected, conf_mngr().tryBondingWhileDisconnected); + final boolean underwentPossibleImplicitBondingAttempt = m_nativeWrapper.isNativelyUnbonded() && m_underwentPossibleImplicitBondingAttempt == true; + final boolean taskIsCancellable = cancellableFromConnect == true && tryBondingWhileDisconnected == false && underwentPossibleImplicitBondingAttempt == false; + + //--- DRK > Had this here but for a final connection failure it would add one more bond attempt after disconnected, which didn't make sense. + //--- Now all handled before connection. +// if( tryBondingWhileDisconnected ) +// { +// bond_justAddTheTask(E_TransactionLockBehavior.DOES_NOT_PASS); +// } + +// if (isAny_internal(CONNECTED, CONNECTING_OVERALL, INITIALIZED)) + { + saveLastDisconnect(explicit); + + final boolean saveLastDisconnectAfterTaskCompletes = connectionFailReasonIfConnecting != Status.ROGUE_DISCONNECT; + + final int taskOrdinal; + final boolean clearQueue; + + if (isAny_internal(CONNECTED, CONNECTING_OVERALL, INITIALIZED)) + { + final P_Task_Disconnect disconnectTask = new P_Task_Disconnect(this, m_taskStateListener, /*explicit=*/true, disconnectPriority_nullable, taskIsCancellable, saveLastDisconnectAfterTaskCompletes); + queue().add(disconnectTask); + + taskOrdinal = disconnectTask.getOrdinal(); + clearQueue = true; + + //--- DRK > Taking this out because the problem is this invokes + //--- callbacks to appland for e.g. a read failing because of EXPLICIT_DISCONNECT before the BleDeviceState change below. + //--- This is now moved to the clearQueue if block below so that callbacks to appland get sent *after* disconnect state change. +// m_queue.clearQueueOf(PA_Task_RequiresConnection.class, this); + } + else + { + taskOrdinal = -1; + clearQueue = false; + } + + final Object[] overrideBondingStates = m_bondMngr.getOverrideBondStatesForDisconnect(connectionFailReasonIfConnecting); + final boolean forceMainStateTracker = explicit; + + setStateToDisconnected(attemptingReconnect_longTerm, intent, gattStatus, forceMainStateTracker, overrideBondingStates); + + m_txnMngr.cancelAllTransactions(); + + if( clearQueue ) + { + queue().clearQueueOf(PA_Task_RequiresConnection.class, this, taskOrdinal); + } + + if (!attemptingReconnect_longTerm) + { + m_reconnectMngr_longTerm.stop(); + } + } +// else +// { +// if (!attemptingReconnect_longTerm) +// { +// stateTracker().update(intent, gattStatus, RECONNECTING_LONG_TERM, false); +// +// m_reconnectMngr_longTerm.stop(); +// } +// } + + if (wasConnecting) + { + if (getManager().ASSERT(connectionFailReasonIfConnecting != null)) + { + m_connectionFailMngr.onConnectionFailed(connectionFailReasonIfConnecting, timing, attemptingReconnect_longTerm, gattStatus, bondFailReason, highestState, ConnectionFailListener.AutoConnectUsage.NOT_APPLICABLE, txnFailReason); + } + } + } + + boolean lastDisconnectWasBecauseOfBleTurnOff() + { + return m_lastDisconnectWasBecauseOfBleTurnOff; + } + + private void saveLastDisconnect(final boolean explicit) + { + if( !is(INITIALIZED) ) return; + + final boolean hitDisk = BleDeviceConfig.bool(conf_device().manageLastDisconnectOnDisk, conf_mngr().manageLastDisconnectOnDisk); + + if (explicit) + { + getManager().m_diskOptionsMngr.saveLastDisconnect(getMacAddress(), State.ChangeIntent.INTENTIONAL, hitDisk); + } + else + { + getManager().m_diskOptionsMngr.saveLastDisconnect(getMacAddress(), State.ChangeIntent.UNINTENTIONAL, hitDisk); + } + } + + void onNativeDisconnect(final boolean wasExplicit, final int gattStatus, final boolean attemptShortTermReconnect, final boolean saveLastDisconnect) + { + if (!wasExplicit && !attemptShortTermReconnect) + { + //--- DRK > Just here so it's easy to filter out in logs. + logger().w("Disconnected Implicitly and attemptShortTermReconnect=" + attemptShortTermReconnect); + } + + m_lastDisconnectWasBecauseOfBleTurnOff = getManager().isAny(BleManagerState.TURNING_OFF, BleManagerState.OFF); + m_lastConnectOrDisconnectWasUserExplicit = wasExplicit; + + final BleDeviceState highestState = BleDeviceState.getTransitoryConnectionState(getStateMask()); + + if( saveLastDisconnect ) + { + saveLastDisconnect(wasExplicit); + } + + m_pollMngr.resetNotifyStates(); + +// if( attemptShortTermReconnect ) + { + m_nativeWrapper.closeGattIfNeeded(/* disconnectAlso= */false); + } + + final int overrideOrdinal = getManager().getTaskQueue().getCurrentOrdinal(); + + final boolean wasInitialized = is(INITIALIZED); + + if ( attemptShortTermReconnect ) + { + if (!wasExplicit && wasInitialized && !m_reconnectMngr_shortTerm.isRunning()) + { + m_stateTracker_shortTermReconnect.sync(stateTracker_main()); + m_reconnectMngr_shortTerm.attemptStart(gattStatus); + + if (m_reconnectMngr_shortTerm.isRunning()) + { + stateTracker_main().append(BleDeviceState.RECONNECTING_SHORT_TERM, E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + } + } + + final boolean isDisconnectedAfterReconnectingShortTermStateCallback = is(DISCONNECTED); + final boolean isConnectingBle = is(CONNECTING); + final boolean ignoreKindOf = isConnectingBle && wasExplicit; + final boolean cancelTasks; + + if( !ignoreKindOf ) + { + if (isDisconnectedAfterReconnectingShortTermStateCallback || wasExplicit) + { + m_connectionFailMngr.onExplicitDisconnect(); + + cancelTasks = false; + } + else + { + cancelTasks = true; + } + } + else + { + cancelTasks = false; + } + + //--- DRK > Fringe case bail out in case user calls disconnect() in state change for short term reconnect. + if (isDisconnectedAfterReconnectingShortTermStateCallback) + { + m_txnMngr.cancelAllTransactions(); + + return; + } + + final boolean isAttemptingReconnect_longTerm = is_internal(RECONNECTING_LONG_TERM); + final boolean wasConnectingOverall = is(CONNECTING_OVERALL); + + if( ignoreKindOf ) + { + //--- DRK > Shouldn't be possible to get here for now, just being future-proof. + if( cancelTasks ) + { + softlyCancelTasks(overrideOrdinal); + } + + m_txnMngr.cancelAllTransactions(); + + return; + } + + // BEGIN CALLBACKS TO USER + + final E_Intent intent = wasExplicit ? E_Intent.INTENTIONAL : E_Intent.UNINTENTIONAL; + setStateToDisconnected(isAttemptingReconnect_longTerm, intent, gattStatus, /*forceMainStateTracker=*/attemptShortTermReconnect == false, P_BondManager.OVERRIDE_EMPTY_STATES); + + //--- DRK > Technically user could have called connect() in callbacks above....bad form but we need to account for it. + final boolean isConnectingOverall_1 = is_internal(CONNECTING_OVERALL); + final boolean isStillAttemptingReconnect_longTerm = is_internal(RECONNECTING_LONG_TERM); + final ConnectionFailListener.Status connectionFailReason_nullable; + if (!m_reconnectMngr_shortTerm.isRunning() && wasConnectingOverall) + { + if (getManager().isAny(BleManagerState.TURNING_OFF, BleManagerState.OFF)) + { + connectionFailReason_nullable = ConnectionFailListener.Status.BLE_TURNING_OFF; + } + else + { + connectionFailReason_nullable = ConnectionFailListener.Status.ROGUE_DISCONNECT; + } + } + else + { + connectionFailReason_nullable = null; + } + + //--- DRK > Originally had is(DISCONNECTED) here, changed to is_internal, but then realized + //--- you probably want to (and it's safe to ) cancel all transactions all the time. + //--- I think the original intent was to account for the faulty assumption that someone + //--- would call connect again themselves in the state callback and somehow cancel the + //--- new transaction passed to connect()...BUT this can't happen cause the actual connect + //--- task has to run (even if it's redundant), and services have to be discovered. +// if (is_internal(DISCONNECTED)) + { + m_txnMngr.cancelAllTransactions(); + } + + //--- DRK > This was originally where cancelTasks = true; is now placed, before disconnected state change. Putting it after because of the following scenario: + //--- (1) Write task takes a long time (timeout scenario). Specifically, tab 4 onCharacteristicWrite gets called only internally (doesn't make it to callback) then keeps spinning. + //--- (2) An unsolicited disconnect comes in but we don't get a callback for the write. + //--- (3) Before, the soft cancellation was done before the state change, which made the connection failure reason due to authentication failing, not an unsolicited disconnect like it should be. + if( cancelTasks ) + { + softlyCancelTasks(overrideOrdinal); + } + + final int retrying__PE_Please; + + if (!isConnectingOverall_1 && !m_reconnectMngr_shortTerm.isRunning()) + { + if (connectionFailReason_nullable != null) + { + retrying__PE_Please = m_connectionFailMngr.onConnectionFailed(connectionFailReason_nullable, Timing.NOT_APPLICABLE, isStillAttemptingReconnect_longTerm, gattStatus, BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE, highestState, AutoConnectUsage.NOT_APPLICABLE, NULL_READWRITE_EVENT()); + } + else + { + retrying__PE_Please = ConnectionFailListener.Please.PE_Please_DO_NOT_RETRY; + } + } + else + { + retrying__PE_Please = ConnectionFailListener.Please.PE_Please_DO_NOT_RETRY; + } + + //--- DRK > Again, technically user could have called connect() in callbacks above....bad form but we need to account for it. + final boolean isConnectingOverall_2 = is_internal(CONNECTING_OVERALL); + + if (!m_reconnectMngr_shortTerm.isRunning() && !m_reconnectMngr_longTerm.isRunning() && !wasExplicit && wasInitialized && !isConnectingOverall_2) + { + m_reconnectMngr_longTerm.attemptStart(gattStatus); + + if (m_reconnectMngr_longTerm.isRunning()) + { + stateTracker_main().append(RECONNECTING_LONG_TERM, E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + } + + //--- DRK > Throwing in one last disconnect if it looks like we just came out of a short term reconnect + //--- that was connected and (e.g.) getting services and so this method was called but no long term reconnect was started + //--- so we have to bail out. + if( is(DISCONNECTED) && !is(RECONNECTING_LONG_TERM) && m_reconnectMngr_longTerm.isRunning() == false && m_reconnectMngr_shortTerm.isRunning() == false ) + { + if( m_nativeWrapper.isNativelyConnecting() || m_nativeWrapper.isNativelyConnected() ) + { + queue().add(new P_Task_Disconnect(this, m_taskStateListener, /*explicit=*/false, null, /*cancellable=*/true)); + } + } + + //--- DRK > Not actually entirely sure how, it may be legitimate, but a connect task can still be + //--- hanging out in the queue at this point, so we just make sure to clear the queue as a failsafe. + //--- TODO: Understand the conditions under which a connect task can still be queued...might be a bug upstream. + if (!isConnectingOverall_2 && retrying__PE_Please == ConnectionFailListener.Please.PE_Please_DO_NOT_RETRY) + { + queue().clearQueueOf(P_Task_Connect.class, this, -1); + } + } + + private void softlyCancelTasks(final int overrideOrdinal) + { + m_dummyDisconnectTask.setOverrideOrdinal(overrideOrdinal); + queue().softlyCancelTasks(m_dummyDisconnectTask); + queue().clearQueueOf(PA_Task_RequiresConnection.class, this, overrideOrdinal); + } + + private void stopPoll_private(final UUID serviceUuid, final UUID characteristicUuid, final Double interval, final ReadWriteListener listener) + { + enforceMainThread(); + + m_pollMngr.stopPoll(serviceUuid, characteristicUuid, interval, listener, /* usingNotify= */false); + } + + ReadWriteListener.ReadWriteEvent read_internal(final UUID serviceUuid, final UUID characteristicUuid, final UUID descriptorUuid, final Type type, final ReadWriteListener listener) + { + enforceMainThread(); + + final ReadWriteEvent earlyOutResult = serviceMngr_device().getEarlyOutEvent(serviceUuid, characteristicUuid, Uuids.INVALID, EMPTY_FUTURE_DATA, type, ReadWriteListener.Target.CHARACTERISTIC); + + if (earlyOutResult != null) + { + invokeReadWriteCallback(listener, earlyOutResult); + + return earlyOutResult; + } + + if( descriptorUuid == null || descriptorUuid.equals(Uuids.INVALID) ) + { + final BluetoothGattCharacteristic characteristic = getServiceManager().getCharacteristic(serviceUuid, characteristicUuid); + + final boolean requiresBonding = m_bondMngr.bondIfNeeded(characteristic.getUuid(), BondFilter.CharacteristicEventType.READ); + + queue().add(new P_Task_Read(this, characteristic, type, requiresBonding, listener, m_txnMngr.getCurrent(), getOverrideReadWritePriority())); + } + else + { + final boolean requiresBonding = false; + final BluetoothGattDescriptor descriptor = getNativeDescriptor(serviceUuid, characteristicUuid, descriptorUuid); + + queue().add(new P_Task_ReadDescriptor(this, descriptor, type, requiresBonding, listener, m_txnMngr.getCurrent(), getOverrideReadWritePriority())); + } + + return NULL_READWRITE_EVENT(); + } + + ReadWriteListener.ReadWriteEvent write_internal(final UUID serviceUuid, final UUID characteristicUuid, final UUID descriptorUuid, final FutureData data, final ReadWriteListener listener) + { + enforceMainThread(); + + final ReadWriteEvent earlyOutResult = serviceMngr_device().getEarlyOutEvent(serviceUuid, characteristicUuid, descriptorUuid, data, Type.WRITE, ReadWriteListener.Target.CHARACTERISTIC); + + if (earlyOutResult != null) + { + invokeReadWriteCallback(listener, earlyOutResult); + + return earlyOutResult; + } + + if( descriptorUuid == null || descriptorUuid.equals(Uuids.INVALID) ) + { + final BluetoothGattCharacteristic characteristic = getServiceManager().getCharacteristic(serviceUuid, characteristicUuid); + + final boolean requiresBonding = m_bondMngr.bondIfNeeded(characteristic.getUuid(), BondFilter.CharacteristicEventType.WRITE); + + queue().add(new P_Task_Write(this, characteristic, data, requiresBonding, listener, m_txnMngr.getCurrent(), getOverrideReadWritePriority())); + } + else + { + final boolean requiresBonding = false; + final BluetoothGattDescriptor descriptor = getNativeDescriptor(serviceUuid, characteristicUuid, descriptorUuid); + + queue().add(new P_Task_WriteDescriptor(this, descriptor, data, requiresBonding, listener, m_txnMngr.getCurrent(), getOverrideReadWritePriority())); + } + + return NULL_READWRITE_EVENT(); + } + + private ReadWriteListener.ReadWriteEvent disableNotify_private(UUID serviceUuid, UUID characteristicUuid, Double forceReadTimeout, ReadWriteListener listener) + { + enforceMainThread(); + + final ReadWriteEvent earlyOutResult = serviceMngr_device().getEarlyOutEvent(serviceUuid, characteristicUuid, Uuids.INVALID, EMPTY_FUTURE_DATA, Type.DISABLING_NOTIFICATION, ReadWriteListener.Target.CHARACTERISTIC); + + if (earlyOutResult != null) + { + invokeReadWriteCallback(listener, earlyOutResult); + + return earlyOutResult; + } + + final BluetoothGattCharacteristic characteristic = getServiceManager().getCharacteristic(serviceUuid, characteristicUuid); + + if (characteristic != null && is(CONNECTED)) + { + queue().add(new P_Task_ToggleNotify(this, characteristic, /* enable= */false, m_txnMngr.getCurrent(), listener, getOverrideReadWritePriority())); + } + + m_pollMngr.stopPoll(serviceUuid, characteristicUuid, forceReadTimeout, listener, /* usingNotify= */true); + + return NULL_READWRITE_EVENT(); + } + + E_Intent lastConnectDisconnectIntent() + { + if (m_lastConnectOrDisconnectWasUserExplicit == null) + { + return E_Intent.UNINTENTIONAL; + } + else + { + return m_lastConnectOrDisconnectWasUserExplicit ? E_Intent.INTENTIONAL : E_Intent.UNINTENTIONAL; + } + } + + PE_TaskPriority getOverrideReadWritePriority() + { + if (isAny(AUTHENTICATING, INITIALIZING)) + { + getManager().ASSERT(m_txnMngr.getCurrent() != null); + + return PE_TaskPriority.FOR_PRIORITY_READS_WRITES; + } + else + { + return PE_TaskPriority.FOR_NORMAL_READS_WRITES; + } + } + + void invokeReadWriteCallback(final ReadWriteListener listener_nullable, final ReadWriteListener.ReadWriteEvent event) + { + if( event.wasSuccess() && event.isRead() && event.target() == ReadWriteListener.Target.CHARACTERISTIC ) + { + final EpochTime timestamp = new EpochTime(); + final BleNodeConfig.HistoricalDataLogFilter.Source source = event.type().toHistoricalDataSource(); + + m_historicalDataMngr.add_single(event.charUuid(), event.data(), timestamp, source); + } + + m_txnMngr.onReadWriteResult(event); + + if (listener_nullable != null) + { + postEvent(listener_nullable, event); + } + + if (m_defaultReadWriteListener != null) + { + postEvent(m_defaultReadWriteListener, event); + } + + if (getManager() != null && getManager().m_defaultReadWriteListener != null) + { + postEvent(getManager().m_defaultReadWriteListener, event); + } + + m_txnMngr.onReadWriteResultCallbacksCalled(); + } + + ReadWriteListener.ReadWriteEvent NULL_READWRITE_EVENT() + { + if (m_nullReadWriteEvent != null) + { + return m_nullReadWriteEvent; + } + + m_nullReadWriteEvent = ReadWriteListener.ReadWriteEvent.NULL(this); + + return m_nullReadWriteEvent; + } + + ConnectionFailListener.ConnectionFailEvent NULL_CONNECTIONFAIL_INFO() + { + if (m_nullConnectionFailEvent != null) + { + return m_nullConnectionFailEvent; + } + + m_nullConnectionFailEvent = ConnectionFailListener.ConnectionFailEvent.NULL(this); + + return m_nullConnectionFailEvent; + } + + BondListener.BondEvent NULL_BOND_EVENT() + { + if (m_nullBondEvent != null) + { + return m_nullBondEvent; + } + + m_nullBondEvent = BondListener.BondEvent.NULL(this); + + return m_nullBondEvent; + } + + /** + * Returns <code>true</code> if <code>this</code> is referentially equal to {@link #NULL}. + */ + @Override public boolean isNull() + { + return m_isNull; + } + + /** + * Convenience forwarding of {@link BleManager#getDevice_next(BleDevice)}. + */ + public @Nullable(Prevalence.NEVER) BleDevice getNext() + { + return getManager().getDevice_next(this); + } + + /** + * Convenience forwarding of {@link BleManager#getDevice_next(BleDevice, BleDeviceState)}. + */ + public @Nullable(Prevalence.NEVER) BleDevice getNext(final BleDeviceState state) + { + return getManager().getDevice_next(this, state); + } + + /** + * Convenience forwarding of {@link BleManager#getDevice_next(BleDevice, Object...)}. + */ + public @Nullable(Prevalence.NEVER) BleDevice getNext(final Object ... query) + { + return getManager().getDevice_next(this, query); + } + + /** + * Convenience forwarding of {@link BleManager#getDevice_previous(BleDevice)}. + */ + public @Nullable(Prevalence.NEVER) BleDevice getPrevious() + { + return getManager().getDevice_previous(this); + } + + /** + * Convenience forwarding of {@link BleManager#getDevice_previous(BleDevice, BleDeviceState)}. + */ + public @Nullable(Prevalence.NEVER) BleDevice getPrevious(final BleDeviceState state) + { + return getManager().getDevice_previous(this, state); + } + + /** + * Convenience forwarding of {@link BleManager#getDevice_previous(BleDevice, Object...)}. + */ + public @Nullable(Prevalence.NEVER) BleDevice getPrevious(final Object ... query) + { + return getManager().getDevice_previous(this, query); + } + + /** + * Convenience forwarding of {@link BleManager#getDeviceIndex(BleDevice)}. + */ + public int getIndex() + { + return getManager().getDeviceIndex(this); + } + + /** + * Spells out "Decaff Coffee"...clever, right? I figure all zeros or + * something would actually have a higher chance of collision in a dev + * environment. + */ + static String NULL_MAC() + { + return "DE:CA:FF:C0:FF:EE"; + } + + static String NULL_STRING() + { + return "NULL"; + } + // static String NULL_MAC = "DE:AD:BE:EF:BA:BE"; + + private void postEvent(final GenericListener_Void listener, final Event event) + { + if (getManager().m_config.runOnMainThread && !Utils.isOnMainThread()) + { + postEventOnMain(listener, event); + } + else + { + listener.onEvent(event); + } + } + + private void postEventOnMain(final GenericListener_Void listener, final Event event) + { + getManager().m_mainThreadHandler.post(new Runnable() + { + @Override public void run() + { + listener.onEvent(event); + } + }); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDeviceConfig.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDeviceConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..e2eaa8cbf86f7f157a0f7963c4801814ed4ca68e --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDeviceConfig.java @@ -0,0 +1,607 @@ +package com.idevicesinc.sweetblue; + +import java.util.UUID; + +import android.bluetooth.BluetoothDevice; +import android.content.Context; +import android.content.SharedPreferences; +import android.os.Build; + +import com.idevicesinc.sweetblue.BleDevice.BondListener; +import com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener; +import com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent; +import com.idevicesinc.sweetblue.BleManager.DiscoveryListener.LifeCycle; +import com.idevicesinc.sweetblue.annotations.Nullable; +import com.idevicesinc.sweetblue.annotations.Immutable; +import com.idevicesinc.sweetblue.annotations.Nullable.Prevalence; +import com.idevicesinc.sweetblue.utils.*; + +/** + * Provides a number of options to (optionally) pass to {@link BleDevice#setConfig(BleDeviceConfig)}. + * This class is also a super class of {@link BleManagerConfig}, which you can pass + * to {@link BleManager#get(Context, BleManagerConfig)} or {@link BleManager#setConfig(BleManagerConfig)} to set default base options for all devices at once. + * For all options in this class, you may set the value to <code>null</code> when passed to {@link BleDevice#setConfig(BleDeviceConfig)} + * and the value will then be inherited from the {@link BleManagerConfig} passed to {@link BleManager#get(Context, BleManagerConfig)}. + * Otherwise, if the value is not <code>null</code> it will override any option in the {@link BleManagerConfig}. + * If an option is ultimately <code>null</code> (<code>null</code> when passed to {@link BleDevice#setConfig(BleDeviceConfig)} + * *and* {@link BleManager#get(Context, BleManagerConfig)}) then it is interpreted as <code>false</code> or {@link Interval#DISABLED}. + * <br><br> + * TIP: You can use {@link Interval#DISABLED} instead of <code>null</code> to disable any keepalive-based options, for code readability's sake. + * <br><br> + * TIP: You can use {@link #newNulled()} (or {@link #nullOut()}) then only set the few options you want for {@link BleDevice#setConfig(BleDeviceConfig)}. + */ +public class BleDeviceConfig extends BleNodeConfig implements Cloneable +{ + /** + * Default value for {@link #minScanTimeNeededForUndiscovery}. + */ + public static final double DEFAULT_MINIMUM_SCAN_TIME = 5.0; + + /** + * Default value for {@link #nForAverageRunningReadTime} and {@link #nForAverageRunningWriteTime}. + */ + public static final int DEFAULT_RUNNING_AVERAGE_N = 10; + + /** + * This is a good default value for {@link #undiscoveryKeepAlive}. By default {@link #undiscoveryKeepAlive} is {@link Interval#DISABLED}. + */ + public static final double DEFAULT_SCAN_KEEP_ALIVE = DEFAULT_MINIMUM_SCAN_TIME*2.5; + + /** + * Default value for {@link #rssiAutoPollRate}. + */ + public static final double DEFAULT_RSSI_AUTO_POLL_RATE = 10.0; + + /** + * Default fallback value for {@link #rssi_min}. + */ + public static final int DEFAULT_RSSI_MIN = -120; + + /** + * Default fallback value for {@link #rssi_max}. + */ + public static final int DEFAULT_RSSI_MAX = -30; + + /** + * Default value for {@link #defaultTxPower}. + */ + public static final int DEFAULT_TX_POWER = -50; + + /** + * Default is <code>false</code>. If the bluetooth device you are trying to connect to requires a pairing dialog to show up, you should + * set this to <code>true</code>. Android will do one of two things when you try to pair to the device. It will either A) show the pairing dialog, or + * B) show a notification in the notification area. When B happens, most people probably won't notice it, and think your app can't connect to the device. + * This uses an ugly hack to get the dialog to always display...it starts a CLASSIC bluetooth scan for a second, then stops it, and starts the bond. As crazy + * as it sounds, it works. Note that no devices will be discovered during this one second scan. + */ + public boolean forceBondDialog = false; + + /** + * Default is <code>true</code> - some devices can only reliably become {@link BleDeviceState#BONDED} while {@link BleDeviceState#DISCONNECTED}, + * so this option controls whether the library will internally change any bonding flow dictated by {@link #bondFilter} when a bond fails and try + * to bond again the next time the device is {@link BleDeviceState#DISCONNECTED}. + * <br><br> + * NOTE: This option was added after noticing this behavior with the Samsung Tab 4 running 4.4.4. + */ + @Nullable(Prevalence.NORMAL) + public Boolean tryBondingWhileDisconnected = true; + + /** + * Default is <code>true</code> - controls whether any bonding issues worked around if {@link #tryBondingWhileDisconnected} is <code>true</code> are remembered on disk + * (through {@link SharedPreferences}) so that bonding is as stable as possible across application sessions. + */ + @Nullable(Prevalence.NORMAL) + public Boolean tryBondingWhileDisconnected_manageOnDisk = true; + + /** + * Default is <code>true</code> - controls whether changes to a device's name through {@link BleDevice#setName(String)} are remembered on disk through + * {@link SharedPreferences}. If true, this means calls to {@link com.idevicesinc.sweetblue.BleDevice#getName_override()} will return the same thing + * even across app restarts. + */ + @Nullable(Prevalence.NORMAL) + public Boolean saveNameChangesToDisk = true; + + /** + * Default is <code>true</code> - whether to automatically get services immediately after a {@link BleDevice} is + * {@link BleDeviceState#CONNECTED}. Currently this is the only way to get a device's services. + */ + @Nullable(Prevalence.NORMAL) + public Boolean autoGetServices = true; + + /** + * Default is <code>true</code> - whether to automatically enable notifications that were enabled via a call to any of the enableNotify() methods + * in {@link BleDevice} upon device reconnection. Basically, if you enable notifications in an {@link com.idevicesinc.sweetblue.BleTransaction.Init} transaction, + * then set this to <code>false</code>, and use your transaction. + */ + public boolean autoEnableNotifiesOnReconnect = true; + + /** + * Default is <code>false</code> - if <code>true</code> and you call {@link BleDevice#startPoll(UUID, Interval, BleDevice.ReadWriteListener)} + * or {@link BleDevice#startChangeTrackingPoll(UUID, Interval, BleDevice.ReadWriteListener)()} with identical + * parameters then two identical polls would run which would probably be wasteful and unintentional. + * This option provides a defense against that situation. + */ + @Nullable(Prevalence.NORMAL) + public Boolean allowDuplicatePollEntries = false; + + /** + * Default is <code>false</code> - {@link BleDevice#getAverageReadTime()} and {@link BleDevice#getAverageWriteTime()} can be + * skewed if the peripheral you are connecting to adjusts its maximum throughput for OTA firmware updates and the like. + * Use this option to let the library know whether you want read/writes to factor in while {@link BleDeviceState#PERFORMING_OTA}. + * + * @see BleDevice#getAverageReadTime() + * @see BleDevice#getAverageWriteTime() + */ + @Nullable(Prevalence.NORMAL) + public Boolean includeOtaReadWriteTimesInAverage = false; + + /** + * Default is <code>true</code> - controls whether {@link BleManager} will keep a device in active memory when it goes {@link BleManagerState#OFF}. + * If <code>false</code> then a device will be purged and you'll have to do {@link BleManager#startScan()} again to discover devices + * if/when {@link BleManager} goes back {@link BleManagerState#ON}. + * <br><br> + * NOTE: if this flag is true for {@link BleManagerConfig} passed to {@link BleManager#get(Context, BleManagerConfig)} then this + * applies to all devices. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Prevalence.NORMAL) + public Boolean retainDeviceWhenBleTurnsOff = true; + + /** + * Default is <code>true</code> - only applicable if {@link #retainDeviceWhenBleTurnsOff} is also true. If {@link #retainDeviceWhenBleTurnsOff} + * is false then devices will be undiscovered when {@link BleManager} goes {@link BleManagerState#OFF} regardless. + * <br><br> + * NOTE: See NOTE for {@link #retainDeviceWhenBleTurnsOff} for how this applies to {@link BleManagerConfig}. + * + * @see #retainDeviceWhenBleTurnsOff + * @see #autoReconnectDeviceWhenBleTurnsBackOn + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Prevalence.NORMAL) + public Boolean undiscoverDeviceWhenBleTurnsOff = true; + + /** + * Default is <code>true</code> - if devices are kept in memory for a {@link BleManager#turnOff()}/{@link BleManager#turnOn()} cycle + * (or a {@link BleManager#reset()}) because {@link #retainDeviceWhenBleTurnsOff} is <code>true</code>, then a {@link BleDevice#connect()} + * will be attempted for any devices that were previously {@link BleDeviceState#CONNECTED}. + * <br><br> + * NOTE: See NOTE for {@link #retainDeviceWhenBleTurnsOff} for how this applies to {@link BleManagerConfig}. + * + * @see #retainDeviceWhenBleTurnsOff + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Prevalence.NORMAL) + public Boolean autoReconnectDeviceWhenBleTurnsBackOn = true; + + /** + * Default is <code>true</code> - controls whether the {@link com.idevicesinc.sweetblue.utils.State.ChangeIntent} behind a device going {@link BleDeviceState#DISCONNECTED} + * is saved to and loaded from disk so that it can be restored across app sessions, undiscoveries, and BLE + * {@link BleManagerState#OFF}->{@link BleManagerState#ON} cycles. This uses Android's {@link SharedPreferences} so does not require + * any extra permissions. The main advantage of this is the following scenario: User connects to a device through your app, + * does what they want, kills the app, then opens the app sometime later. {@link BleDevice#getLastDisconnectIntent()} returns + * {@link com.idevicesinc.sweetblue.utils.State.ChangeIntent#UNINTENTIONAL}, which lets you know that you can probably automatically connect to this device without user confirmation. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Prevalence.NORMAL) + public Boolean manageLastDisconnectOnDisk = true; + + /** + * Default is <code>true</code> - controls whether a {@link BleDevice} is placed into an in-memory cache when it becomes {@link BleDeviceState#UNDISCOVERED}. + * If <code>true</code>, subsequent calls to {@link BleManager.DiscoveryListener#onEvent(BleManager.DiscoveryListener.DiscoveryEvent)} with + * {@link LifeCycle#DISCOVERED} (or calls to {@link BleManager#newDevice(String)}) will return the cached {@link BleDevice} instead of creating a new one. + * <br><br> + * The advantages of caching are:<br> + * <ul> + * <li>Slightly better performance at the cost of some retained memory, especially in situations where you're frequently discovering and undiscovering many devices. + * <li>Resistance to future stack failures that would otherwise mean missing data like {@link BleDevice#getAdvertisedServices()} for future discovery events. + * <li>More resistant to potential "user error" of retaining devices in app-land after BleManager undiscovery. + * <ul><br> + * This is kept as an option in case there's some unforeseen problem with devices being cached for a certain application. + * + * See also {@link #minScanTimeNeededForUndiscovery}. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Prevalence.NORMAL) + public Boolean cacheDeviceOnUndiscovery = true; + + /** + * Default is <code>true</code> - controls whether {@link BleDevice.ConnectionFailListener.Status#BONDING_FAILED} is capable of + * inducing {@link ConnectionFailListener#onEvent(com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent)} + * while a device is {@link BleDeviceState#CONNECTING_OVERALL}. + */ + @Nullable(Prevalence.NORMAL) + public Boolean bondingFailFailsConnection = true; + + /** + * Default is <code>false</code> - whether to use <code>BluetoothGatt.refresh()</code> right before service discovery. + * This method is not in the public Android API, so its use is disabled by default. You may find it useful to enable + * if your remote device is routinely changing its gatt service profile. This method call supposedly clears a cache + * that would otherwise prevent changes from being discovered. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Prevalence.NORMAL) + public Boolean useGattRefresh = false; + + + /** + * The below explanation is wrong, only in that the default is now <code>false</code>. This is for backwards + * compatibility, as a customer noted bonding not working after this change. This will most likely go back to being + * <code>true</code> when version 3 comes out. + * + * Default is <code>true</code> - The normal way to bond in the native API is to use {@link BluetoothDevice#createBond()}. + * There is however also a overload method that's made invisible using the "hide" annotation that takes an int + * representing the desired transport mode. The default for {@link BluetoothDevice#createBond()} is {@link BluetoothDevice#TRANSPORT_AUTO}. + * You can look at the source to see that this is the case. The thing is, you *never* want the Android stack to automatically decide something. + * So if you set <code>useLeTransportForBonding</code> to true then SweetBlue will use the "private" overloaded method with + * {@link BluetoothDevice#TRANSPORT_LE}. This workaround anecdotally fixed bonding issues with LG G4 and Samsung S6 phones. + * Anecdotally because the public {@link BluetoothDevice#createBond()} was not working, tried the private one, it worked, + * but then the public {@link BluetoothDevice#createBond()} also worked flawlessly after that. + * But again, regardless, you should always choose explicit behavior over automatic when dealing with Android BLE. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Prevalence.NORMAL) + public Boolean useLeTransportForBonding = false; + + /** + * Default is {@link #DEFAULT_MINIMUM_SCAN_TIME} seconds - Undiscovery of devices must be + * approximated by checking when the last time was that we discovered a device, + * and if this time is greater than {@link #undiscoveryKeepAlive} then the device is undiscovered. However a scan + * operation must be allowed a certain amount of time to make sure it discovers all nearby devices that are + * still advertising. This is that time in seconds. + * <br><br> + * Use {@link Interval#DISABLED} to disable undiscovery altogether. + * + * @see BleManager.DiscoveryListener#onEvent(DiscoveryEvent) + * @see #undiscoveryKeepAlive + */ + @Nullable(Prevalence.NORMAL) + public Interval minScanTimeNeededForUndiscovery = Interval.secs(DEFAULT_MINIMUM_SCAN_TIME); + + /** + * Default is disabled - If a device exceeds this amount of time since its + * last discovery then it is a candidate for being undiscovered. + * The default for this option attempts to accommodate the worst Android phones (BLE-wise), which may make it seem + * like it takes a long time to undiscover a device. You may want to configure this number based on the phone or + * manufacturer. For example, based on testing, in order to make undiscovery snappier the Galaxy S5 could use lower times. + * <br><br> + * Use {@link Interval#DISABLED} to disable undiscovery altogether. + * + * @see BleManager.DiscoveryListener#onEvent(DiscoveryEvent) + * @see #minScanTimeNeededForUndiscovery + */ + @Nullable(Prevalence.NORMAL) + public Interval undiscoveryKeepAlive = Interval.DISABLED; + + /** + * Default is {@link #DEFAULT_RSSI_AUTO_POLL_RATE} - The rate at which a {@link BleDevice} will automatically poll for its {@link BleDevice#getRssi()} value + * after it's {@link BleDeviceState#CONNECTED}. You may also use {@link BleDevice#startRssiPoll(Interval, ReadWriteListener)} for more control and feedback. + */ + @Nullable(Prevalence.NORMAL) + public Interval rssiAutoPollRate = Interval.secs(DEFAULT_RSSI_AUTO_POLL_RATE); + + /** + * Default is {@link #DEFAULT_RUNNING_AVERAGE_N} - The number of historical write times that the library should keep track of when calculating average time. + * + * @see BleDevice#getAverageWriteTime() + * @see #nForAverageRunningReadTime + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Prevalence.NORMAL) + public Integer nForAverageRunningWriteTime = DEFAULT_RUNNING_AVERAGE_N; + + /** + * Default is {@link #DEFAULT_RUNNING_AVERAGE_N} - Same thing as {@link #nForAverageRunningWriteTime} but for reads. + * + * @see BleDevice#getAverageWriteTime() + * @see #nForAverageRunningWriteTime + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Prevalence.NORMAL) + public Integer nForAverageRunningReadTime = DEFAULT_RUNNING_AVERAGE_N; + + /** + * Default is {@link #DEFAULT_TX_POWER} - this value is used if we can't establish a device's calibrated transmission power from the device itself, + * either through its scan record or by reading the standard characteristic. To get a good value for this on a per-remote-device basis + * experimentally, simply run a sample app and use {@link BleDevice#startRssiPoll(Interval, ReadWriteListener)} and spit {@link BleDevice#getRssi()} + * to your log. The average value of {@link BleDevice#getRssi()} at one meter away is the value you should use for this config option. + * + * @see BleDevice#getTxPower() + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Prevalence.NORMAL) + public Integer defaultTxPower = DEFAULT_TX_POWER; + + /** + * Default is {@link #DEFAULT_RSSI_MIN} - the estimated minimum value for {@link BleDevice#getRssi()}. + */ + @Nullable(Prevalence.NORMAL) + public Integer rssi_min = DEFAULT_RSSI_MIN; + + /** + * Default is {@link #DEFAULT_RSSI_MAX} - the estimated maximum value for {@link BleDevice#getRssi()}. + */ + @Nullable(Prevalence.NORMAL) + public Integer rssi_max = DEFAULT_RSSI_MAX; + + /** + * Default is instance of {@link DefaultBondFilter}. + * + * @see BondFilter + */ + @Nullable(Prevalence.NORMAL) + public BondFilter bondFilter = new DefaultBondFilter(); + + /** + * Set a default {@link com.idevicesinc.sweetblue.BleTransaction.Auth} which will be used when + * auto connecting. + */ + @Nullable(Prevalence.NORMAL) + public BleTransaction.Auth defaultAuthTransaction = null; + + /** + * Set a default {@link com.idevicesinc.sweetblue.BleTransaction.Init} which will be used when + * auto connecting. + */ + @Nullable(Prevalence.NORMAL) + public BleTransaction.Init defaultInitTransaction = null; + + /** + * As of now there are two main default uses for this class... + * <br><br> + * The first is that in at least some cases it's not possible to determine beforehand whether a given characteristic requires + * bonding, so implementing this interface on {@link BleManagerConfig#bondFilter} lets the app give + * a hint to the library so it can bond before attempting to read or write an encrypted characteristic. + * Providing these hints lets the library handle things in a more deterministic and optimized fashion, but is not required. + * <br><br> + * The second is that some android devices have issues when it comes to bonding. So far the worst culprits + * are certain Sony and Motorola phones, so if it looks like {@link Build#MANUFACTURER} + * is either one of those, {@link DefaultBondFilter} is set to unbond upon discoveries and disconnects. + * Please look at the source of {@link DefaultBondFilter} for the most up-to-date spec. + * The problem seems to be associated with mismanagement of pairing keys by the OS and + * this brute force solution seems to be the only way to smooth things out. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface BondFilter + { + /** + * Just a dummy subclass of {@link BleDevice.StateListener.StateEvent} so that this gets auto-imported for implementations of {@link BondFilter}. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public static class StateChangeEvent extends BleDevice.StateListener.StateEvent + { + StateChangeEvent(BleDevice device, int oldStateBits, int newStateBits, int intentMask, int gattStatus) + { + super(device, oldStateBits, newStateBits, intentMask, gattStatus); + } + } + + /** + * An enumeration of the type of characteristic operation for a {@link CharacteristicEvent}. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public static enum CharacteristicEventType + { + /** + * Started from {@link BleDevice#read(UUID, ReadWriteListener)}, {@link BleDevice#startPoll(UUID, Interval, ReadWriteListener)}, etc. + */ + READ, + + /** + * Started from {@link BleDevice#write(UUID, byte[], ReadWriteListener)} or overloads. + */ + WRITE, + + /** + * Started from {@link BleDevice#enableNotify(UUID, ReadWriteListener)} or overloads. + */ + ENABLE_NOTIFY; + } + + /** + * Struct passed to {@link BondFilter#onEvent(CharacteristicEvent)}. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Immutable + public static class CharacteristicEvent extends Event + { + /** + * Returns the {@link BleDevice} in question. + */ + public BleDevice device(){ return m_device; } + private final BleDevice m_device; + + /** + * Convience to return the mac address of {@link #device()}. + */ + public String macAddress() { return m_device.getMacAddress(); } + + /** + * Returns the {@link UUID} of the characteristic in question. + */ + public UUID charUuid(){ return m_uuid; } + private final UUID m_uuid; + + /** + * Returns the type of characteristic operation, read, write, etc. + */ + public CharacteristicEventType type(){ return m_type; } + private final CharacteristicEventType m_type; + + CharacteristicEvent(BleDevice device, UUID uuid, CharacteristicEventType type) + { + m_device = device; + m_uuid = uuid; + m_type = type; + } + + @Override public String toString() + { + return Utils_String.toString + ( + this.getClass(), + "device", device().getName_debug(), + "charUuid", device().getManager().getLogger().charName(charUuid()), + "type", type() + ); + } + } + + /** + * Return value for the various interface methods of {@link BondFilter}. + * Use static constructor methods to create instances. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Immutable + public static class Please + { + private final Boolean m_bond; + private final BondListener m_bondListener; + + Please(Boolean bond, BondListener listener) + { + m_bond = bond; + m_bondListener = listener; + } + + Boolean bond_private() + { + return m_bond; + } + + BondListener listener() + { + return m_bondListener; + } + + /** + * Device should be bonded if it isn't already. + */ + public static Please bond() + { + return new Please(true, null); + } + + /** + * Returns {@link #bond()} if the given condition holds <code>true</code>, {@link #doNothing()} otherwise. + */ + public static Please bondIf(boolean condition) + { + return condition ? bond() : doNothing(); + } + + /** + * Same as {@link #bondIf(boolean)} but lets you pass a {@link BondListener} as well. + */ + public static Please bondIf(boolean condition, BondListener listener) + { + return condition ? bond(listener) : doNothing(); + } + + /** + * Same as {@link #bond()} but lets you pass a {@link BondListener} as well. + */ + public static Please bond(BondListener listener) + { + return new Please(true, listener); + } + + /** + * Device should be unbonded if it isn't already. + */ + public static Please unbond() + { + return new Please(false, null); + } + + /** + * Returns {@link #bond()} if the given condition holds <code>true</code>, {@link #doNothing()} otherwise. + */ + public static Please unbondIf(boolean condition) + { + return condition ? unbond() : doNothing(); + } + + /** + * Device's bond state should not be affected. + */ + public static Please doNothing() + { + return new Please(null, null); + } + } + + /** + * Called after a device undergoes a change in its {@link BleDeviceState}. + */ + Please onEvent(StateChangeEvent e); + + /** + * Called immediately before reading, writing, or enabling notification on a characteristic. + */ + Please onEvent(CharacteristicEvent e); + } + + /** + * Default implementation of {@link BondFilter} that unbonds for certain phone models upon discovery and disconnects. + * See further explanation in documentation for {@link BondFilter}. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Immutable + public static class DefaultBondFilter implements BondFilter + { + /** + * Forwards {@link Utils#phoneHasBondingIssues()}. Override to make this <code>true</code> for more (or fewer) phones. + */ + public boolean phoneHasBondingIssues() + { + return Utils.phoneHasBondingIssues(); + } + + @Override public Please onEvent(StateChangeEvent e) + { + if( phoneHasBondingIssues() ) + { + if( !e.device().is(BleDeviceState.BONDING) ) + { + return Please.unbondIf( e.didEnterAny(BleDeviceState.DISCOVERED, BleDeviceState.DISCONNECTED) ); + } + } + + return Please.doNothing(); + } + + @Override public Please onEvent(CharacteristicEvent e) + { + return Please.doNothing(); + } + } + + /** + * Creates a {@link BleDeviceConfig} with all default options set. See each member of this class + * for what the default options are set to. Consider using {@link #newNulled()} also. + */ + public BleDeviceConfig() + { + } + + /** + * Convenience method that returns a nulled out {@link BleDeviceConfig}, which is useful + * when using {@link BleDevice#setConfig(BleDeviceConfig)} to only override a few options + * from {@link BleManagerConfig} passed to {@link BleManager#get(Context, BleManagerConfig)} + * or {@link BleManager#setConfig(BleManagerConfig)}. + */ + public static BleDeviceConfig newNulled() + { + final BleDeviceConfig config = new BleDeviceConfig(); + config.nullOut(); + + return config; + } + + @Override protected BleDeviceConfig clone() + { + return (BleDeviceConfig) super.clone(); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDeviceIterator.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDeviceIterator.java new file mode 100644 index 0000000000000000000000000000000000000000..72973e2752728f8b999bddbc073e0f09c80c3ccc --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDeviceIterator.java @@ -0,0 +1,151 @@ +package com.idevicesinc.sweetblue; + +import com.idevicesinc.sweetblue.utils.Utils_State; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.NoSuchElementException; + +/** + * Implementation of {@link Iterator} for {@link BleDevice} instances, returned from {@link BleManager#getDevices()} and its overloads. + */ +public class BleDeviceIterator implements Iterator<BleDevice> +{ + private final List<Integer> m_all_states; + private final List<BleDevice> m_all; + private final Object[] m_query; + private final int m_mask; + + private Integer m_next = null; + private int m_base = 0; + private BleDevice m_deviceReturned; + + public BleDeviceIterator(List<BleDevice> all) + { + m_all = all; + m_query = null; + m_mask = BleDeviceState.FULL_MASK; + + m_all_states = null; + + initStateList(); + } + + public BleDeviceIterator(List<BleDevice> all, final int mask) + { + m_all = all; + m_query = null; + m_mask = mask; + + m_all_states = new ArrayList<Integer>(); + + initStateList(); + } + + public BleDeviceIterator(List<BleDevice> all, Object ... query) + { + m_all = all; + m_query = query; + m_mask = 0x0; + + m_all_states = new ArrayList<Integer>(); + + initStateList(); + } + + private void initStateList() + { + if( m_all_states == null ) return; + + for( int i = 0; i < m_all.size(); i++ ) + { + final BleDevice ith = m_all.get(i); + + m_all_states.add(ith.getStateMask()); + } + } + + @Override public boolean hasNext() + { + if( m_next == null ) + { + if( !findNext() ) return false; + } + + return true; + } + + private boolean findNext() + { + if( m_next != null ) return true; + + if( m_query == null ) + { + for( int i = m_base; i < m_all.size(); i++ ) + { + final int mask = m_all_states != null ? m_all_states.get(i) : BleDeviceState.FULL_MASK; + + if( (mask & m_mask) != 0x0 ) + { + m_next = i; + + return true; + } + } + } + else + { + for( int i = m_base; i < m_all.size(); i++ ) + { + final int mask = m_all_states != null ? m_all_states.get(i) : BleDeviceState.FULL_MASK; + + if( Utils_State.query(mask, m_query) ) + { + m_next = i; + + return true; + } + } + } + + return false; + } + + private BleDevice next_private() + { + if( m_next == null ) + { + if( !findNext() ) return null; + } + + int next = m_next; + m_next = null; + m_base = next+1; + + return m_all.get(next); + } + + @Override public BleDevice next() + { + m_deviceReturned = next_private(); + + //--- DRK > Conforming to soft throw requirements dictated by Iterator interface. + if( m_deviceReturned == null ) throw new NoSuchElementException("No more BleDevice instances in this iterator."); + + return m_deviceReturned; + } + + /** + * Calls {@link BleManager#undiscover(BleDevice)}, removing it from the {@link BleManager} singleton's internal list. + */ + @Override public void remove() + { + //--- DRK > Conforming to soft throw requirements dictated by Iterator interface. + if( m_deviceReturned == null ) throw new IllegalStateException("remove() was already called."); + + final BleDevice toUndiscover = m_deviceReturned; + m_deviceReturned = null; + toUndiscover.undiscover(); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDeviceOrigin.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDeviceOrigin.java new file mode 100644 index 0000000000000000000000000000000000000000..c4b967546497194e15128843ce6a248d39bdaf29 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDeviceOrigin.java @@ -0,0 +1,19 @@ +package com.idevicesinc.sweetblue; + +/** + * Enumeration signifying how a {@link BleDevice} instance was created. + */ +public enum BleDeviceOrigin +{ + /** + * Created from {@link BleManager#newDevice(String, String)} or overloads. + * This type of device can only be {@link BleDeviceState#UNDISCOVERED} by using + * {@link BleManager#undiscover(BleDevice)}. + */ + EXPLICIT, + + /** + * Created from an advertising discovery right before {@link BleManager.DiscoveryListener#onEvent(com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent)} is called. + */ + FROM_DISCOVERY; +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDeviceState.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDeviceState.java new file mode 100644 index 0000000000000000000000000000000000000000..b6c1620d372cd263cf037c528f714625d9ceae9d --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleDeviceState.java @@ -0,0 +1,256 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothProfile; + +import com.idevicesinc.sweetblue.BleDevice.StateListener; +import com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent; +import com.idevicesinc.sweetblue.BleManager.DiscoveryListener.LifeCycle; +import com.idevicesinc.sweetblue.annotations.Advanced; +import com.idevicesinc.sweetblue.utils.BitwiseEnum; +import com.idevicesinc.sweetblue.utils.State; +import com.idevicesinc.sweetblue.utils.Utils_Byte; +import java.util.UUID; + +/** + * An enumeration of the various states that a {@link BleDevice} can be in. + * Note that a device can and usually will be in multiple states simultaneously. + * Use {@link BleDevice#setListener_State(StateListener)} to be notified of state changes. + * + * @see BleDevice.StateListener + */ +public enum BleDeviceState implements State +{ + /** + * Dummy value returned from any method that would otherwise return Java's built-in <code>null</code>. + * A normal {@link BleDevice} will never be in this state, but this will be the sole state of {@link BleDevice#NULL}. + */ + NULL, + + /** + * The device has been undiscovered and you should have been notified through {@link BleManager.DiscoveryListener#onEvent(DiscoveryEvent)}. + * This means the object is effectively dead. {@link BleManager} has removed all references to it and you should do the same. + */ + UNDISCOVERED, + + /** + * If {@link BleNodeConfig#reconnectFilter} is set appropriately and the device implicitly disconnects, either through going out of range, + * signal disruption, or whatever, then the device will enter this state. It will continue in this state until you return + * {@link BleNodeConfig.ReconnectFilter.Please#stopRetrying()} from {@link BleNodeConfig.ReconnectFilter#onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)} + * or call {@link BleDevice#disconnect()} or when the device actually successfully reconnects. + * + * @see #RECONNECTING_SHORT_TERM + */ + RECONNECTING_LONG_TERM, + + /** + * If {@link BleNodeConfig#reconnectFilter} is set appropriately and the device implicitly disconnects this state will be entered. + * Unlike with {@link #RECONNECTING_LONG_TERM}, entering this state does not mean that the {@link BleDevice} becomes {@link #DISCONNECTED}. + * By all outward appearances the library treats the {@link BleDevice} as still being {@link #CONNECTED} while transparently trying + * to reconnect under the hood using {@link BleNodeConfig#reconnectFilter}. You can even perform + * {@link BleDevice#read(UUID, BleDevice.ReadWriteListener)}, {@link BleDevice#write(java.util.UUID, byte[])}, etc. + * and they will be queued up until the device *actually* reconnects under the hood. + * + * @see #RECONNECTING_LONG_TERM + */ + @Advanced + RECONNECTING_SHORT_TERM, + + /** + * The device will always be in this state unless it becomes {@link #UNDISCOVERED}. + */ + DISCOVERED, + + /** + * When {@link BleDevice#getOrigin()} is {@link BleDeviceOrigin#FROM_DISCOVERY}, a device will always be in this state while {@link #CONNECTED} + * is not active. Note that this doesn't *necessarily* mean that the actual physical device is advertising, just that it was {@link LifeCycle#DISCOVERED} + * or {@link LifeCycle#REDISCOVERED} through a {@link BleManager#startScan()}, so it is still assumed to be advertising. + */ + ADVERTISING, + + /** + * The device will always be in this state while {@link #CONNECTED} is not active. Analogous to {@link BluetoothProfile#STATE_DISCONNECTED}. + */ + DISCONNECTED, + + /** + * Analogous to {@link BluetoothDevice#BOND_NONE}. May not be relevant for your application if you don't use encrypted characteristics. + */ + UNBONDED, + + /** + * Analogous to {@link BluetoothDevice#BOND_BONDING}. May not be relevant for your application if you don't use encrypted characteristics. + * From this state, a device will either become {@link BleDeviceState#BONDED} (if successful) or {@link BleDeviceState#UNBONDED}. + * If the latter, use {@link BleDevice.BondListener} to get further information on what happened. + */ + BONDING, + + /** + * Analogous to {@link BluetoothDevice#BOND_BONDED}. May not be relevant for your application if you don't use encrypted characteristics. + */ + BONDED, + + /** + * A convenience flag for checking if the device is connecting in an overall sense. This state is active if any one of {@link #CONNECTING}, + * {@link #DISCOVERING_SERVICES}, {@link #AUTHENTICATING}, or {@link #INITIALIZING} is also active. It is suggested to have {@link #BONDING} + * be a part of this also using {@link BleDeviceConfig#bondFilter} but technically {@link #BONDING} can be done outside of this state. + */ + CONNECTING_OVERALL, + + /** + * Analogous to {@link BluetoothProfile#STATE_CONNECTING}. If this state is active then we're in the middle of establishing an actual BLE connection. + */ + CONNECTING, + + /** + * Analogous to {@link BluetoothProfile#STATE_CONNECTED}. Once this state becomes active we don't consider ourselves "fully" connected + * because we still generally have to discover services and maybe do a few reads or writes to initialize things. So generally speaking + * no significant action should be taken when the {@link BleDevice} becomes {@link #CONNECTED}. Instead it's best to listen for {@link #INITIALIZED}. + */ + CONNECTED, + + /** + * This state is active while we request a list of services from the native stack after becoming {@link #CONNECTED}. + */ + DISCOVERING_SERVICES, + + /** + * This state is active after {@link #DISCOVERING_SERVICES} completes successfully. + */ + SERVICES_DISCOVERED, + + /** + * This state can only become active if you use {@link BleDevice#connect(BleTransaction.Auth)} or {@link BleDevice#connect(BleTransaction.Auth, BleTransaction.Init)} + * to start a connection with an authentication transaction. + */ + AUTHENTICATING, + + /** + * This state becomes active either if the {@link BleTransaction} provided to {@link BleDevice#connect(BleTransaction.Auth)} or + * {@link BleDevice#connect(BleTransaction.Auth, BleTransaction.Init)} succeeds with {@link BleTransaction#succeed()}, OR if you use + * {@link BleDevice#connect()} or {@link BleDevice#connect(BleTransaction.Init)} - i.e. you connect without authentication. + * In the latter case the {@link #AUTHENTICATING} state is skipped and we go straight to being implicitly {@link #AUTHENTICATED}. + */ + AUTHENTICATED, + + /** + * This state can only become active if you use {@link BleDevice#connect(BleTransaction.Init)} or {@link BleDevice#connect(BleTransaction.Auth, BleTransaction.Init)} + * to start a connection with an initialization transaction. + */ + INITIALIZING, + + /** + * This is generally the state you want to listen for to consider your {@link BleDevice} "fully" connected and ready to go, instead of + * basing it off of just {@link #CONNECTED}. + * <br><br> + * This state becomes active either if the {@link BleTransaction} provided to {@link BleDevice#connect(BleTransaction.Init)} or + * {@link BleDevice#connect(BleTransaction.Auth, BleTransaction.Init)} succeeds with {@link BleTransaction#succeed()}, OR if you use + * {@link BleDevice#connect()} or {@link BleDevice#connect(BleTransaction.Auth)} or etc.- i.e. you connect without an initialization + * transaction. In the latter case the {@link #INITIALIZING} state is skipped and we go straight to being implicitly {@link #INITIALIZED}. + */ + INITIALIZED, + + /** + * This state for "over-the-air" updates becomes active when you call {@link BleDevice#performOta(BleTransaction.Ota)} and remains active until the provided + * {@link BleTransaction} calls {@link BleTransaction#succeed()} or {@link BleTransaction#fail()} (or of course if your {@link BleDevice} + * becomes {@link #DISCONNECTED}). + */ + PERFORMING_OTA; + + static final int PURGEABLE_MASK = DISCOVERED.bit() | DISCONNECTED.bit() | UNBONDED.bit() | BONDING.bit() | BONDED.bit() | ADVERTISING.bit(); + + @Override public boolean overlaps(int mask) + { + return (bit() & mask) != 0x0; + } + + @Override public int bit() + { + return 0x1 << ordinal(); + } + + @Override public boolean didEnter(int oldStateBits, int newStateBits) + { + return !this.overlaps(oldStateBits) && this.overlaps(newStateBits); + } + + @Override public boolean didExit(int oldStateBits, int newStateBits) + { + return this.overlaps(oldStateBits) && !this.overlaps(newStateBits); + } + + @Override public int or(BitwiseEnum state) + { + return this.bit() | state.bit(); + } + + @Override public int or(int bits) + { + return this.bit() | bits; + } + + /** + * Returns same as {@link #values()}, but for performance reasons this does not return a new array every time. + */ + public static BleDeviceState[] VALUES() + { + s_values = s_values != null ? s_values : values(); + + return s_values; + } + private static BleDeviceState[] s_values = null; + + /** + * Full bitwise mask made by ORing all {@link BleDeviceState} instances together. + */ + public static final int FULL_MASK = Utils_Byte.toBits(VALUES()); + + /** + * A convenience for UI purposes, this returns the "highest" connection state representing + * a transition from one state to another, so something with "ING" in the name (except {@link #PERFORMING_OTA}). + * Chronologically this method returns {@link #CONNECTING}, {@link #DISCOVERING_SERVICES}, + * {@link #AUTHENTICATING} (if {@link BleDevice#connect(BleTransaction.Auth)} or + * {@link BleDevice#connect(BleTransaction.Auth, BleTransaction.Init)} is called), {@link #BONDING} (if relevant), + * and {@link #INITIALIZING} (if {@link BleDevice#connect(BleTransaction.Init)} or + * {@link BleDevice#connect(BleTransaction.Auth, BleTransaction.Init)} is called). + * + * @param stateMask Generally the value returned by {@link BleDevice#getStateMask()}. + */ + public static BleDeviceState getTransitoryConnectionState(int stateMask) + { + if( CONNECTED.overlaps(stateMask) ) + { + if( INITIALIZING.overlaps(stateMask) ) return INITIALIZING; + if( BONDING.overlaps(stateMask) ) return BONDING; + if( AUTHENTICATING.overlaps(stateMask) ) return AUTHENTICATING; + if( DISCOVERING_SERVICES.overlaps(stateMask) ) return DISCOVERING_SERVICES; + } + else + { + if( BONDING.overlaps(stateMask) ) return BONDING; + if( CONNECTING.overlaps(stateMask) ) return CONNECTING; + } + + if( CONNECTING_OVERALL.overlaps(stateMask) ) return CONNECTING_OVERALL; + + return NULL; + } + + int getConnectionOrdinal() + { + switch(this) + { + case CONNECTING: return 0; + case DISCOVERING_SERVICES: return 1; + case AUTHENTICATING: return 2; + case BONDING: return 3; + case INITIALIZING: return 4; + default: return -1; + } + } + + @Override public boolean isNull() + { + return this == NULL; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleManager.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleManager.java new file mode 100644 index 0000000000000000000000000000000000000000..c7cb15f1f12c3c9868c1f742741289011be6c772 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleManager.java @@ -0,0 +1,3433 @@ +package com.idevicesinc.sweetblue; + +import static com.idevicesinc.sweetblue.BleManagerState.*; + +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import java.util.UUID; +import android.Manifest; +import android.app.Activity; +import android.app.Application; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothManager; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.DeadObjectException; +import android.os.Handler; +import android.provider.Settings; +import android.text.TextUtils; +import android.util.Log; +import com.idevicesinc.sweetblue.BleDevice.BondListener.BondEvent; +import com.idevicesinc.sweetblue.BleDevice.BondListener.Status; +import com.idevicesinc.sweetblue.BleDevice.BondListener; +import com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener; +import com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent; +import com.idevicesinc.sweetblue.BleManager.DiscoveryListener.LifeCycle; +import com.idevicesinc.sweetblue.BleServer.IncomingListener; +import com.idevicesinc.sweetblue.BleManager.ResetListener.ResetEvent; +import com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOh; +import com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter; +import com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.Please; +import com.idevicesinc.sweetblue.PA_StateTracker.E_Intent; +import com.idevicesinc.sweetblue.annotations.Advanced; +import com.idevicesinc.sweetblue.annotations.Nullable; +import com.idevicesinc.sweetblue.annotations.Immutable; +import com.idevicesinc.sweetblue.annotations.Nullable.Prevalence; +import com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase; +import com.idevicesinc.sweetblue.compat.L_Util; +import com.idevicesinc.sweetblue.compat.M_Util; +import com.idevicesinc.sweetblue.utils.EpochTime; +import com.idevicesinc.sweetblue.utils.Event; +import com.idevicesinc.sweetblue.utils.ForEach_Breakable; +import com.idevicesinc.sweetblue.utils.ForEach_Void; +import com.idevicesinc.sweetblue.utils.HistoricalData; +import com.idevicesinc.sweetblue.utils.Interval; +import com.idevicesinc.sweetblue.utils.Percent; +import com.idevicesinc.sweetblue.utils.State; +import com.idevicesinc.sweetblue.utils.UpdateLoop; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Utils_ScanRecord; +import com.idevicesinc.sweetblue.utils.Utils_String; + +/** + * The entry point to the library. Get a singleton instance using {@link #get(android.content.Context, BleManagerConfig)} or its overloads. Make sure + * to hook up this manager to lifecycle events for your app as a whole: {@link #onPause()} and {@link #onResume()}. + * <br><br> + * Also put the following entries (or something similar) in the root of your AndroidManifest.xml: + * <br><br> + * {@code <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="23" />}<br> + * {@code <uses-permission android:name="android.permission.BLUETOOTH" /> }<br> + * {@code <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> }<br> + * {@code <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" /> }<br> + * {@code <uses-permission android:name="android.permission.WAKE_LOCK" /> } <br> + * {@code <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> } <br> + * {@code <uses-feature android:name="android.hardware.bluetooth_le" android:required="true" /> }<br> + * <br><br> + * {@link android.Manifest.permission#WAKE_LOCK} is recommended but optional, needed if {@link BleManagerConfig#manageCpuWakeLock} is enabled to aid with reconnect loops. + * As of now it's enabled by default. + * <br><br> + * {@link android.Manifest.permission#ACCESS_COARSE_LOCATION} (or {@link android.Manifest.permission#ACCESS_FINE_LOCATION}) + * is also strongly recommended but optional. Without it, {@link BleManager#startScan()} and overloads will not properly return results in {@link android.os.Build.VERSION_CODES#M} and above. + * See {@link #startScan(Interval, BleManagerConfig.ScanFilter, DiscoveryListener)} for more information. + * <br><br> + * Now here is a simple example usage:<pre><code> + * public class MyActivity extends Activity + * { + * {@literal @}Override protected void onCreate(Bundle savedInstanceState) + * { + * // A ScanFilter decides whether a BleDevice instance will be created + * // and passed to the DiscoveryListener implementation below. + * final ScanFilter scanFilter = new ScanFilter() + * { + * {@literal @}Override public Please onEvent(ScanEvent e) + * { + * return Please.acknowledgeIf(e.name_normalized().contains("my_device")) + * .thenStopScan(); + * } + * }; + * + * // New BleDevice instances are provided through this listener. + * // Nested listeners then listen for connection and read results. + * final DiscoveryListener discoveryListener = new DiscoveryListener() + * { + * {@literal @}Override public void onEvent(DiscoveryEvent e) + * { + * if( e.was(LifeCycle.DISCOVERED) ) + * { + * e.device().connect(new StateListener() + * { + * {@literal @}Override public void onEvent(StateEvent e) + * { + * if( e.didEnter(BleDeviceState.INITIALIZED) ) + * { + * e.device().read(Uuids.BATTERY_LEVEL, new ReadWriteListener() + * { + * {@literal @}Override public void onEvent(ReadWriteEvent e) + * { + * if( e.wasSuccess() ) + * { + * Log.i("", "Battery level is " + e.data_byte() + "%"); + * } + * } + * }); + * } + * } + * }); + * } + * } + * }; + * + * // Helps you navigate the treacherous waters of Android M Location requirements for scanning. + * BluetoothEnabler.start(this, new DefaultBluetoothEnablerFilter() + * { + * {@literal @}Override public Please onEvent(BluetoothEnablerEvent e) + * { + * if( e.isDone() ) + * { + * e.bleManager().startScan(scanFilter, discoveryListener); + * } + * + * return super.onEvent(e); + * } + * }); + * } + * </code> + * </pre> + */ +public class BleManager +{ + /** + * Provide an implementation to {@link BleManager#setListener_Discovery(BleManager.DiscoveryListener)} to receive + * callbacks when a device is newly discovered, rediscovered, or undiscovered after calling various {@link BleManager#startScan()} + * or {@link BleManager#startPeriodicScan(Interval, Interval)} methods. You can also provide this to various + * overloads of {@link BleManager#startScan()} and {@link BleManager#startPeriodicScan(Interval, Interval)}. + */ + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface DiscoveryListener + { + /** + * Enumerates changes in the "discovered" state of a device. + * Used at {@link BleManager.DiscoveryListener.DiscoveryEvent#lifeCycle()}. + */ + public static enum LifeCycle + { + /** + * Used when a device is discovered for the first time after + * calling {@link BleManager#startScan()} (or its overloads) + * or {@link BleManager#startPeriodicScan(Interval, Interval)}. + */ + DISCOVERED, + + /** + * Used when a device is rediscovered after already being discovered at least once. + */ + REDISCOVERED, + + /** + * Used when a device is "undiscovered" after being discovered at least once. There is no native equivalent + * for this callback. Undiscovery is approximated with a timeout based on the last time we discovered a device, configured + * by {@link BleDeviceConfig#undiscoveryKeepAlive}. This option is disabled by default. If set, you should expect that the undiscovery + * callback will take some amount of time to receive after an advertising device is turned off or goes out of range or what have you. + * It's generally not as fast as other state changes like {@link BleDeviceState#DISCONNECTED} or getting {@link BleDeviceState#DISCOVERED} in the first place. + * + * @see BleDeviceConfig#minScanTimeNeededForUndiscovery + * @see BleDeviceConfig#undiscoveryKeepAlive + */ + UNDISCOVERED; + } + + /** + * Struct passed to {@link BleManager.DiscoveryListener#onEvent(BleManager.DiscoveryListener.DiscoveryEvent)}. + */ + @Immutable + public static class DiscoveryEvent extends Event + { + /** + * The {@link BleManager} which is currently {@link BleManagerState#SCANNING}. + */ + public BleManager manager(){ return device().getManager(); } + + /** + * The device in question. + */ + public BleDevice device(){ return m_device; } + private final BleDevice m_device; + + /** + * Convience to return the mac address of {@link #device()}. + */ + public String macAddress() { return m_device.getMacAddress(); } + + /** + * The discovery {@link BleManager.DiscoveryListener.LifeCycle} that the device has undergone. + */ + public LifeCycle lifeCycle(){ return m_lifeCycle; } + private final LifeCycle m_lifeCycle; + + DiscoveryEvent(final BleDevice device, final LifeCycle lifeCycle) + { + m_device = device; + m_lifeCycle = lifeCycle; + } + + /** + * Forwards {@link BleDevice#getRssi()}. + */ + public int rssi() + { + return device().getRssi(); + } + + /** + * Forwards {@link BleDevice#getRssiPercent()}. + */ + public Percent rssi_percent() + { + return device().getRssiPercent(); + } + + /** + * Convenience method for checking equality of given {@link BleManager.DiscoveryListener.LifeCycle} and {@link #lifeCycle()}. + */ + public boolean was(LifeCycle lifeCycle) + { + return lifeCycle == lifeCycle(); + } + + @Override public String toString() + { + return Utils_String.toString + ( + this.getClass(), + "device", device().getName_debug(), + "lifeCycle", lifeCycle(), + "rssi", rssi(), + "rssi_percent", rssi_percent() + ); + } + } + + /** + * Called when the discovery lifecycle of a device is updated. + * <br><br> + * TIP: Take a look at {@link BleDevice#getLastDisconnectIntent()}. If it is {@link com.idevicesinc.sweetblue.utils.State.ChangeIntent#UNINTENTIONAL} + * then from a user-experience perspective it's most often best to automatically connect without user confirmation. + */ + void onEvent(final DiscoveryEvent e); + } + + /** + * Provide an implementation to {@link BleManager#setListener_State(BleManager.StateListener)} to receive callbacks + * when the {@link BleManager} undergoes a {@link BleManagerState} change. + */ + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface StateListener + { + /** + * Subclass that adds the manager field. + */ + @Immutable + public static class StateEvent extends State.ChangeEvent<BleManagerState> + { + /** + * The singleton manager undergoing the state change. + */ + public BleManager manager(){ return m_manager; } + private final BleManager m_manager; + + StateEvent(final BleManager manager, final int oldStateBits, final int newStateBits, final int intentMask) + { + super(oldStateBits, newStateBits, intentMask); + + this.m_manager = manager; + } + + @Override public String toString() + { + return Utils_String.toString + ( + this.getClass(), + "entered", Utils_String.toString(enterMask(), BleManagerState.VALUES()), + "exited", Utils_String.toString(exitMask(), BleManagerState.VALUES()), + "current", Utils_String.toString(newStateBits(), BleManagerState.VALUES()) + ); + } + } + + /** + * Called when the manager's abstracted {@link BleManagerState} changes. + */ + void onEvent(final StateEvent e); + } + + /** + * Provide an implementation to {@link BleManager#setListener_NativeState(BleManager.NativeStateListener)} to receive callbacks + * when the {@link BleManager} undergoes a *native* {@link BleManagerState} change. This is similar to {@link BleManager.StateListener} + * but reflects what is going on in the actual underlying stack, which may lag slightly behind the + * abstracted state reflected by {@link BleManager.StateListener}. Most apps will not find this callback useful. + */ + @Advanced + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface NativeStateListener + { + /** + * Class declared here to be make it implicitly imported for overrides. + */ + @Advanced + @Immutable + public static class NativeStateEvent extends StateListener.StateEvent + { + NativeStateEvent(final BleManager manager, final int oldStateBits, final int newStateBits, final int intentMask) + { + super(manager, oldStateBits, newStateBits, intentMask); + } + } + + /** + * Called when the manager's native bitwise {@link BleManagerState} changes. As many bits as possible are flipped at the same time. + */ + @Advanced + void onEvent(final NativeStateEvent e); + } + + /** + * Provide an implementation to {@link BleManager#setListener_UhOh(BleManager.UhOhListener)} + * to receive a callback when an {@link BleManager.UhOhListener.UhOh} occurs. + * + * @see BleManager.UhOhListener.UhOh + */ + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface UhOhListener + { + /** + * An UhOh is a warning about an exceptional (in the bad sense) and unfixable problem with the underlying stack that + * the app can warn its user about. It's kind of like an {@link Exception} but they can be so common + * that using {@link Exception} would render this library unusable without a rat's nest of try/catches. + * Instead you implement {@link BleManager.UhOhListener} to receive them. Each {@link BleManager.UhOhListener.UhOh} has a {@link BleManager.UhOhListener.UhOh#getRemedy()} + * that suggests what might be done about it. + * + * @see BleManager.UhOhListener + * @see BleManager#setListener_UhOh(BleManager.UhOhListener) + */ + public static enum UhOh + { + /** + * A {@link BleTask#BOND} operation timed out. This can happen a lot with the Galaxy Tab 4, and doing {@link BleManager#reset()} seems to fix it. + * SweetBlue does as much as it can to work around the issue that causes bond timeouts, but some might still slip through. + */ + BOND_TIMED_OUT, + + /** + * A {@link BleDevice#read(java.util.UUID, BleDevice.ReadWriteListener)} + * took longer than timeout set by {@link BleDeviceConfig#taskTimeoutRequestFilter}. + * You will also get a {@link BleDevice.ReadWriteListener.ReadWriteEvent} with {@link BleDevice.ReadWriteListener.Status#TIMED_OUT} + * but a timeout is a sort of fringe case that should not regularly happen. + */ + READ_TIMED_OUT, + + /** + * A {@link BleDevice#read(java.util.UUID, BleDevice.ReadWriteListener)} returned with a <code>null</code> + * characteristic value. The <code>null</code> value will end up as an empty array in {@link BleDevice.ReadWriteListener.ReadWriteEvent#data} + * so app-land doesn't have to do any special <code>null</code> handling. + */ + READ_RETURNED_NULL, + + /** + * Similar to {@link #READ_TIMED_OUT} but for {@link BleDevice#write(java.util.UUID, byte[])}. + */ + WRITE_TIMED_OUT, + + /** + * When the underlying stack meets a race condition where {@link android.bluetooth.BluetoothAdapter#getState()} does not + * match the value provided through {@link android.bluetooth.BluetoothAdapter#ACTION_STATE_CHANGED} with {@link android.bluetooth.BluetoothAdapter#EXTRA_STATE}. + */ + INCONSISTENT_NATIVE_BLE_STATE, + + /** + * A {@link BleDevice} went from {@link BleDeviceState#BONDING} to {@link BleDeviceState#UNBONDED}. + * UPDATE: This can happen under normal circumstances, so not listing it as an uh oh for now. + */ +// WENT_FROM_BONDING_TO_UNBONDED, + + /** + * A {@link android.bluetooth.BluetoothGatt#discoverServices()} operation returned two duplicate services. Not the same instance + * necessarily but the same UUID. + */ + DUPLICATE_SERVICE_FOUND, + + /** + * A {@link android.bluetooth.BluetoothGatt#discoverServices()} operation returned a service instance that we already received before + * after disconnecting and reconnecting. + */ + OLD_DUPLICATE_SERVICE_FOUND, + + /** + * {@link android.bluetooth.BluetoothAdapter#startLeScan(BluetoothAdapter.LeScanCallback)} failed for an unknown reason. The library is now using + * {@link android.bluetooth.BluetoothAdapter#startDiscovery()} instead. + * + * @see BleManagerConfig#revertToClassicDiscoveryIfNeeded + */ + START_BLE_SCAN_FAILED__USING_CLASSIC, + + /** + * {@link android.bluetooth.BluetoothGatt#getConnectionState(BluetoothDevice)} says we're connected but we never tried to connect in the first place. + * My theory is that this can happen on some phones when you quickly restart the app and the stack doesn't have + * a chance to disconnect from the device entirely. + */ + CONNECTED_WITHOUT_EVER_CONNECTING, + + /** + * Similar in concept to {@link BleManager.UhOhListener.UhOh#RANDOM_EXCEPTION} but used when {@link android.os.DeadObjectException} is thrown. + */ + DEAD_OBJECT_EXCEPTION, + + /** + * The underlying native BLE stack enjoys surprising you with random exceptions. Every time a new one is discovered + * it is wrapped in a try/catch and this {@link BleManager.UhOhListener.UhOh} is dispatched. + */ + RANDOM_EXCEPTION, + + /** + * {@link android.bluetooth.BluetoothAdapter#startLeScan(BluetoothAdapter.LeScanCallback)} failed and {@link BleManagerConfig#revertToClassicDiscoveryIfNeeded} is <code>false</code>. + * + * @see BleManagerConfig#revertToClassicDiscoveryIfNeeded + */ + START_BLE_SCAN_FAILED, + + /** + * {@link android.bluetooth.BluetoothAdapter#startLeScan(BluetoothAdapter.LeScanCallback)} failed and {@link BleManagerConfig#revertToClassicDiscoveryIfNeeded} is <code>true</code> + * so we try {@link android.bluetooth.BluetoothAdapter#startDiscovery()} but that also fails...fun! + */ + CLASSIC_DISCOVERY_FAILED, + + /** + * {@link android.bluetooth.BluetoothGatt#discoverServices()} failed right off the bat and returned false. + */ + SERVICE_DISCOVERY_IMMEDIATELY_FAILED, + + /** + * {@link android.bluetooth.BluetoothAdapter#disable()}, through {@link BleManager#turnOff()}, is failing to complete. + * We always end up back at {@link android.bluetooth.BluetoothAdapter#STATE_ON}. + */ + CANNOT_DISABLE_BLUETOOTH, + + /** + * {@link android.bluetooth.BluetoothAdapter#enable()}, through {@link BleManager#turnOn()}, is failing to complete. + * We always end up back at {@link android.bluetooth.BluetoothAdapter#STATE_OFF}. Opposite problem of {@link #CANNOT_DISABLE_BLUETOOTH} + */ + CANNOT_ENABLE_BLUETOOTH, + + /** + * Just a blanket case for when the library has to completely shrug its shoulders. + */ + UNKNOWN_BLE_ERROR; + + /** + * Returns the {@link BleManager.UhOhListener.Remedy} for this {@link BleManager.UhOhListener.UhOh}. + */ + public Remedy getRemedy() + { + if( this.ordinal() >= CANNOT_DISABLE_BLUETOOTH.ordinal() ) + { + return Remedy.RESTART_PHONE; + } + else if( this.ordinal() >= START_BLE_SCAN_FAILED.ordinal() ) + { + return Remedy.RESET_BLE; + } + else + { + return Remedy.WAIT_AND_SEE; + } + } + } + + /** + * The suggested remedy for each {@link BleManager.UhOhListener.UhOh}. This can be used as a proxy for the severity + * of the issue. + */ + public static enum Remedy + { + /** + * Nothing you can really do, hopefully the library can soldier on. + */ + WAIT_AND_SEE, + + /** + * Calling {@link BleManager#reset()} is probably in order. + * + * @see BleManager#reset() + */ + RESET_BLE, + + /** + * Might want to notify your user that a phone restart is in order. + */ + RESTART_PHONE; + } + + /** + * Struct passed to {@link BleManager.UhOhListener#onEvent(BleManager.UhOhListener.UhOhEvent)}. + */ + @Immutable + public static class UhOhEvent extends Event + { + /** + * The manager associated with the {@link BleManager.UhOhListener.UhOhEvent} + */ + public BleManager manager(){ return m_manager; } + private final BleManager m_manager; + + /** + * Returns the type of {@link BleManager.UhOhListener.UhOh} that occurred. + */ + public UhOh uhOh(){ return m_uhOh; } + private final UhOh m_uhOh; + + /** + * Forwards {@link BleManager.UhOhListener.UhOh#getRemedy()}. + */ + public Remedy remedy(){ return uhOh().getRemedy(); }; + + UhOhEvent(BleManager manager, UhOh uhoh) + { + m_manager = manager; + m_uhOh = uhoh; + } + + @Override public String toString() + { + return Utils_String.toString + ( + this.getClass(), + "uhOh", uhOh(), + "remedy", remedy() + ); + } + } + + /** + * Run for the hills. + */ + void onEvent(final UhOhEvent e); + } + + /** + * Provide an implementation to {@link BleManager#reset(BleManager.ResetListener)} + * to be notified when a reset operation is complete. + * + * @see BleManager#reset(BleManager.ResetListener) + */ + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface ResetListener + { + /** + * Enumeration of the progress of the reset. + * More entries may be added in the future. + */ + public static enum Progress + { + /** + * The reset has completed successfully. + */ + COMPLETED; + } + + /** + * Struct passed to {@link BleManager.ResetListener#onEvent(BleManager.ResetListener.ResetEvent)}. + */ + @Immutable + public static class ResetEvent extends Event + { + /** + * The {@link BleManager} the reset was applied to. + */ + public BleManager manager(){ return m_manager; } + private final BleManager m_manager; + + /** + * The progress of the reset. + */ + public Progress progress(){ return m_progress; } + private final Progress m_progress; + + ResetEvent(BleManager manager, Progress progress) + { + m_manager = manager; + m_progress = progress; + } + + @Override public String toString() + { + return Utils_String.toString + ( + this.getClass(), + "progress", progress() + ); + } + } + + /** + * The reset event, for now only fired when the reset is completed. Hopefully the bluetooth stack is OK now. + */ + void onEvent(final ResetEvent e); + } + + /** + * Mostly only for SweetBlue library developers. Provide an implementation to + * {@link BleManager#setListener_Assert(BleManager.AssertListener)} to be notified whenever + * an assertion fails through {@link BleManager#ASSERT(boolean, String)}. + */ + @Advanced + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface AssertListener + { + /** + * Struct passed to {@link BleManager.AssertListener#onEvent(BleManager.AssertListener.AssertEvent)}. + */ + @Immutable + public static class AssertEvent extends Event + { + /** + * The {@link BleManager} instance for your application. + */ + public BleManager manager(){ return m_manager; } + private final BleManager m_manager; + + /** + * Message associated with the assert, or an empty string. + */ + public String message(){ return m_message; } + private final String m_message; + + /** + * Stack trace leading up to the assert. + */ + public StackTraceElement[] stackTrace(){ return m_stackTrace; } + private final StackTraceElement[] m_stackTrace; + + AssertEvent(BleManager manager, String message, StackTraceElement[] stackTrace) + { + m_manager = manager; + m_message = message; + m_stackTrace = stackTrace; + } + + @Override public String toString() + { + return Utils_String.toString + ( + this.getClass(), + "message", message(), + "stackTrace", stackTrace() + ); + } + } + + /** + * Provides additional info about the circumstances surrounding the assert. + */ + void onEvent(final AssertEvent e); + } + + private class DefaultBleStatusHelper implements PI_BleStatusHelper { + + @Override public boolean isLocationEnabledForScanning_byOsServices() + { + return Utils.isLocationEnabledForScanning_byOsServices(getApplicationContext()); + } + + @Override public boolean isLocationEnabledForScanning_byRuntimePermissions() + { + return Utils.isLocationEnabledForScanning_byRuntimePermissions(getApplicationContext()); + } + + @Override public boolean isLocationEnabledForScanning() + { + return Utils.isLocationEnabledForScanning(getApplicationContext()); + } + + @Override public boolean isBluetoothEnabled() + { + return BleManager.this.getNative().getAdapter().isEnabled(); + } + + } + + private class DefaultBleScanner implements PI_BleScanner + { + + @Override public boolean startClassicDiscovery() + { + return getNativeAdapter().startDiscovery(); + } + + @Override public void startLScan(int scanMode, Interval delay, L_Util.ScanCallback callback) + { + L_Util.startNativeScan(BleManager.this, scanMode, delay, callback); + } + + @Override public void startMScan(int scanMode, Interval delay, L_Util.ScanCallback callback) + { + M_Util.startNativeScan(BleManager.this, scanMode, delay, callback); + } + + @Override public boolean startLeScan(BluetoothAdapter.LeScanCallback callback) + { + return getNativeAdapter().startLeScan(m_listeners.m_scanCallback_preLollipop); + } + + @Override public void stopLeScan(BluetoothAdapter.LeScanCallback callback) + { + if (m_config.scanMode == BleScanMode.POST_LOLLIPOP) + { + L_Util.stopNativeScan(BleManager.this); + } + else + { + getNativeAdapter().stopLeScan(callback); + } + } + } + + private final UpdateLoop.Callback m_updateLoopCallback = new UpdateLoop.Callback() + { + @Override public void onUpdate(double timestep_seconds) + { + update(timestep_seconds); + } + }; + + /** + * Create the singleton instance or retrieve the already-created singleton instance with default configuration options set. + * If you call this after you call {@link #get(android.content.Context, BleManagerConfig)} (for example in another + * {@link android.app.Activity}), the {@link BleManagerConfig} originally passed in will be used. + * Otherwise, if a new instance is to be created, this calls {@link #get(android.content.Context, BleManagerConfig)} with a {@link BleManagerConfig} + * instance created using the default constructor {@link BleManagerConfig#BleManagerConfig()}. + */ + public static BleManager get(Context context) + { + if( s_instance == null ) + { + Utils.enforceMainThread(BleNodeConfig.WRONG_THREAD_MESSAGE); + + return get(context, new BleManagerConfig()); + } + else + { + verifySingleton(context); + + s_instance.enforceMainThread(); + + return s_instance; + } + } + + /** + * Create the singleton instance or retrieve the already-created singleton instance with custom configuration options set. + * If you call this more than once (for example from a different {@link android.app.Activity} + * with different {@link BleManagerConfig} options set then the newer options overwrite the older options. + */ + public static BleManager get(Context context, BleManagerConfig config) + { + if( s_instance == null ) + { + final boolean allowAllThreads = BleDeviceConfig.boolOrDefault(config != null ? config.allowCallsFromAllThreads : null); + + if( false == allowAllThreads ) + { + Utils.enforceMainThread(BleNodeConfig.WRONG_THREAD_MESSAGE); + } + + s_instance = new BleManager(context, config); + + return s_instance; + } + else + { + verifySingleton(context); + + s_instance.setConfig(config); + + s_instance.enforceMainThread(); + + return s_instance; + } + } + + private static void verifySingleton(Context context) + { + //--- DRK > Not confident how this method behaves with complex applications, multiple activities, services, widgets, etc. + //--- Don't want to throw Errors needlessly, so commenting out for now. +// if( s_instance != null && s_instance.getApplicationContext() != context.getApplicationContext() ) +// { +// //--- DRK > Not sure how/if this could happen, but I never underestimate Android. +// throw new InstantiationError("There can only be one instance of "+BleManager.class.getSimpleName() + " created per application."); +// } + } + + private final Context m_context; + final Handler m_mainThreadHandler; + private final BluetoothManager m_btMngr; + private final P_ScanFilterManager m_filterMngr; + private final P_BluetoothCrashResolver m_crashResolver; + private P_Logger m_logger; + BleManagerConfig m_config; + final P_DeviceManager m_deviceMngr; + final P_DeviceManager m_deviceMngr_cache; + final P_BleManager_Listeners m_listeners; + final P_BleStateTracker m_stateTracker; + final P_NativeBleStateTracker m_nativeStateTracker; + private PI_UpdateLoop m_updateLoop; + private final P_TaskQueue m_taskQueue; + private P_UhOhThrottler m_uhOhThrottler; + P_WakeLockManager m_wakeLockMngr; + + BleDevice.HistoricalDataLoadListener m_historicalDataLoadListener; + DiscoveryListener m_discoveryListener; + private P_WrappingResetListener m_resetListeners; + private AssertListener m_assertionListener; + BleDevice.StateListener m_defaultDeviceStateListener; + BleDevice.ConnectionFailListener m_defaultConnectionFailListener; + BleServer.ConnectionFailListener m_defaultConnectionFailListener_server; + BleDevice.BondListener m_defaultBondListener; + BleDevice.ReadWriteListener m_defaultReadWriteListener; + final P_DiskOptionsManager m_diskOptionsMngr; + + private double m_timeForegrounded = 0.0; + private double m_timeNotScanning = 0.0; + private long m_timeTurnedOn = 0; + private boolean m_doingInfiniteScan = false; + private boolean m_triedToStartScanAfterTurnedOn = false; + private boolean m_isForegrounded = false; + private boolean m_triedToStartScanAfterResume = false; + private boolean m_ready = false; + + BleServer.StateListener m_defaultServerStateListener; + BleServer.OutgoingListener m_defaultServerOutgoingListener; + IncomingListener m_defaultServerIncomingListener; + BleServer.ServiceAddListener m_serviceAddListener; + BleServer.AdvertisingListener m_advertisingListener; +// final P_ServerManager m_serverMngr; + + final Backend_HistoricalDatabase m_historicalDatabase; + + BleServer m_server = null; + + static BleManager s_instance = null; + + /** + * Field for app to associate any data it wants with the singleton instance of this class + * instead of having to subclass or manage associative hash maps or something. + * The library does not touch or interact with this data in any way. + * + * @see BleDevice#appData + * @see BleServer#appData + */ + public Object appData; + + private BleManager(Context context, BleManagerConfig config) + { + m_context = context.getApplicationContext(); + + addLifecycleCallbacks(); + + m_config = config.clone(); + checkUnitTestConfigOptions(); + initLogger(); + m_historicalDatabase = PU_HistoricalData.newDatabase(context, this); + m_diskOptionsMngr = new P_DiskOptionsManager(m_context); + m_filterMngr = new P_ScanFilterManager(this, m_config.defaultScanFilter); + m_btMngr = (BluetoothManager) m_context.getApplicationContext().getSystemService(Context.BLUETOOTH_SERVICE); + // Account for unit testing. When using robolectric, the bluetooth manager comes back null. However, it includes + // shadow classes to simulate Bluetooth devices, so we shouldn't need the manager to run tests. + BleManagerState nativeState; + if( m_btMngr == null ) + { + nativeState = BleManagerState.get(BluetoothAdapter.STATE_ON); + } + else + { + nativeState = BleManagerState.get(m_btMngr.getAdapter().getState()); + } + + if (m_timeTurnedOn == 0 && nativeState.overlaps(BluetoothAdapter.STATE_ON)) { + m_timeTurnedOn = System.currentTimeMillis(); + } + + m_stateTracker = new P_BleStateTracker(this); + m_stateTracker.append(nativeState, E_Intent.UNINTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + m_nativeStateTracker = new P_NativeBleStateTracker(this); + m_nativeStateTracker.append(nativeState, E_Intent.UNINTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + m_mainThreadHandler = new Handler(m_context.getMainLooper()); + m_taskQueue = new P_TaskQueue(this); + m_crashResolver = new P_BluetoothCrashResolver(m_context); + m_deviceMngr = new P_DeviceManager(this); +// m_serverMngr = new P_ServerManager(this); + m_deviceMngr_cache = new P_DeviceManager(this); + m_listeners = new P_BleManager_Listeners(this); + + initConfigDependentMembers(); + + m_logger.printBuildInfo(); + } + + private void checkUnitTestConfigOptions() + { + if (m_config.bleStatusHelper == null) + { + m_config.bleStatusHelper = new DefaultBleStatusHelper(); + } + if (m_config.bleScanner == null) + { + m_config.bleScanner = new DefaultBleScanner(); + } + } + + /** + * Updates the config options for this instance after calling {@link #get(android.content.Context)} or {@link #get(android.content.Context, BleManagerConfig)}. + * Providing a <code>null</code> value will set everything back to default values. + */ + public void setConfig(@Nullable(Prevalence.RARE) BleManagerConfig config_nullable) + { + final boolean allowAllThreads = BleDeviceConfig.boolOrDefault(config_nullable != null ? config_nullable.allowCallsFromAllThreads : null); + + if( false == allowAllThreads ) + { + Utils.enforceMainThread(BleNodeConfig.WRONG_THREAD_MESSAGE); + } + + this.m_config = config_nullable != null ? config_nullable.clone() : new BleManagerConfig(); + checkUnitTestConfigOptions(); + this.initLogger(); + this.initConfigDependentMembers(); + } + + /*package*/boolean isBluetoothEnabled() + { + return m_config.bleStatusHelper.isBluetoothEnabled(); + } + + /*package*/boolean startClassicDiscovery() + { + return m_config.bleScanner.startClassicDiscovery(); + } + + /*package*/void startLScan(int scanMode, L_Util.ScanCallback callback) + { + m_config.bleScanner.startLScan(scanMode, m_config.scanReportDelay, callback); + } + + /*package*/void startMScan(int scanMode, L_Util.ScanCallback callback) + { + m_config.bleScanner.startMScan(scanMode, m_config.scanReportDelay, callback); + } + + /*package*/boolean startLeScan() + { + return m_config.bleScanner.startLeScan(m_listeners.m_scanCallback_preLollipop); + } + + /*package*/void stopLeScan() + { + m_config.bleScanner.stopLeScan(m_listeners.m_scanCallback_preLollipop); + } + + private void initLogger() + { + m_logger = new P_Logger(m_config.debugThreadNames, m_config.uuidNameMaps, m_config.loggingEnabled, m_config.logger); + } + + private void initConfigDependentMembers() + { + m_uhOhThrottler = new P_UhOhThrottler(this, Interval.secs(m_config.uhOhCallbackThrottle)); + + if( m_wakeLockMngr == null ) + { + m_wakeLockMngr = new P_WakeLockManager(this, m_config.manageCpuWakeLock); + } + else if( m_wakeLockMngr != null && m_config.manageCpuWakeLock == false ) + { + m_wakeLockMngr.clear(); + m_wakeLockMngr = new P_WakeLockManager(this, m_config.manageCpuWakeLock); + } + + if( m_config.defaultDiscoveryListener != null ) + { + this.setListener_Discovery(m_config.defaultDiscoveryListener); + } + + if( m_updateLoop != null ) + { + m_updateLoop.stop(); + m_updateLoop = null; + } + + if( m_config.runOnMainThread ) + { + m_updateLoop = m_config.updateLoopFactory.newMainThreadLoop(m_updateLoopCallback); + } + else + { + m_config.allowCallsFromAllThreads = true; + m_updateLoop = m_config.updateLoopFactory.newAnonThreadLoop(m_updateLoopCallback); + } + + if( Interval.isEnabled(m_config.autoUpdateRate) ) + { + startAutoUpdate(Interval.secs(m_config.autoUpdateRate)); + } + } + + /** + * Returns whether the manager is in any of the provided states. + */ + public boolean isAny(BleManagerState ... states) + { + for( int i = 0; i < states.length; i++ ) + { + if( is(states[i]) ) return true; + } + + return false; + } + + /** + * Returns whether the manager is in all of the provided states. + * + * @see #isAny(BleManagerState...) + */ + public boolean isAll(BleManagerState... states) + { + for (int i = 0; i < states.length; i++) + { + if( !is(states[i]) ) return false; + } + + return true; + } + + /** + * Returns whether the manager is in the provided state. + * + * @see #isAny(BleManagerState...) + */ + public boolean is(final BleManagerState state) + { + return state.overlaps(getStateMask()); + } + + /** + * Returns <code>true</code> if there is partial bitwise overlap between the provided value and {@link #getStateMask()}. + * + * @see #isAll(int) + */ + public boolean isAny(final int mask_BleManagerState) + { + return (getStateMask() & mask_BleManagerState) != 0x0; + } + + /** + * Returns <code>true</code> if there is complete bitwise overlap between the provided value and {@link #getStateMask()}. + * + * @see #isAny(int) + */ + public boolean isAll(final int mask_BleManagerState) + { + return (getStateMask() & mask_BleManagerState) == mask_BleManagerState; + } + + /** + * See similar comment for {@link BleDevice#getTimeInState(BleDeviceState)}. + * + * @see BleDevice#getTimeInState(BleDeviceState) + */ + public Interval getTimeInState(BleManagerState state) + { + enforceMainThread(); + + return Interval.millis(m_stateTracker.getTimeInState(state.ordinal())); + } + + /** + * See similar comment for {@link BleDevice#getTimeInState(BleDeviceState)}. + * + * @see BleDevice#getTimeInState(BleDeviceState) + */ + public Interval getTimeInNativeState(BleManagerState state) + { + enforceMainThread(); + + return Interval.millis(m_nativeStateTracker.getTimeInState(state.ordinal())); + } + + /** + * Checks the underlying stack to see if BLE is supported on the phone. + */ + public boolean isBleSupported() + { + enforceMainThread(); + + PackageManager pm = m_context.getPackageManager(); + boolean hasBLE = pm.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE); + + return hasBLE; + } + + /** + * Checks to see if the device is running an Android OS which supports + * advertising. + */ + public boolean isAdvertisingSupportedByAndroidVersion() + { + return Utils.isLollipop(); + } + + /** + * Checks to see if the device supports advertising. + */ + public boolean isAdvertisingSupportedByChipset() + { + if( isAdvertisingSupportedByAndroidVersion() ) + { + return L_Util.isAdvertisingSupportedByChipset(this); + } + else + { + return false; + } + } + + /** + * Checks to see if the device supports advertising BLE services. + */ + public boolean isAdvertisingSupported() + { + enforceMainThread(); + + return isAdvertisingSupportedByAndroidVersion() && isAdvertisingSupportedByChipset(); + } + + /** + * Disables BLE if manager is {@link BleManagerState#ON}. This disconnects all current + * connections, stops scanning, and forgets all discovered devices. + */ + public void turnOff() + { + enforceMainThread(); + + turnOff_private(false); + } + + /** + * Returns the native manager. + */ + @Advanced + public BluetoothManager getNative() + { + enforceMainThread(); + + return m_btMngr; + } + + /** + * Returns the native bluetooth adapter. + */ + @Advanced + public BluetoothAdapter getNativeAdapter() + { + enforceMainThread(); + + return getNative().getAdapter(); + } + + /** + * Sets a default backup {@link BleNode.HistoricalDataLoadListener} that will be invoked + * for all historical data loads to memory for all uuids for all devices. + */ + public void setListener_HistoricalDataLoad(@Nullable(Prevalence.NORMAL) final BleNode.HistoricalDataLoadListener listener_nullable) + { + enforceMainThread(); + + m_historicalDataLoadListener = listener_nullable; + } + + /** + * Set a listener here to be notified whenever we encounter an {@link UhOh}. + */ + public void setListener_UhOh(@Nullable(Prevalence.NORMAL) UhOhListener listener_nullable) + { + enforceMainThread(); + + m_uhOhThrottler.setListener(listener_nullable); + } + + /** + * Set a listener here to be notified whenever {@link #ASSERT(boolean)} fails. + * Mostly for use by internal library developers. + */ + public void setListener_Assert(@Nullable(Prevalence.NORMAL) AssertListener listener_nullable) + { + enforceMainThread(); + + m_assertionListener = listener_nullable; + } + + /** + * Set a listener here to be notified whenever a {@link BleDevice} is discovered, rediscovered, or undiscovered. + */ + public void setListener_Discovery(@Nullable(Prevalence.NORMAL) DiscoveryListener listener_nullable) + { + enforceMainThread(); + + m_discoveryListener = listener_nullable; + } + + /** + * Returns the discovery listener set with {@link #setListener_Discovery(BleManager.DiscoveryListener)} or + * {@link BleManagerConfig#defaultDiscoveryListener}, or <code>null</code> if not set. + */ + public DiscoveryListener getListener_Discovery() + { + enforceMainThread(); + + return m_discoveryListener; + } + + /** + * Set a listener here to be notified whenever this manager's {@link BleManagerState} changes. + */ + public void setListener_State(@Nullable(Prevalence.NORMAL) StateListener listener_nullable) + { + enforceMainThread(); + + m_stateTracker.setListener(listener_nullable); + } + + /** + * Convenience method to listen for all changes in {@link BleDeviceState} for all devices. + * The listener provided will get called in addition to and after the listener, if any, provided + * to {@link BleDevice#setListener_State(BleDevice.StateListener)}. + * + * @see BleDevice#setListener_State(BleDevice.StateListener) + */ + public void setListener_DeviceState(@Nullable(Prevalence.NORMAL) BleDevice.StateListener listener_nullable) + { + enforceMainThread(); + + m_defaultDeviceStateListener = listener_nullable; + } + + /** + * Convenience method to handle server connection fail events at the manager level. The listener provided + * will only get called if the server whose connection failed doesn't have a listener provided to + * {@link BleServer#setListener_ConnectionFail(BleServer.ConnectionFailListener)}. This is unlike the behavior + * behind (for example) {@link #setListener_ServerState(BleServer.StateListener)} because + * {@link BleServer.ConnectionFailListener#onEvent(BleServer.ConnectionFailListener.ConnectionFailEvent)} requires a return value. + * + * @see BleServer#setListener_ConnectionFail(BleServer.ConnectionFailListener) + */ + public void setListener_ConnectionFail_Server(@Nullable(Prevalence.NORMAL) BleServer.ConnectionFailListener listener_nullable) + { + enforceMainThread(); + + m_defaultConnectionFailListener_server = listener_nullable; + } + + /** + * Convenience method to handle server request events at the manager level. The listener provided + * will only get called if the server receiving a request doesn't have a listener provided to + * {@link BleServer#setListener_Incoming(BleServer.IncomingListener)} . This is unlike the behavior (for example) + * behind {@link #setListener_Outgoing(BleServer.OutgoingListener)} because + * {@link BleServer.IncomingListener#onEvent(BleServer.IncomingListener.IncomingEvent)} requires a return value. + * + * @see BleServer#setListener_Incoming(IncomingListener) + */ + public void setListener_Incoming(@Nullable(Prevalence.NORMAL) BleServer.IncomingListener listener_nullable) + { + enforceMainThread(); + + m_defaultServerIncomingListener = listener_nullable; + } + + /** + * Convenience method to listen for all service addition events for all servers. + * The listener provided will get called in addition to and after the listener, if any, provided + * to {@link BleServer#setListener_ServiceAdd(BleServer.ServiceAddListener)}. + * + * @see BleServer#setListener_ServiceAdd(BleServer.ServiceAddListener) + */ + public void setListener_ServiceAdd(@Nullable(Prevalence.NORMAL) BleServer.ServiceAddListener listener_nullable) + { + enforceMainThread(); + + m_serviceAddListener = listener_nullable; + } + + /** + * Convenience method to listen for all changes in {@link BleServerState} for all servers. + * The listener provided will get called in addition to and after the listener, if any, provided + * to {@link BleServer#setListener_State(BleServer.StateListener)}. + * + * @see BleServer#setListener_State(BleServer.StateListener) + */ + public void setListener_ServerState(@Nullable(Prevalence.NORMAL) BleServer.StateListener listener_nullable) + { + enforceMainThread(); + + m_defaultServerStateListener = listener_nullable; + } + + /** + * Convenience method to listen for completion of all outgoing messages from + * {@link BleServer} instances. The listener provided will get called in addition to and after the listener, if any, provided + * to {@link BleServer#setListener_Outgoing(BleServer.OutgoingListener)}. + * + * @see BleServer#setListener_Outgoing(BleServer.OutgoingListener) + */ + public void setListener_Outgoing(@Nullable(Prevalence.NORMAL) BleServer.OutgoingListener listener_nullable) + { + enforceMainThread(); + + m_defaultServerOutgoingListener = listener_nullable; + } + + /** + * Convenience method to handle connection fail events at the manager level. The listener provided + * will only get called if the device whose connection failed doesn't have a listener provided to + * {@link BleDevice#setListener_ConnectionFail(ConnectionFailListener)}. This is unlike the behavior + * behind {@link #setListener_DeviceState(BleDevice.StateListener)} because + * {@link BleDevice.ConnectionFailListener#onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)} requires a return value. + * + * @see BleDevice#setListener_ConnectionFail(BleDevice.ConnectionFailListener) + */ + public void setListener_ConnectionFail(@Nullable(Prevalence.NORMAL) BleDevice.ConnectionFailListener listener_nullable) + { + enforceMainThread(); + + m_defaultConnectionFailListener = listener_nullable; + } + + /** + * Convenience method to set a default back up listener for all {@link BondEvent}s across all {@link BleDevice} instances. + */ + public void setListener_Bond(@Nullable(Prevalence.NORMAL) BleDevice.BondListener listener_nullable) + { + enforceMainThread(); + + m_defaultBondListener = listener_nullable; + } + + /** + * Sets a default backup {@link ReadWriteListener} that will be called for all {@link BleDevice} instances. + * <br><br> + * TIP: Place some analytics code in the listener here. + */ + public void setListener_ReadWrite(@Nullable(Prevalence.NORMAL) ReadWriteListener listener_nullable) + { + enforceMainThread(); + + m_defaultReadWriteListener = listener_nullable; + } + + /** + * Set a listener here to be notified whenever this manager's native {@link BleManagerState} changes. + */ + public void setListener_NativeState(NativeStateListener listener) + { + enforceMainThread(); + + m_nativeStateTracker.setListener(listener); + } + + /** + * Set a listener here to be notified of the result of starting to advertise. + */ + public void setListener_Advertising(BleServer.AdvertisingListener listener) + { + enforceMainThread(); + + m_advertisingListener = listener; + } + + /** + * Manually starts a periodic scan. This is the post-constructor runtime equivalent to setting + * {@link BleManagerConfig#autoScanActiveTime} and {@link BleManagerConfig#autoScanPauseInterval}, so see + * their comments for more detail. Calling this forever-after overrides the options you set + * in {@link BleManagerConfig}. + * + * @see BleManagerConfig#autoScanActiveTime + * @see BleManagerConfig#autoScanPauseInterval + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + */ + public void startPeriodicScan(Interval scanActiveTime, Interval scanPauseTime) + { + startPeriodicScan(scanActiveTime, scanPauseTime, (ScanFilter) null, (DiscoveryListener) null); + } + + /** + * Same as {@link #startPeriodicScan(Interval, Interval)} but calls {@link #setListener_Discovery(BleManager.DiscoveryListener)} for you too. + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + */ + public void startPeriodicScan(Interval scanActiveTime, Interval scanPauseTime, DiscoveryListener discoveryListener) + { + startPeriodicScan(scanActiveTime, scanPauseTime, (ScanFilter) null, discoveryListener); + } + + /** + * Same as {@link #startPeriodicScan(Interval, Interval)} but adds a filter too. + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + */ + public void startPeriodicScan(Interval scanActiveTime, Interval scanPauseTime, BleManagerConfig.ScanFilter filter) + { + startPeriodicScan(scanActiveTime, scanPauseTime, filter, (DiscoveryListener) null); + } + + /** + * Same as {@link #startPeriodicScan(Interval, Interval)} but calls {@link #setListener_Discovery(BleManager.DiscoveryListener)} for you too and adds a filter. + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + */ + public void startPeriodicScan(Interval scanActiveTime, Interval scanPauseTime, BleManagerConfig.ScanFilter filter, DiscoveryListener discoveryListener) + { + showScanWarningIfNeeded(); + + enforceMainThread(); + + if( discoveryListener != null ) + { + setListener_Discovery(discoveryListener); + } + + m_filterMngr.add(filter); + + m_config.autoScanActiveTime = scanActiveTime; + m_config.autoScanPauseInterval = scanPauseTime; + + if( Interval.isEnabled(m_config.autoScanActiveTime) ) + { + if( doAutoScan() ) + { + startScan_private(m_config.autoScanActiveTime, null, null, /*isPoll=*/true); + } + } + } + + /** + * Same as {@link #stopPeriodicScan()} but will also unregister any {@link BleManagerConfig.ScanFilter} provided + * through {@link #startPeriodicScan(Interval, Interval, BleManagerConfig.ScanFilter)} or other overloads. + */ + public void stopPeriodicScan(final ScanFilter filter) + { + enforceMainThread(); + + m_filterMngr.remove(filter); + + stopPeriodicScan(); + } + + /** + * Stops a periodic scan previously started either explicitly with {@link #startPeriodicScan(Interval, Interval)} or through + * the {@link BleManagerConfig#autoScanActiveTime} and {@link BleManagerConfig#autoScanPauseInterval} config options. + */ + public void stopPeriodicScan() + { + enforceMainThread(); + + m_config.autoScanActiveTime = Interval.DISABLED; + + if( false == m_doingInfiniteScan ) + { + this.stopScan(); + } + } + + /** + * Starts a scan that will continue indefinitely until {@link #stopScan()} is called. + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + * + * @return <code>true</code> if scan started, <code>false></code> otherwise - usually this means this manager is not {@link BleManagerState#ON}. + */ + public boolean startScan() + { + return startScan(Interval.INFINITE); + } + + /** + * Calls {@link #startScan(Interval, BleManagerConfig.ScanFilter)} with {@link Interval#INFINITE}. + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + * + * @return <code>true</code> if scan started, <code>false></code> otherwise - usually this means this manager is not {@link BleManagerState#ON}. + */ + public boolean startScan(ScanFilter filter) + { + return startScan(Interval.INFINITE, filter, (DiscoveryListener) null); + } + + /** + * Same as {@link #startScan()} but also calls {@link #setListener_Discovery(BleManager.DiscoveryListener)} for you. + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + * + * @return <code>true</code> if scan started, <code>false></code> otherwise - usually this means this manager is not {@link BleManagerState#ON}. + */ + public boolean startScan(DiscoveryListener discoveryListener) + { + return startScan(Interval.INFINITE, (ScanFilter) null, discoveryListener); + } + + /** + * Overload of {@link #startScan(Interval, BleManagerConfig.ScanFilter, BleManager.DiscoveryListener)} + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + * + * @return <code>true</code> if scan started, <code>false></code> otherwise - usually this means this manager is not {@link BleManagerState#ON}. + */ + public boolean startScan(Interval scanTime, ScanFilter filter) + { + return startScan(scanTime, filter, (DiscoveryListener) null); + } + + /** + * Overload of {@link #startScan(Interval, BleManagerConfig.ScanFilter, BleManager.DiscoveryListener)} + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + * + * @return <code>true</code> if scan started, <code>false></code> otherwise - usually this means this manager is not {@link BleManagerState#ON}. + */ + public boolean startScan(Interval scanTime, DiscoveryListener discoveryListener) + { + return startScan(scanTime, (ScanFilter) null, discoveryListener); + } + + /** + * Same as {@link #startScan()} but also calls {@link #setListener_Discovery(BleManager.DiscoveryListener)} for you. + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + * + * @return <code>true</code> if scan started, <code>false></code> otherwise - usually this means this manager is not {@link BleManagerState#ON}. + */ + public boolean startScan(ScanFilter filter, DiscoveryListener discoveryListener) + { + return startScan(Interval.INFINITE, filter, discoveryListener); + } + + /** + * Starts a scan that will generally last for the given time (roughly). + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + * + * @return <code>true</code> if scan started, <code>false></code> otherwise - usually this means this manager is not {@link BleManagerState#ON}. + */ + public boolean startScan(Interval scanTime) + { + return startScan(scanTime, (ScanFilter) null, (DiscoveryListener) null); + } + + /** + * Same as {@link #startScan(Interval)} but also calls {@link #setListener_Discovery(BleManager.DiscoveryListener)} for you. + * <br><br> + * WARNING: For {@link android.os.Build.VERSION_CODES#M} and up, in order for this method to return scan events + * through {@link ScanFilter} you must have {@link android.Manifest.permission#ACCESS_COARSE_LOCATION} or {@link android.Manifest.permission#ACCESS_FINE_LOCATION} + * in your AndroidManifest.xml, AND enabled at runtime (see {@link #isLocationEnabledForScanning_byRuntimePermissions()} and {@link #turnOnLocationWithIntent_forPermissions(Activity, int)}), + * AND location services should be enabled (see {@link #isLocationEnabledForScanning_byOsServices()} and {@link #isLocationEnabledForScanning_byOsServices()}). + * <br><br> + * The assumed reason why location must be enabled is that an app might scan for bluetooth devices like iBeacons with known physical locations and unique advertisement packets. + * Knowing the physical locations, the app could report back that you're definitely within ~50 ft. of a given longitude and latitude. With multiple beacons involved and/or fine-tuned RSSI-based + * distance calculations the location could get pretty accurate. For example a department store app could sprinkle a few dozen beacons throughout its store and + * if you had their app running they would know exactly where you are. Not an everyday concern, and it makes BLE even more annoying to implement on Android, + * but Google is understandably erring on the side of privacy and security for its users. + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + * + * @return <code>true</code> if scan started, <code>false></code> otherwise - usually this means this manager is not {@link BleManagerState#ON}. + */ + public boolean startScan(Interval scanTime, ScanFilter filter, DiscoveryListener discoveryListener) + { + showScanWarningIfNeeded(); + + return startScan_private(scanTime, filter, discoveryListener, /*isPoll=*/false); + } + + private void showScanWarningIfNeeded() + { + if( false == isLocationEnabledForScanning() ) + { + final String ENABLED = "enabled"; + final String DISABLED = "disabled"; + + final boolean reasonA = isLocationEnabledForScanning_byManifestPermissions(); + final boolean reasonB = isLocationEnabledForScanning_byRuntimePermissions(); + final boolean reasonC = isLocationEnabledForScanning_byOsServices(); + final String enabledA = reasonA ? ENABLED : DISABLED; + final String enabledB = reasonB ? ENABLED : DISABLED; + final String enabledC = reasonC ? ENABLED : DISABLED; + + Log.w + ( + BleManager.class.getSimpleName(), + + "As of Android M, in order for low energy scan results to return you must have the following:\n" + + "(A) " + Manifest.permission.ACCESS_COARSE_LOCATION + " or " + Manifest.permission.ACCESS_FINE_LOCATION + " in your AndroidManifest.xml.\n" + + "(B) Runtime permissions for aformentioned location permissions as described at https://developer.android.com/training/permissions/requesting.html.\n" + + "(C) Location services enabled, the same as if you go to OS settings App and enable Location.\n" + + "It looks like (A) is " + enabledA + ", (B) is " + enabledB + ", and (C) is " + enabledC + ".\n" + + "Various methods like BleManager.isLocationEnabledForScanning*() overloads and BleManager.turnOnLocationWithIntent*() overloads can help with this painful process.\n" + + "Good luck!" + ); + } + } + + private boolean startScan_private(Interval scanTime, ScanFilter filter, DiscoveryListener discoveryListener, final boolean isPoll) + { + enforceMainThread(); + + m_timeNotScanning = 0.0; + scanTime = scanTime.secs() < 0.0 ? Interval.INFINITE : scanTime; + + if( false == is(ON) ) + { + m_logger.e(BleManager.class.getSimpleName() + " is not " + ON + "! Please use the turnOn() method first."); + + return false; + } + + m_doingInfiniteScan = scanTime.equals(Interval.INFINITE); + + if( discoveryListener != null ) + { + setListener_Discovery(discoveryListener); + } + + m_filterMngr.add(filter); + + final P_Task_Scan scanTask = m_taskQueue.get(P_Task_Scan.class, this); + + if( scanTask != null ) + { + scanTask.resetTimeout(scanTime.secs()); + } + else + { + ASSERT(!m_taskQueue.isCurrentOrInQueue(P_Task_Scan.class, this)); + + + m_stateTracker.append(BleManagerState.STARTING_SCAN, E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + + m_taskQueue.add(new P_Task_Scan(this, m_listeners.getScanTaskListener(), scanTime.secs(), isPoll)); + } + + return true; + } + + /** + * Requires the {@link android.Manifest.permission#WAKE_LOCK} permission. Gives you access to the internal + * wake lock as a convenience and eventually calls {@link android.os.PowerManager.WakeLock#acquire()}. + * + * @see BleManagerConfig#manageCpuWakeLock + */ + @Advanced + public void pushWakeLock() + { + enforceMainThread(); + + m_wakeLockMngr.push(); + } + + /** + * Opposite of {@link #pushWakeLock()}, eventually calls {@link android.os.PowerManager.WakeLock#release()}. + */ + @Advanced + public void popWakeLock() + { + enforceMainThread(); + + m_wakeLockMngr.pop(); + } + + /** + * Fires a callback to {@link BleManager.AssertListener} if condition is false. Will post a {@link android.util.Log#ERROR}-level + * message with a stack trace to the console as well if {@link BleManagerConfig#loggingEnabled} is true. + */ + @Advanced + public boolean ASSERT(boolean condition) + { + return ASSERT(condition, ""); + } + + /** + * Same as {@link #ASSERT(boolean)} but with an added message. + */ + @Advanced + public boolean ASSERT(boolean condition, String message) + { + enforceMainThread(); + + if( !condition ) + { + Exception dummyException = null; + message = message != null ? message : ""; + + if( m_config.loggingEnabled || m_assertionListener != null ) + { + dummyException = new Exception(); + } + + if( m_config.loggingEnabled ) + { + Log.e(BleManager.class.getSimpleName(), "ASSERTION FAILED " + message, dummyException); + } + + if( m_assertionListener != null ) + { + final AssertListener.AssertEvent event = new AssertListener.AssertEvent(this, message, dummyException.getStackTrace()); + + m_assertionListener.onEvent(event); + } + + return false; + } + + return true; + } + + /** + * Returns the abstracted bitwise state mask representation of {@link BleManagerState} for this device. + * + * @see BleManagerState + */ + public int getStateMask() + { + enforceMainThread(); + + return m_stateTracker.getState(); + } + + /** + * Returns the native bitwise state mask representation of {@link BleManagerState} for this device. + * Similar to calling {@link android.bluetooth.BluetoothAdapter#getState()} + * + * @see BleManagerState + */ + @Advanced + public int getNativeStateMask() + { + enforceMainThread(); + + return m_nativeStateTracker.getState(); + } + + /** + * Enables BLE if manager is currently {@link BleManagerState#OFF} or {@link BleManagerState#TURNING_OFF}, otherwise does nothing. + * For a convenient way to ask your user first see {@link #turnOnWithIntent(android.app.Activity, int)}. + */ + public void turnOn() + { + enforceMainThread(); + + if( isAny(TURNING_ON, ON) ) return; + + if( is(OFF) ) + { + m_stateTracker.update(E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE, TURNING_ON, true, OFF, false); + } + + m_taskQueue.add(new P_Task_TurnBleOn(this, /*implicit=*/false)); + if (m_timeTurnedOn == 0) { + m_timeTurnedOn = System.currentTimeMillis(); + } + } + + /** + * This is essentially a big red reset button for the Bluetooth stack. Use it ruthlessly + * when the stack seems to be acting up, like when you can't connect to a device that you should be + * able to connect to. It's similar to calling {@link #turnOff()} then {@link #turnOn()}, + * but also does other things like removing all bonds (similar to {@link #unbondAll()}) and + * other "special sauce" such that you should use this method instead of trying to reset the + * stack manually with component calls. + * <br><br> + * It's good app etiquette to first prompt the user to get permission to reset because + * it will affect Bluetooth system-wide and in other apps. + * + * @see BleManagerState#RESETTING + */ + public void reset() + { + reset(null); + } + + /** + * Same as {@link #reset()} but with a convenience callback for when the reset is + * completed and the native BLE stack is (should be) back to normal. + * + * @see BleManagerState#RESETTING + */ + public void reset(ResetListener listener) + { + enforceMainThread(); + + if( listener != null ) + { + if( m_resetListeners != null ) + { + m_resetListeners.addListener(listener); + } + else + { + m_resetListeners = new P_WrappingResetListener(listener, m_mainThreadHandler, m_config.postCallbacksToMainThread); + } + } + + if( is(BleManagerState.RESETTING) ) + { + return; + } + + m_stateTracker.append(RESETTING, E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + + if( m_config.enableCrashResolverForReset ) + { + m_taskQueue.add(new P_Task_CrashResolver(BleManager.this, m_crashResolver, /*partOfReset=*/true)); + } + + turnOff_private(/*removeAllBonds=*/true); + + m_taskQueue.add(new P_Task_TurnBleOn(this, /*implicit=*/false, new PA_Task.I_StateListener() + { + @Override + public void onStateChange(PA_Task taskClass, PE_TaskState state) + { + if (state.isEndingState()) + { + ResetListener nukeListeners = m_resetListeners; + m_resetListeners = null; + m_nativeStateTracker.remove(RESETTING, E_Intent.UNINTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + m_stateTracker.remove(RESETTING, E_Intent.UNINTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + + if (nukeListeners != null) + { + ResetEvent event = new ResetEvent(BleManager.this, ResetListener.Progress.COMPLETED); + nukeListeners.onEvent(event); + } + } + } + })); + } + + /** + * Removes bonds for all devices that are {@link BleDeviceState#BONDED}. + * Essentially a convenience method for calling {@link BleDevice#unbond()}, + * on each device individually. + */ + public void unbondAll() + { + enforceMainThread(); + + m_deviceMngr.unbondAll(null, Status.CANCELLED_FROM_UNBOND); + } + + /** + * Disconnects all devices that are {@link BleDeviceState#CONNECTED}. + * Essentially a convenience method for calling {@link BleDevice#disconnect()}, + * on each device individually. + */ + public void disconnectAll() + { + enforceMainThread(); + + m_deviceMngr.disconnectAll(); + } + + /** + * Same as {@link #disconnectAll()} but drills down to {@link BleDevice#disconnect_remote()} instead. + */ + public void disconnectAll_remote() + { + enforceMainThread(); + + m_deviceMngr.disconnectAll_remote(); + } + + /** + * Undiscovers all devices that are {@link BleDeviceState#DISCOVERED}. + * Essentially a convenience method for calling {@link BleDevice#undiscover()}, + * on each device individually. + */ + public void undiscoverAll() + { + enforceMainThread(); + + m_deviceMngr.undiscoverAll(); + } + + /** + * If {@link #isLocationEnabledForScanning_byOsServices()} returns <code>false</code>, you can use this method to allow the user to enable location services. + * <br><br> + * NOTE: If {@link #isLocationEnabledForScanning_byOsServices()} returns <code>false</code> but all other overloads of {@link #isLocationEnabledForScanning()} return <code>true</code> then + * SweetBlue will fall back to classic discovery through {@link BluetoothAdapter#startDiscovery()} when you call {@link #startScan()} or overloads, so you may not have to use this. + * + * @see #isLocationEnabledForScanning_byOsServices() + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + */ + public void turnOnLocationWithIntent_forOsServices(final Activity callingActivity, int requestCode) + { + final Intent enableLocationIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); + + callingActivity.startActivityForResult(enableLocationIntent, requestCode); + } + + /** + * Overload of {@link #turnOnLocationWithIntent_forOsServices(Activity, int)} if you don't care about result. + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + */ + public void turnOnLocationWithIntent_forOsServices(final Activity callingActivity) + { + final Intent enableLocationIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); + + callingActivity.startActivity(enableLocationIntent); + + if( false == Utils.isMarshmallow() ) + { + m_logger.w("You may use this method but since the phone is at " + Build.VERSION.SDK_INT + " and the requirement is "+Build.VERSION_CODES.M+", it is not necessary for scanning."); + } + } + + private static final String LOCATION_PERMISSION_NAMESPACE = "location_permission_namespace"; + private static final String LOCATION_PERMISSION_KEY = "location_permission_key"; + + /** + * Returns <code>true</code> if {@link #turnOnLocationWithIntent_forPermissions(Activity, int)} will pop a system dialog, <code>false</code> if it will bring + * you to the OS's Application Settings. The <code>true</code> case happens if the app has never shown a request Location Permissions dialog or has shown a request Location Permission dialog and the user has yet to select "Never ask again". This method is used to weed out the false + * negative from {@link Activity#shouldShowRequestPermissionRationale(String)} when the Location Permission has never been requested. Make sure to use this in conjunction with {@link #isLocationEnabledForScanning_byRuntimePermissions()} + * which will tell you if permissions are already enabled. + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + */ + public boolean willLocationPermissionSystemDialogBeShown(Activity callingActivity) + { + if( Utils.isMarshmallow() ) + { + SharedPreferences preferences = callingActivity.getSharedPreferences(LOCATION_PERMISSION_NAMESPACE, Context.MODE_PRIVATE); + boolean hasNeverAskAgainBeenSelected = !M_Util.shouldShowRequestPermissionRationale(callingActivity);//Call only returns true if Location permission has been previously denied. Returns false if "Never ask again" has been selected + boolean hasLocationPermissionSystemDialogShownOnce = preferences.getBoolean(LOCATION_PERMISSION_KEY, false); + + return (!hasLocationPermissionSystemDialogShownOnce) || (hasLocationPermissionSystemDialogShownOnce && !hasNeverAskAgainBeenSelected); + } + else + { + return false; + } + } + + /** + * If {@link #isLocationEnabledForScanning_byOsServices()} returns <code>false</code>, you can use this method to allow the user to enable location + * through an OS intent. The result of the request (i.e. what the user chose) is passed back through {@link Activity#onRequestPermissionsResult(int, String[], int[])} + * with the requestCode provided as the second parameter to this method. If the user selected "Never ask again" the function will open up the app settings screen where the + * user can navigate to enable the permissions. + * + * @see #isLocationEnabledForScanning_byRuntimePermissions() + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + */ + public void turnOnLocationWithIntent_forPermissions(final Activity callingActivity, int requestCode) + { + if( Utils.isMarshmallow() ) + { + if( false == isLocationEnabledForScanning_byRuntimePermissions() && false == willLocationPermissionSystemDialogBeShown(callingActivity)) + { + final Intent intent = new Intent(); + intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + final Uri uri = Uri.fromParts("package", callingActivity.getPackageName(), null); + intent.setData(uri); + callingActivity.startActivityForResult(intent, requestCode); + } + else + { + final SharedPreferences.Editor editor = callingActivity.getSharedPreferences(LOCATION_PERMISSION_NAMESPACE, Context.MODE_PRIVATE).edit(); + editor.putBoolean(LOCATION_PERMISSION_KEY, true).commit(); + M_Util.requestPermissions(callingActivity, requestCode); + } + } + else + { + m_logger.w("BleManager.turnOnLocationWithIntent_forPermissions() is only applicable for API levels 23 and above so this method does nothing."); + } + } + + /** + * Tells you whether a call to {@link #startScan()} (or overloads), will succeed or not. Basically a convenience for checking if both + * {@link #isLocationEnabledForScanning()} and {@link #is(BleManagerState)} with {@link BleManagerState#SCANNING} return <code>true</code>. + */ + public boolean isScanningReady() + { + return isLocationEnabledForScanning() && is(ON); + } + + /** + * Returns <code>true</code> if location is enabled to a degree that allows scanning on {@link android.os.Build.VERSION_CODES#M} and above. + * If this returns <code>false</code> it means you're on Android M and you either (A) do not have {@link android.Manifest.permission#ACCESS_COARSE_LOCATION} + * (or {@link android.Manifest.permission#ACCESS_FINE_LOCATION} in your AndroidManifest.xml, see {@link #isLocationEnabledForScanning_byManifestPermissions()}), or (B) + * runtime permissions for aformentioned location permissions are off (see {@link #isLocationEnabledForScanning_byRuntimePermissions()} and + * https://developer.android.com/training/permissions/index.html), or (C) location services on the phone are disabled (see {@link #isLocationEnabledForScanning_byOsServices()}). + * <br><br> + * If this returns <code>true</code> then you are good to go for calling {@link #startScan()}. + * + * @see #startScan(Interval, BleManagerConfig.ScanFilter, DiscoveryListener) + * + * @see #turnOnLocationWithIntent_forPermissions(Activity, int) + * @see #turnOnLocationWithIntent_forOsServices(Activity) + * @see #turnOnLocationWithIntent_forOsServices(Activity, int) + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + */ + public boolean isLocationEnabledForScanning() + { + return m_config.bleStatusHelper.isLocationEnabledForScanning(); + } + + /** + * Returns <code>true</code> if you're either pre-Android-M, or app has permission for either {@link android.Manifest.permission#ACCESS_COARSE_LOCATION} + * or {@link android.Manifest.permission#ACCESS_FINE_LOCATION} in your AndroidManifest.xml, <code>false</code> otherwise. + * + * @see #startScan(Interval, BleManagerConfig.ScanFilter, DiscoveryListener) + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + */ + public boolean isLocationEnabledForScanning_byManifestPermissions() + { + return Utils.isLocationEnabledForScanning_byManifestPermissions(getApplicationContext()); + } + + /** + * Returns <code>true</code> if you're either pre-Android-M, or app has runtime permissions enabled by checking + * <a href="https://developer.android.com/reference/android/support/v4/content/ContextCompat.html#checkSelfPermission(android.content.Context, java.lang.String)"</a> * + * See more information at https://developer.android.com/training/permissions/index.html. + * + * @see #startScan(Interval, BleManagerConfig.ScanFilter, DiscoveryListener) + * + * @see #turnOnLocationWithIntent_forPermissions(Activity, int) + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + */ + public boolean isLocationEnabledForScanning_byRuntimePermissions() + { + return m_config.bleStatusHelper.isLocationEnabledForScanning_byRuntimePermissions(); + } + + /** + * Returns <code>true</code> if you're either pre-Android-M, or location services are enabled, the same is if you go to the Android Settings app + * and manually toggle Location ON/OFF. + * <br><br> + * NOTE: If this returns <code>false</code> but all other overloads of {@link #isLocationEnabledForScanning()} return <code>true</code> then + * SweetBlue will fall back to classic discovery through {@link BluetoothAdapter#startDiscovery()} when you call {@link #startScan()} or overloads. + * + * @see #startScan(Interval, BleManagerConfig.ScanFilter, DiscoveryListener) + * + * @see #turnOnLocationWithIntent_forOsServices(Activity) + * @see #turnOnLocationWithIntent_forOsServices(Activity, int) + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + */ + public boolean isLocationEnabledForScanning_byOsServices() + { + return m_config.bleStatusHelper.isLocationEnabledForScanning_byOsServices(); + } + + /** + * Convenience method to request your user to enable ble in a "standard" way + * with an {@link android.content.Intent} instead of using {@link #turnOn()} directly. + * Result will be posted as normal to {@link android.app.Activity#onActivityResult(int, int, Intent)}. + * If current state is {@link BleManagerState#ON} or {@link BleManagerState#TURNING_ON} + * this method early outs and does nothing. + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler + */ + public void turnOnWithIntent(Activity callingActivity, int requestCode) + { + enforceMainThread(); + + if( isAny(ON, TURNING_ON) ) return; + + final Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); + callingActivity.startActivityForResult(enableBtIntent, requestCode); + } + + /** + * Opposite of {@link #onPause()}, to be called from your override of {@link android.app.Activity#onResume()} for each {@link android.app.Activity} + * in your application. See comment for {@link #onPause()} for a similar explanation for why you should call this method. + */ + public void onResume() + { + enforceMainThread(); + + m_triedToStartScanAfterResume = false; + m_isForegrounded = true; + m_timeForegrounded = 0.0; + + if( m_doingInfiniteScan ) + { + m_triedToStartScanAfterResume = true; + + startScan(); + } + else if( Interval.isDisabled(m_config.autoScanDelayAfterResume) ) + { + m_triedToStartScanAfterResume = true; + } + } + + /** + * It's generally recommended to call this in your override of {@link android.app.Activity#onPause()} for each {@link android.app.Activity} + * in your application. This doesn't do much for now, just a little bookkeeping and stops scan automatically if + * {@link BleManagerConfig#stopScanOnPause} is <code>true</code>. Strictly speaking you don't *have* to call this method, + * but another good reason is for future-proofing. Later releases of this library may do other more important things + * in this method so it's good to have it being called just in case. + */ + public void onPause() + { + enforceMainThread(); + + m_triedToStartScanAfterResume = false; + m_isForegrounded = false; + m_timeForegrounded = 0.0; + + if( m_config.stopScanOnPause && is(SCANNING) ) + { + stopScan_private(E_Intent.UNINTENTIONAL); + } + } + + /** + * Call this from your app's {@link android.app.Activity#onDestroy()} method. + * NOTE: Apparently no good way to know when app as a whole is being destroyed + * and not individual Activities, so keeping this package-private for now. + */ + void onDestroy() + { + enforceMainThread(); + + m_wakeLockMngr.clear(); + m_listeners.onDestroy(); + } + + /** + * Returns the {@link android.app.Application} provided to the constructor. + */ + public Context getApplicationContext() + { + return (Application) m_context; + } + + /** + * Convenience that will call both {@link #stopPeriodicScan()} and {@link #stopScan()} for you. + */ + public void stopAllScanning() + { + this.stopPeriodicScan(); + this.stopScan(); + } + + /** + * Stops a scan previously started by {@link #startScan()} or its various overloads. + * This will also stop the actual scan operation itself that may be ongoing due to + * {@link #startPeriodicScan(Interval, Interval)} or defined by {@link BleManagerConfig#autoScanActiveTime}, + * but scanning in general will still continue periodically until you call {@link #stopPeriodicScan()}. + */ + public void stopScan() + { + enforceMainThread(); + + m_doingInfiniteScan = false; + + stopScan_private(E_Intent.INTENTIONAL); + } + + /** + * Same as {@link #stopScan()} but also unregisters any filter supplied to various overloads of + * {@link #startScan()} or {@link #startPeriodicScan(Interval, Interval)} that take an {@link BleManagerConfig.ScanFilter}. + * Calling {@link #stopScan()} alone will keep any previously registered filters active. + */ + public void stopScan(ScanFilter filter) + { + enforceMainThread(); + + m_filterMngr.remove(filter); + + stopScan(); + } + + private void stopScan_private(E_Intent intent) + { + m_timeNotScanning = 0.0; + + // Specifically stop the scan + //m_config.bleScanner.stopLeScan(m_listeners.m_scanCallback_preLollipop); + + if( !m_taskQueue.succeed(P_Task_Scan.class, this) ) + { + m_taskQueue.clearQueueOf(P_Task_Scan.class, this); + } + + m_stateTracker.remove(BleManagerState.STARTING_SCAN, E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + m_stateTracker.remove(BleManagerState.SCANNING, intent, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + + /** + * Gets a known {@link BleDeviceState#DISCOVERED} device by MAC address, or {@link BleDevice#NULL} if there is no such device. + */ + public @Nullable(Prevalence.NEVER) BleDevice getDevice(final String macAddress) + { + enforceMainThread(); + + final String macAddress_normalized = normalizeMacAddress(macAddress); + + final BleDevice device = m_deviceMngr.get(macAddress_normalized); + + if( device != null ) return device; + + return BleDevice.NULL; + } + + /** + * Shortcut for checking if {@link #getDevice(String)} returns {@link BleDevice#NULL}. + */ + public boolean hasDevice(final String macAddress) + { + return !getDevice(macAddress).isNull(); + } + + /** + * Calls {@link #hasDevice(String)}. + */ + public boolean hasDevice(final BleDevice device) + { + return hasDevice(device.getMacAddress()); + } + + /** + * Might not be useful to outside world. Used for sanity/early-out checks internally. Keeping private for now. + * Does referential equality check. + */ + private boolean hasDevice_private(BleDevice device) + { + enforceMainThread(); + + return m_deviceMngr.has(device); + } + + /** + * Returns the first device that is in the given state, or {@link BleDevice#NULL} if no match is found. + */ + public @Nullable(Prevalence.NEVER) BleDevice getDevice(BleDeviceState state) + { + enforceMainThread(); + + for( int i = 0; i < m_deviceMngr.getCount(); i++ ) + { + BleDevice device = m_deviceMngr.get(i); + + if( device.is(state) ) + { + return device; + } + } + + return BleDevice.NULL; + } + + /** + * Returns true if we have a device in the given state. + */ + public boolean hasDevice(BleDeviceState state) + { + enforceMainThread(); + + return !getDevice(state).isNull(); + } + + /** + * Forwards {@link #getDeviceAt(int)} with index of 0. + */ + public @Nullable(Prevalence.NEVER) BleDevice getDevice() + { + enforceMainThread(); + + return hasDevices() ? getDeviceAt(0) : BleDevice.NULL; + } + + /** + * Returns the first device that matches the query, or {@link BleDevice#NULL} if no match is found. + * See {@link BleDevice#is(Object...)} for the query format. + */ + public @Nullable(Prevalence.NEVER) BleDevice getDevice(Object ... query) + { + enforceMainThread(); + + for( int i = 0; i < m_deviceMngr.getCount(); i++ ) + { + BleDevice device = m_deviceMngr.get(i); + + if( device.is(query) ) + { + return device; + } + } + + return BleDevice.NULL; + } + + /** + * Returns true if we have a device that matches the given query. + * See {@link BleDevice#is(Object...)} for the query format. + */ + public boolean hasDevice(Object ... query) + { + return !getDevice(query).isNull(); + } + + /** + * Returns the first device which returns <code>true</code> for {@link BleDevice#isAny(int)}, or {@link BleDevice#NULL} if no such device is found. + */ + public @Nullable(Prevalence.NEVER) BleDevice getDevice(final int mask_BleDeviceState) + { + enforceMainThread(); + + return m_deviceMngr.getDevice(mask_BleDeviceState); + } + + /** + * Returns <code>true</code> if there is any {@link BleDevice} for which {@link BleDevice#isAny(int)} with the given mask returns <code>true</code>. + */ + public boolean hasDevice(final int mask_BleDeviceState) + { + return !getDevice(mask_BleDeviceState).isNull(); + } + + /** + * Offers a more "functional" means of iterating through the internal list of devices instead of + * using {@link #getDevices()} or {@link #getDevices_List()}. + */ + public void getDevices(final ForEach_Void<BleDevice> forEach) + { + enforceMainThread(); + + m_deviceMngr.forEach(forEach); + } + + /** + * Same as {@link #getDevices(ForEach_Void)} but will only return devices + * in the given state provided. + */ + public void getDevices(final ForEach_Void<BleDevice> forEach, final BleDeviceState state) + { + enforceMainThread(); + + m_deviceMngr.forEach(forEach, state, true); + } + + /** + * Overload of {@link #getDevices(ForEach_Void)} + * if you need to break out of the iteration at any point. + */ + public void getDevices(final ForEach_Breakable<BleDevice> forEach) + { + enforceMainThread(); + + m_deviceMngr.forEach(forEach); + } + + /** + * Overload of {@link #getDevices(ForEach_Void, BleDeviceState)} + * if you need to break out of the iteration at any point. + */ + public void getDevices(final ForEach_Breakable<BleDevice> forEach, final BleDeviceState state) + { + enforceMainThread(); + + m_deviceMngr.forEach(forEach, state, true); + } + + /** + * Returns the mac addresses of all devices that we know about from both current and previous + * app sessions. + */ + public @Nullable(Prevalence.NEVER) Iterator<String> getDevices_previouslyConnected() + { + enforceMainThread(); + + return m_diskOptionsMngr.getPreviouslyConnectedDevices(); + } + + + /** + * Convenience method to return a {@link Set} of currently bonded devices. This simply calls + * {@link BluetoothAdapter#getBondedDevices()}, and wraps all bonded devices into separate + * {@link BleDevice} classes. + */ + public Set<BleDevice> getDevices_bonded() + { + enforceMainThread(); + + Set<BluetoothDevice> native_bonded_devices = getNativeAdapter().getBondedDevices(); + Set<BleDevice> bonded_devices = new HashSet<>(native_bonded_devices.size()); + BleDevice device; + for (BluetoothDevice d : native_bonded_devices) + { + device = getDevice(d.getAddress()); + if (device.isNull()) + { + device = newDevice(d.getAddress()); + } + bonded_devices.add(device); + } + return bonded_devices; + } + + /** + * Returns all the devices managed by this class. This generally includes all devices that are either. + * {@link BleDeviceState#ADVERTISING} or {@link BleDeviceState#CONNECTED}. + */ + public @Nullable(Prevalence.NEVER) BleDeviceIterator getDevices() + { + return new BleDeviceIterator(getDevices_List()); + } + + /** + * Same as {@link #getDevices()}, but with the devices sorted using {@link BleManagerConfig#defaultListComparator}, which + * by default sorts by {@link BleDevice#getName_debug()}. + */ + public @Nullable(Prevalence.NEVER) BleDeviceIterator getDevices_sorted() + { + return new BleDeviceIterator(getDevices_List_sorted()); + } + + /** + * Overload of {@link #getDevices()} that returns a {@link java.util.List} for you. + */ + public @Nullable(Prevalence.NEVER) List<BleDevice> getDevices_List() + { + enforceMainThread(); + + return (List<BleDevice>) m_deviceMngr.getList().clone(); + } + + /** + * Same as {@link #getDevices_List()}, but sorts the list using {@link BleManagerConfig#defaultListComparator}. + */ + public @Nullable(Prevalence.NEVER) List<BleDevice> getDevices_List_sorted() + { + enforceMainThread(); + + return (List<BleDevice>) m_deviceMngr.getList_sorted().clone(); + } + + /** + * Returns the total number of devices this manager is...managing. + * This includes all devices that are {@link BleDeviceState#DISCOVERED}. + */ + public int getDeviceCount() + { + enforceMainThread(); + + return m_deviceMngr.getCount(); + } + + /** + * Returns the number of devices that are in the current state. + */ + public int getDeviceCount(BleDeviceState state) + { + enforceMainThread(); + + return m_deviceMngr.getCount(state); + } + + /** + * Returns the number of devices that match the given query. + * See {@link BleDevice#is(Object...)} for the query format. + */ + public int getDeviceCount(Object ... query) + { + enforceMainThread(); + + return m_deviceMngr.getCount(query); + } + + /** + * Accessor into the underlying array used to store {@link BleDevice} instances. + * Combine with {@link #getDeviceCount()} to iterate, or you may want to use the + * {@link java.util.Iterator} returned from {@link #getDevices()} and its various overloads instead. + */ + public @Nullable(Prevalence.NEVER) BleDevice getDeviceAt(final int index) + { + enforceMainThread(); + + return m_deviceMngr.get(index); + } + + /** + * Returns the index of this device in the internal list, or -1 if it's not found. + */ + public int getDeviceIndex(final BleDevice device) + { + for( int i = 0; i < getDeviceCount(); i++ ) + { + final BleDevice ith = getDeviceAt(i); + + if( ith.equals(device) ) + { + return i; + } + } + + return -1; + } + + public @Nullable(Prevalence.NEVER) BleDevice getDevice_previous(final BleDevice device) + { + enforceMainThread(); + + return m_deviceMngr.getDevice_offset(device, -1); + } + + /** + * Same as {@link #getDevice_next(BleDevice, BleDeviceState)} but just returns the next device in the internal list + * with no state checking. + */ + public @Nullable(Prevalence.NEVER) BleDevice getDevice_next(final BleDevice device) + { + enforceMainThread(); + + return m_deviceMngr.getDevice_offset(device, 1); + } + + /** + * Returns the first device previous to the provided one in the internal list that is in the given state. For various fringe cases like + * this manager not having any devices, this method returns {@link BleDevice#NULL}. This method wraps + * around so that if the provided device is at index 0, the returned device will be the last device this manager holds. + */ + public @Nullable(Prevalence.NEVER) BleDevice getDevice_previous(final BleDevice device, final BleDeviceState state) + { + enforceMainThread(); + + return m_deviceMngr.getDevice_offset(device, -1, state, true); + } + + /** + * Same as {@link #getDevice_previous(BleDevice, BleDeviceState)} but returns the next device in the internal list + * with no state checking. + */ + public @Nullable(Prevalence.NEVER) BleDevice getDevice_next(final BleDevice device, final BleDeviceState state) + { + enforceMainThread(); + + return m_deviceMngr.getDevice_offset(device, 1, state, true); + } + + /** + * Same as {@link #getDevice_previous(BleDevice, BleDeviceState)} but allows you to pass a query. + * See {@link BleDevice#is(Object...)} for the query format. + */ + public @Nullable(Prevalence.NEVER) BleDevice getDevice_previous(final BleDevice device, final Object ... query) + { + enforceMainThread(); + + return m_deviceMngr.getDevice_offset(device, -1, query); + } + + /** + * Same as {@link #getDevice_next(BleDevice, BleDeviceState)} but allows you to pass a query. + * See {@link BleDevice#is(Object...)} for the query format. + */ + public @Nullable(Prevalence.NEVER) BleDevice getDevice_next(final BleDevice device, final Object ... query) + { + enforceMainThread(); + + return m_deviceMngr.getDevice_offset(device, 1, query); + } + + /** + * Returns whether we have any devices. For example if you have never called {@link #startScan()} + * or {@link #newDevice(String)} (or overloads) then this will return false. + */ + public boolean hasDevices() + { + enforceMainThread(); + + return m_deviceMngr.getCount() > 0; + } + + /** + * Same as {@link #getDevice(BleDeviceState)} except returns all matching devices. + */ + public @Nullable(Prevalence.NEVER) BleDeviceIterator getDevices(final BleDeviceState state) + { + return new BleDeviceIterator(getDevices_List(), state, true); + } + + /** + * Overload of {@link #getDevices(BleDeviceState)} that returns a {@link java.util.List} for you. + */ + public @Nullable(Prevalence.NEVER) List<BleDevice> getDevices_List(final BleDeviceState state) + { + enforceMainThread(); + + return m_deviceMngr.getDevices_List(false, state); + } + + /** + * Same as {@link #getDevices_List(BleDeviceState)} except the list is sorted using {@link BleManagerConfig#defaultListComparator}. + */ + public @Nullable(Prevalence.NEVER) List<BleDevice> getDevices_List_sorted(final BleDeviceState state) + { + enforceMainThread(); + + return m_deviceMngr.getDevices_List(true, state); + } + + /** + * Same as {@link #getDevice(Object...)} except returns all matching devices. + * See {@link BleDevice#is(Object...)} for the query format. + */ + public @Nullable(Prevalence.NEVER) BleDeviceIterator getDevices(final Object ... query) + { + return new BleDeviceIterator(getDevices_List(), query); + } + + /** + * Overload of {@link #getDevices(Object...)} that returns a {@link java.util.List} for you. + */ + public @Nullable(Prevalence.NEVER) List<BleDevice> getDevices_List(final Object ... query) + { + enforceMainThread(); + + return m_deviceMngr.getDevices_List(false, query); + } + + /** + * Same as {@link #getDevices_List(Object...)} except the list is sorted using {@link BleManagerConfig#defaultListComparator}. + */ + public @Nullable(Prevalence.NEVER) List<BleDevice> getDevices_List_sorted(final Object ... query) + { + enforceMainThread(); + + return m_deviceMngr.getDevices_List(true, query); + } + + /** + * Same as {@link #getDevices()} except filters using {@link BleDevice#isAny(int)}. + */ + public @Nullable(Prevalence.NEVER) BleDeviceIterator getDevices(final int mask_BleDeviceState) + { + return new BleDeviceIterator(getDevices_List(), mask_BleDeviceState); + } + + /** + * Overload of {@link #getDevices(int)} that returns a {@link java.util.List} for you. + */ + public @Nullable(Prevalence.NEVER) List<BleDevice> getDevices_List(final int mask_BleDeviceState) + { + enforceMainThread(); + + return m_deviceMngr.getDevices_List(false, mask_BleDeviceState); + } + + /** + * Same as {@link #getDevices_List(int)} except the list is sorted using {@link BleManagerConfig#defaultListComparator}. + */ + public @Nullable(Prevalence.NEVER) List<BleDevice> getDevices_List_sorted(final int mask_BleDeviceState) + { + enforceMainThread(); + + return m_deviceMngr.getDevices_List(true, mask_BleDeviceState); + } + + /** + * Returns a new {@link HistoricalData} instance using + * {@link BleDeviceConfig#historicalDataFactory} if available. + */ + public HistoricalData newHistoricalData(final byte[] data, final EpochTime epochTime) + { + enforceMainThread(); + + final BleDeviceConfig.HistoricalDataFactory factory = m_config.historicalDataFactory; + + if( m_config.historicalDataFactory != null ) + { + return m_config.historicalDataFactory.newHistoricalData(data, epochTime); + } + else + { + return new HistoricalData(data, epochTime); + } + } + + /** + * Same as {@link #newHistoricalData(byte[], EpochTime)} but tries to use + * {@link BleDevice#newHistoricalData(byte[], EpochTime)} if we have a device + * matching the given mac address. + */ + public HistoricalData newHistoricalData(final byte[] data, final EpochTime epochTime, final String macAddress) + { + final BleDevice device = getDevice(macAddress); + + if( device.isNull() ) + { + return newHistoricalData(data, epochTime); + } + else + { + return device.newHistoricalData(data, epochTime); + } + } + + /** + * Overload of {@link #getServer(BleServer.IncomingListener)} without any initial set-up parameters. + */ + public BleServer getServer() + { + return getServer((IncomingListener) null); + } + + /** + * Returns a {@link BleServer} instance. which for now at least is a singleton. + */ + public BleServer getServer(final IncomingListener incomingListener) + { + enforceMainThread(); + + m_server = m_server != null ? m_server : new BleServer(this, /*isNull=*/false); + +// bleServer.setConfig(config); + m_server.setListener_Incoming(incomingListener); + + return m_server; + } + + /** + * Same as {@link #newDevice(String, String, BleDeviceConfig)} but uses an empty string for the name + * and passes a <code>null</code> {@link BleDeviceConfig}, which results in inherited options from {@link BleManagerConfig}. + */ + public @Nullable(Prevalence.NEVER) BleDevice newDevice(String macAddress) + { + return newDevice(macAddress, null, null); + } + + /** + * Same as {@link #newDevice(String)} but allows a custom name also. + */ + public @Nullable(Prevalence.NEVER) BleDevice newDevice(final String macAddress, final String name) + { + return newDevice(macAddress, name, null); + } + + /** + * Same as {@link #newDevice(String)} but passes a {@link BleDeviceConfig} to be used as well. + */ + + public @Nullable(Prevalence.NEVER) BleDevice newDevice(final String macAddress, final BleDeviceConfig config) + { + return newDevice(macAddress, null, config); + } + + /** + * Creates a new {@link BleDevice} or returns an existing one if the macAddress matches. + * {@link BleManager.DiscoveryListener#onEvent(DiscoveryEvent)} will be called if a new device + * is created. + * <br><br> + * NOTE: You should always do a {@link BleDevice#isNull()} check on this method's return value just in case. Android + * documentation says that underlying stack will always return a valid {@link android.bluetooth.BluetoothDevice} + * instance (which is required to create a valid {@link BleDevice} instance), but you really never know. + */ + public @Nullable(Prevalence.NEVER) BleDevice newDevice(final String macAddress, final String name, final BleDeviceConfig config) + { + enforceMainThread(); + + final String macAddress_normalized = normalizeMacAddress(macAddress); + + final BleDevice existingDevice = this.getDevice(macAddress_normalized); + + if( !existingDevice.isNull() ) + { + if( config != null ) + { + existingDevice.setConfig(config); + } + + if( name != null ) + { + existingDevice.setName(name); + } + + return existingDevice; + } + + final BluetoothDevice device_native = newNativeDevice(macAddress_normalized); + + if( device_native == null ) //--- DRK > API says this should never happen...not trusting it! + { + return BleDevice.NULL; + } + + final String name_normalized = Utils_String.normalizeDeviceName(name); + + final BleDevice newDevice = newDevice_private(device_native, name_normalized, name != null ? name : "", BleDeviceOrigin.EXPLICIT, config); + + if( name != null ) + { + newDevice.setName(name); + } + + onDiscovered_wrapItUp(newDevice, device_native, /*newlyDiscovered=*/true, /*scanRecord=*/null, 0, BleDeviceOrigin.EXPLICIT, /*scanEvent=*/null); + + return newDevice; + } + + BluetoothDevice newNativeDevice(final String macAddress) + { + return getNative().getAdapter().getRemoteDevice(macAddress); + } + + /** + * Forcefully undiscovers a device, disconnecting it first if needed and removing it from this manager's internal list. + * {@link BleManager.DiscoveryListener#onEvent(DiscoveryEvent)} with {@link LifeCycle#UNDISCOVERED} will be called. + * No clear use case has been thought of but the method is here just in case anyway. + * + * @return <code>true</code> if the device was undiscovered, <code>false</code> if device is already {@link BleDeviceState#UNDISCOVERED} or manager + * doesn't contain an instance, checked referentially, not through {@link BleDevice#equals(BleDevice)} (i.e. by mac address). + */ + public boolean undiscover(final BleDevice device) + { + enforceMainThread(); + + if( device == null ) return false; + if( device.isNull() ) return false; + if( !hasDevice(device) ) return false; + if( device.is(BleDeviceState.UNDISCOVERED) ) return false; + + if( device.is(BleDeviceState.CONNECTED) ) + { + device.disconnect(); + } + + m_deviceMngr.undiscoverAndRemove(device, m_discoveryListener, m_deviceMngr_cache, E_Intent.INTENTIONAL); + + return true; + } + + /** + * This method will clear the task queue of all tasks. + * NOTE: This can really mess things up, especially if you're currently trying to connect to a device. Only use this if you absolutely have to! + */ + @Advanced + public void clearQueue() + { + m_taskQueue.clearQueueOfAll(); + } + + /** + * Convenience forwarding of {@link #clearSharedPreferences(String)}. + * + * @see #clearSharedPreferences(String) + */ + public void clearSharedPreferences(final BleDevice device) + { + clearSharedPreferences(device.getMacAddress()); + } + + /** + * Clears all data currently being held in {@link android.content.SharedPreferences} for a particular device. + * + * @see BleDeviceConfig#manageLastDisconnectOnDisk + * @see BleDeviceConfig#tryBondingWhileDisconnected_manageOnDisk + * @see BleDeviceConfig#saveNameChangesToDisk + * @see #clearSharedPreferences() + */ + public void clearSharedPreferences(final String macAddress) + { + enforceMainThread(); + + final String macAddress_normalized = normalizeMacAddress(macAddress); + + m_diskOptionsMngr.clear(macAddress_normalized); + } + + /** + * Clears all data currently being held in {@link android.content.SharedPreferences} for all devices. + * + * @see BleDeviceConfig#manageLastDisconnectOnDisk + * @see BleDeviceConfig#tryBondingWhileDisconnected_manageOnDisk + * @see BleDeviceConfig#saveNameChangesToDisk + * @see #clearSharedPreferences(String) + */ + public void clearSharedPreferences() + { + enforceMainThread(); + + m_diskOptionsMngr.clear(); + } + + //--- DRK > Smooshing together a bunch of package-private accessors here. + P_BleStateTracker getStateTracker(){ return m_stateTracker; } + P_NativeBleStateTracker getNativeStateTracker(){ return m_nativeStateTracker; } + public PI_UpdateLoop getUpdateLoop(){ return m_updateLoop; } + P_BluetoothCrashResolver getCrashResolver(){ return m_crashResolver; } + P_TaskQueue getTaskQueue(){ return m_taskQueue; } + P_Logger getLogger(){ return m_logger; } + + + private void turnOff_private(final boolean removeAllBonds) + { + enforceMainThread(); + + if( isAny(TURNING_OFF, OFF) ) return; + + if( is(ON) ) + { + m_stateTracker.update(E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE, TURNING_OFF, true, ON, false); + } + + m_deviceMngr.disconnectAllForTurnOff(PE_TaskPriority.CRITICAL); + + if( removeAllBonds ) + { + m_deviceMngr.unbondAll(PE_TaskPriority.CRITICAL, BondListener.Status.CANCELLED_FROM_BLE_TURNING_OFF); + } + + if( m_server != null ) + { + m_server.disconnect_internal(BleServer.ServiceAddListener.Status.CANCELLED_FROM_BLE_TURNING_OFF, BleServer.ConnectionFailListener.Status.CANCELLED_FROM_BLE_TURNING_OFF, ChangeIntent.INTENTIONAL); + } + + final P_Task_TurnBleOff task = new P_Task_TurnBleOff(this, /*implicit=*/false, new PA_Task.I_StateListener() + { + @Override public void onStateChange(PA_Task taskClass, PE_TaskState state) + { + if( state == PE_TaskState.EXECUTING ) + { + if( is(RESETTING) ) + { + m_nativeStateTracker.append(RESETTING, E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + + m_deviceMngr.undiscoverAllForTurnOff(m_deviceMngr_cache, E_Intent.INTENTIONAL); + } + } + }); + + m_taskQueue.add(task); + } + + void startAutoUpdate(final double updateRate) + { + if( m_updateLoop != null ) + { + m_updateLoop.start(updateRate); + } + } + + void stopAutoUpdate() + { + if( m_updateLoop != null ) + { + m_updateLoop.stop(); + } + } + + void onDiscoveredFromNativeStack(final BluetoothDevice device_native, final int rssi, final byte[] scanRecord_nullable) + { + //--- DRK > Protects against fringe case where scan task is executing and app calls turnOff(). + //--- Here the scan task will be interrupted but still potentially has enough time to + //--- discover another device or two. We're checking the enum state as opposed to the native + //--- integer state because in this case the "turn off ble" task hasn't started yet and thus + //--- hasn't called down into native code and thus the native state hasn't changed. + if( false == is(ON) ) return; + + //--- DRK > Not sure if queued up messages to library's thread can sneak in a device discovery event + //--- after user called stopScan(), so just a check to prevent unexpected callbacks to the user. + if( false == is(SCANNING) ) return; + + final String rawDeviceName; + + try + { + rawDeviceName = TextUtils.isEmpty(device_native.getName()) ? Utils_ScanRecord.parseName(scanRecord_nullable) : device_native.getName(); + } + + //--- DRK > Can occasionally catch a DeadObjectException or NullPointerException here...nothing we can do about it. + catch(Exception e) + { + m_logger.e(e.getStackTrace().toString()); + + //--- DRK > Can't actually catch the DeadObjectException itself. + if( e instanceof DeadObjectException ) + { + uhOh(UhOh.DEAD_OBJECT_EXCEPTION); + } + else + { + uhOh(UhOh.RANDOM_EXCEPTION); + } + + return; + } + + final String loggedDeviceName = rawDeviceName; + + final String macAddress = device_native.getAddress(); + BleDevice device_sweetblue = m_deviceMngr.get(macAddress); + + if ( device_sweetblue == null ) + { +// m_logger.i("Discovered device " + loggedDeviceName + " " + macAddress + " not in list."); + } + else + { + if( device_sweetblue.getNative().equals(device_native) ) + { +// m_logger.i("Discovered device " + loggedDeviceName + " " + macAddress + " already in list."); + } + else + { + ASSERT(false, "Discovered device " + loggedDeviceName + " " + macAddress + " already in list but with new native device instance."); + } + } + + final String normalizedDeviceName = Utils_String.normalizeDeviceName(rawDeviceName); + final ScanFilter.ScanEvent scanEvent_nullable; + + final Please please; + + if( device_sweetblue == null ) + { + final boolean hitDisk = BleDeviceConfig.boolOrDefault(m_config.manageLastDisconnectOnDisk); + final State.ChangeIntent lastDisconnectIntent = m_diskOptionsMngr.loadLastDisconnect(macAddress, hitDisk); + scanEvent_nullable = m_filterMngr.makeEvent() ? ScanFilter.ScanEvent.fromScanRecord(device_native, rawDeviceName, normalizedDeviceName, rssi, lastDisconnectIntent, scanRecord_nullable) : null; + final String deviceName = rawDeviceName != null ? rawDeviceName : ""; + please = m_filterMngr.allow(m_logger, scanEvent_nullable); + + if( please != null && false == please.ack() ) return; + } + else + { + please = null; + scanEvent_nullable = null; + } + + final boolean newlyDiscovered; + + if ( device_sweetblue == null ) + { + final String name_native = rawDeviceName;//device_native.getName(); + + final BleDeviceConfig config_nullable = please != null ? please.getConfig() : null; + device_sweetblue = newDevice_private(device_native, normalizedDeviceName, name_native, BleDeviceOrigin.FROM_DISCOVERY, config_nullable); + newlyDiscovered = true; + } + else + { + newlyDiscovered = false; + } + + onDiscovered_wrapItUp(device_sweetblue, device_native, newlyDiscovered, scanRecord_nullable, rssi, BleDeviceOrigin.FROM_DISCOVERY, scanEvent_nullable); + } + + private BleDevice newDevice_private(final BluetoothDevice device_native, final String name_normalized, final String name_native, final BleDeviceOrigin origin, final BleDeviceConfig config_nullable) + { + // TODO: for now always true...should these be behind a config option? + final boolean hitCache = true; + + final BleDevice device_cached; + + if( hitCache ) + { + device_cached = m_deviceMngr_cache.get(device_native.getAddress()); + + if( device_cached != null ) + { + m_deviceMngr_cache.remove(device_cached, null); + device_cached.setConfig(config_nullable); + } + } + else + { + device_cached = null; + } + + final BleDevice device = device_cached != null ? device_cached : new BleDevice(BleManager.this, device_native, name_normalized, name_native, origin, config_nullable, /*isNull=*/false); + + m_deviceMngr.add(device); + + return device; + } + + void onDiscovered_fromRogueAutoConnect(final BleDevice device, final boolean newlyDiscovered, final List<UUID> services_nullable, final byte[] scanRecord_nullable, final int rssi) + { + if( !m_deviceMngr.has(device) ) // DRK > as of now checked upstream also, so just being anal + { + m_deviceMngr.add(device); + } + + onDiscovered_wrapItUp(device, device.getNative(), newlyDiscovered, scanRecord_nullable, rssi, BleDeviceOrigin.FROM_DISCOVERY, /*scanEvent=*/null); + } + + private void onDiscovered_wrapItUp(final BleDevice device, final BluetoothDevice device_native, final boolean newlyDiscovered, final byte[] scanRecord_nullable, final int rssi, final BleDeviceOrigin origin, ScanFilter.ScanEvent scanEvent_nullable) + { + if( newlyDiscovered ) + { + device.onNewlyDiscovered(device_native, scanEvent_nullable, rssi, scanRecord_nullable, origin); + + if( m_discoveryListener != null ) + { + DiscoveryEvent event = new DiscoveryEvent(device, LifeCycle.DISCOVERED); + m_discoveryListener.onEvent(event); + } + } + else + { + device.onRediscovered(device_native, scanEvent_nullable, rssi, scanRecord_nullable, BleDeviceOrigin.FROM_DISCOVERY); + + if( m_discoveryListener != null ) + { + DiscoveryEvent event = new DiscoveryEvent(device, LifeCycle.REDISCOVERED); + m_discoveryListener.onEvent(event); + } + } + } + + private void stopNativeScan_nested_postLollipop() + { + L_Util.stopNativeScan(this); + } + + void stopNativeScan(final P_Task_Scan scanTask) + { + if( scanTask.getMode() == P_Task_Scan.Mode_BLE ) + { + try + { + if( m_config.scanMode == BleScanMode.POST_LOLLIPOP && Utils.isLollipop() ) + { + stopNativeScan_nested_postLollipop(); + } + else + { + getNativeAdapter().stopLeScan(m_listeners.m_scanCallback_preLollipop); + } + } + catch(NullPointerException e) + { + //--- DRK > Catching this because of exception thrown one time...only ever seen once, so not very reproducible. + // java.lang.NullPointerException + // 07-02 15:04:48.149: E/AndroidRuntime(24389): at android.bluetooth.BluetoothAdapter$GattCallbackWrapper.stopLeScan(BluetoothAdapter.java:1819) + // 07-02 15:04:48.149: E/AndroidRuntime(24389): at android.bluetooth.BluetoothAdapter.stopLeScan(BluetoothAdapter.java:1722) + m_logger.w(e.getStackTrace().toString()); + + uhOh(UhOh.RANDOM_EXCEPTION); + } + } + else if( scanTask.getMode() == P_Task_Scan.Mode_CLASSIC ) + { + //--- DRK > This assert tripped, but not sure what I can do about it. Technically discovery can be cancelled + //--- by another app or something, so its usefulness as a logic checker is debatable. +// ASSERT(m_btMngr.getAdapter().isDiscovering(), "Trying to cancel discovery when not natively running."); + + if( m_btMngr.getAdapter().isDiscovering() ) + { + m_btMngr.getAdapter().cancelDiscovery(); + } + } + + if( m_config.enableCrashResolver ) + { + m_crashResolver.stop(); + } + + m_nativeStateTracker.remove(BleManagerState.SCANNING, scanTask.getIntent(), BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + + void clearScanningRelatedMembers(final E_Intent intent) + { +// m_filterMngr.clear(); + + m_timeNotScanning = 0.0; + + m_stateTracker.remove(BleManagerState.SCANNING, intent, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + + void tryPurgingStaleDevices(final double scanTime) + { + m_deviceMngr.purgeStaleDevices(scanTime, m_deviceMngr_cache, m_discoveryListener); + } + + boolean ready() { + if (!m_ready) + { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) + { + m_ready = is(ON); + } + else + { + m_ready = is(ON) && isLocationEnabledForScanning_byRuntimePermissions() && isLocationEnabledForScanning_byOsServices(); + } + } + return m_ready; + } + + /** + * This method is made public in case you want to tie the library in to an update loop + * from another codebase. Generally you should leave {@link BleManagerConfig#autoUpdateRate} + * alone and let the library handle the calling of this method. + */ + @Advanced + public void update(final double timeStep_seconds) + { + enforceMainThread(); + + m_listeners.update(); + + m_uhOhThrottler.update(timeStep_seconds); + m_taskQueue.update(timeStep_seconds); + + if( m_isForegrounded ) + { + m_timeForegrounded += timeStep_seconds; + } + else + { + m_timeForegrounded = 0.0; + } + + m_deviceMngr.update(timeStep_seconds); + + if( !is(SCANNING) ) + { + m_timeNotScanning += timeStep_seconds; + } + + if ( m_timeTurnedOn == 0 && is(ON) ) + { + m_timeTurnedOn = System.currentTimeMillis(); + } + + boolean startScan = false; + + if( Interval.isEnabled(m_config.autoScanActiveTime) && ready() ) + { + if( m_isForegrounded ) + { + if (Interval.isEnabled(m_config.autoScanDelayAfterBleTurnsOn) && !m_triedToStartScanAfterTurnedOn && (System.currentTimeMillis() - m_timeTurnedOn) >= m_config.autoScanDelayAfterBleTurnsOn.millis()) + { + m_triedToStartScanAfterTurnedOn = true; + + if (!is(SCANNING)) + { + startScan = true; + } + } + else if ( Interval.isEnabled(m_config.autoScanDelayAfterResume) && !m_triedToStartScanAfterResume && m_timeForegrounded >= Interval.secs(m_config.autoScanDelayAfterResume) ) + { + m_triedToStartScanAfterResume = true; + + if (!is(SCANNING)) + { + startScan = true; + } + } + } + if( !is(SCANNING) ) + { + double scanInterval = Interval.secs(m_isForegrounded ? m_config.autoScanPauseInterval : m_config.autoScanPauseTimeWhileAppIsBackgrounded); + + if( Interval.isEnabled(scanInterval) && m_timeNotScanning >= scanInterval ) + { + startScan = true; + } + } + } + + if( startScan ) + { + if( doAutoScan() ) + { + startScan_private(m_config.autoScanActiveTime, null, null, /*isPoll=*/true); + } + } + + final P_Task_Scan scanTask = m_taskQueue.get(P_Task_Scan.class, this); + + if( scanTask != null ) + { + //--- DRK > Not sure why this was originally also for the ARMED case... +// if( scanTask.getState() == PE_TaskState.ARMED || scanTask.getState() == PE_TaskState.EXECUTING ) + if( scanTask.getState() == PE_TaskState.EXECUTING ) + { + tryPurgingStaleDevices(scanTask.getAggregatedTimeArmedAndExecuting()); + } + } + + if( m_config.updateLoopCallback != null ) + { + m_config.updateLoopCallback.onUpdate(timeStep_seconds); + } + } + + /** + * Returns this manager's knowledge of the app's foreground state, which must be + * controlled manually from appland through {@link #onResume()} and {@link #onPause()}. + */ + public boolean isForegrounded() + { + enforceMainThread(); + + return m_isForegrounded; + } + + private boolean doAutoScan() + { + return is(ON) && (m_config.autoScanDuringOta || !m_deviceMngr.hasDevice(BleDeviceState.PERFORMING_OTA)); + } + + void uhOh(UhOh reason) + { +// if( reason == UhOh.UNKNOWN_CONNECTION_ERROR ) +// { +// m_connectionFailTracker = 0; +// } + + m_uhOhThrottler.uhOh(reason); + } + + @Override public String toString() + { + return m_stateTracker.toString(); + } + + private void enforceMainThread() + { + final boolean allowAllThreads = BleDeviceConfig.boolOrDefault(m_config != null ? m_config.allowCallsFromAllThreads : null); + + if( false == allowAllThreads ) + { + Utils.enforceMainThread(BleNodeConfig.WRONG_THREAD_MESSAGE); + } + } + + String normalizeMacAddress(final String macAddress) + { + final String macAddress_normalized = Utils_String.normalizeMacAddress(macAddress); + + if( macAddress == macAddress_normalized ) + { + return macAddress; + } + else if( macAddress.equals(macAddress_normalized) ) + { + return macAddress; + } + else + { + getLogger().w("Given mac address " + macAddress + " has been auto-normalized to " + macAddress_normalized); + + return macAddress_normalized; + } + } + + private Application.ActivityLifecycleCallbacks newLifecycleCallbacks() + { + return new Application.ActivityLifecycleCallbacks() + { + @Override public void onActivityCreated(Activity activity, Bundle savedInstanceState){} + @Override public void onActivityStarted(Activity activity){} + @Override public void onActivityStopped(Activity activity){} + @Override public void onActivitySaveInstanceState(Activity activity, Bundle outState){} + @Override public void onActivityDestroyed(Activity activity){} + + @Override public void onActivityPaused(Activity activity) + { + if( m_config.autoPauseResumeDetection == true ) + { + BleManager.this.onPause(); + } + } + + @Override public void onActivityResumed(Activity activity) + { + if( m_config.autoPauseResumeDetection == true ) + { + BleManager.this.onResume(); + } + } + }; + } + + private void addLifecycleCallbacks() + { + if( getApplicationContext() instanceof Application ) + { + final Application application = (Application) getApplicationContext(); + final Application.ActivityLifecycleCallbacks callbacks = newLifecycleCallbacks(); + + application.registerActivityLifecycleCallbacks(callbacks); + } + else + { + //--- DRK > Not sure if this is practically possible but nothing we can do here I suppose. + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleManagerConfig.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleManagerConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..944100f3cebec70ec33f95abab883c6eedf55a6a --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleManagerConfig.java @@ -0,0 +1,722 @@ +package com.idevicesinc.sweetblue; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.content.Context; +import android.util.SparseArray; +import com.idevicesinc.sweetblue.BleManager.DiscoveryListener; +import com.idevicesinc.sweetblue.annotations.Immutable; +import com.idevicesinc.sweetblue.annotations.Nullable; +import com.idevicesinc.sweetblue.annotations.Nullable.Prevalence; +import com.idevicesinc.sweetblue.annotations.UnitTest; +import com.idevicesinc.sweetblue.utils.BleScanInfo; +import com.idevicesinc.sweetblue.utils.Event; +import com.idevicesinc.sweetblue.utils.Interval; +import com.idevicesinc.sweetblue.utils.Pointer; +import com.idevicesinc.sweetblue.utils.ReflectionUuidNameMap; +import com.idevicesinc.sweetblue.utils.State; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Utils_ScanRecord; +import com.idevicesinc.sweetblue.utils.Utils_String; +import com.idevicesinc.sweetblue.utils.UuidNameMap; +import com.idevicesinc.sweetblue.utils.Uuids; + +/** + * Provides a number of options to pass to the {@link BleManager#get(Context, BleManagerConfig)} + * singleton getter or {@link BleManager#setConfig(BleManagerConfig)}. + * Use {@link Interval#DISABLED} or <code>null</code> to disable any time-based options. + */ +public class BleManagerConfig extends BleDeviceConfig +{ + /** + * Default value for {@link #autoScanPauseInterval}. + */ + public static final double DEFAULT_AUTO_SCAN_PAUSE_TIME = 3.0; + + /** + * Default value for {@link #autoScanDelayAfterResume}. + */ + public static final double DEFAULT_AUTO_SCAN_DELAY_AFTER_RESUME = 0.5; + + /** + * Default value for {@link #autoUpdateRate}. + */ + public static final double DEFAULT_AUTO_UPDATE_RATE = 1.01/50.0; + + /** + * Default value for {@link #uhOhCallbackThrottle}. + */ + public static final double DEFAULT_UH_OH_CALLBACK_THROTTLE = 30.0; + + /** + * Default value for {@link #scanReportDelay}. + */ + public static final double DEFAULT_SCAN_REPORT_DELAY = .5; + + static final BleManagerConfig NULL = new BleManagerConfigNull(); + + static class BleManagerConfigNull extends BleManagerConfig { + { + reconnectFilter = new DefaultNullReconnectFilter(); + } + } + + + + /** + * Maximum amount of time for a classic scan to run. This was determined based on experimentation. + * Documentation says that classic scan goes on for about 12 seconds. I forget what the reasoning + * was for setting a time lower than this, so here's a TODO to try to remember that. + */ + static final double MAX_CLASSIC_SCAN_TIME = 7.0; + + /** + * Default is <code>false</code> - basically only useful for developers working on the library itself. + * May also be useful for providing context when reporting bugs. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public boolean loggingEnabled = false; + + + /** + * Default is {@link DefaultLogger} - which prints the log statements to Android's logcat. If you want to + * pipe the log statements elsewhere, create a class which implements {@link SweetLogger}, and set this field + * with an instance of it. If {@link #loggingEnabled} is not set, then this option will not affect anything. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public SweetLogger logger = new DefaultLogger(); + + /** + * Default is <code>false</code> - this option may help mitigate crashes with "Unfortunately, + * Bluetooth Share has stopped" error messages. See https://github.com/RadiusNetworks/bluetooth-crash-resolver or + * http://developer.radiusnetworks.com/2014/04/02/a-solution-for-android-bluetooth-crashes.html or + * Google "Bluetooth Crash Resolver" for more information. + * <br><br> + * NOTE:" This option gates a "proactive" approach towards mitigating the above-described crash. + * + * @see #enableCrashResolverForReset + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public boolean enableCrashResolver = false; + + /** + * Default is <code>true</code> - this option gates whether the "crash resolver" described in {@link #enableCrashResolver} + * is invoked during a {@link BleManager#reset()} operation to forcefully clear the memory that causes the crash. + * + * @see #enableCrashResolver + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public boolean enableCrashResolverForReset = true; + + /** + * Default is <code>true</code> - makes it so {@link BleManager#stopScan()} is called automatically after {@link BleManager#onPause()}. + * If you're doing an infinite scan (e.g. by calling {@link BleManager#startScan()}, i.e. no timeout), then the scan + * will automatically continue after {@link BleManager#onResume()} is called. + * + * @see BleManager#onPause() + */ + public boolean stopScanOnPause = true; + + /** + * Default is <code>false</code> - set this to allow or disallow autoscanning while any + * {@link BleDevice} is {@link BleDeviceState#PERFORMING_OTA}. If false, + * then OTAs may complete faster if you're periodically scanning + * through {@link #autoScanActiveTime} or {@link BleManager#startPeriodicScan(Interval, Interval)}. + * {@link BleManager#startScan()} will still start a scan regardless. + */ + public boolean autoScanDuringOta = false; + + /** + * Default is <code>true</code> - SweetBlue uses {@link BluetoothAdapter#startLeScan(BluetoothAdapter.LeScanCallback)} by default but for unknown + * reasons this can fail sometimes. In this case SweetBlue can revert to using classic bluetooth + * discovery through {@link BluetoothAdapter#startDiscovery()}. Be aware that classic + * discovery may not discover some or any advertising BLE devices, nor will it provide + * a {@link BleManagerConfig.ScanFilter.ScanEvent#scanRecord} or {@link BleManagerConfig.ScanFilter.ScanEvent#advertisedServices} + * to {@link BleManagerConfig.ScanFilter#onEvent(BleManagerConfig.ScanFilter.ScanEvent)}. + * Most likely you will be forced to filter on name only for your implementation of + * {@link BleManagerConfig.ScanFilter#onEvent(BleManagerConfig.ScanFilter.ScanEvent)}. + * As such this is meant as a better-than-nothing back-up solution for BLE scanning. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public boolean revertToClassicDiscoveryIfNeeded = true; + + /** + * Default is <code>true</code> - SweetBlue originally ran most operations on its own internal thread based on + * some theories that since proved invalid. While the library can do so, it's now + * recommended to run on the main thread in order to avoid any possible multithreading issues. + * Note that if this is set to false, then allowCallsFromAllThreads will automatically be set to <code>true</code>. + * Setting this to false will result in a smoother UI experience, at the cost of the possibility of multithreading + * issues, as stated above. Use at your own risk. + */ + public boolean runOnMainThread = true; + + /** + * Default is <code>true</code> - whether all callbacks are posted to the main thread or from SweetBlue's internal + * thread. If {@link #runOnMainThread}==true then this setting is meaningless because SweetBlue's + * internal thread is already the main thread to begin with. + */ + boolean postCallbacksToMainThread = true; + + /** + * Default is <code>true</code> - requires the {@link android.Manifest.permission#WAKE_LOCK} permission in your app's manifest file. + * It should look like this: {@code <uses-permission android:name="android.permission.WAKE_LOCK" />} + * Sets whether the library will attempt to obtain a wake lock in certain situations. + * For now the only situation is when there are no remote bluetooth devices + * {@link BleDeviceState#CONNECTED} but one or more devices are {@link BleDeviceState#RECONNECTING_LONG_TERM}. + * The wake lock will be released when devices are reconnected (e.g. from coming back + * into range) or when reconnection is stopped either through {@link BleDevice#disconnect()} or returning + * {@link BleNodeConfig.ReconnectFilter.Please#stopRetrying()} from + * {@link BleNodeConfig.ReconnectFilter#onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)}. + * Wake locks will also be released if Bluetooth is turned off either from the App or OS settings. + * Note that Android itself uses some kind of implicit wake lock when you are connected to + * one or more devices and requires no explicit wake lock nor any extra permissions to do so. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public boolean manageCpuWakeLock = true; + + /** + * Default is <code>false</code> - Only applicable for Lollipop and up (i.e. > 5.0), this will force the use of the deprecated "pre-lollipop" + * scanning API, that is {@link BluetoothAdapter#startLeScan(BluetoothAdapter.LeScanCallback)}. There is no known reason you would + * want this, but including it just in case. + * + * @deprecated Use {@link #scanMode} with {@link BleScanMode#PRE_LOLLIPOP} instead. + */ + @Deprecated + @com.idevicesinc.sweetblue.annotations.Advanced + public boolean forcePreLollipopScan = false; + + /** + * Default is <code>true</code> - Controls whether {@link BleManager#onResume()} and {@link BleManager#onPause()} will get called + * automatically by using {@link android.app.Application.ActivityLifecycleCallbacks}. + */ + public boolean autoPauseResumeDetection = true; + + /** + * Default is {@value #DEFAULT_UH_OH_CALLBACK_THROTTLE} seconds - {@link BleManager.UhOhListener.UhOh} callbacks from {@link BleManager.UhOhListener} + * can be a little spammy at times so this is an option to throttle them back on a per-{@link BleManager.UhOhListener.UhOh} basis. + * Set this to {@link Interval#DISABLED} to receive all every {@link BleManager.UhOhListener.UhOh} and manage them yourself. + * + * @see BleManager.UhOhListener + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Prevalence.NORMAL) + public Interval uhOhCallbackThrottle = Interval.secs(DEFAULT_UH_OH_CALLBACK_THROTTLE); + + /** + * Default is {@value #DEFAULT_AUTO_SCAN_DELAY_AFTER_RESUME} seconds - Unless {@link Interval#DISABLED}, + * this option will kick off a scan for {@link #autoScanActiveTime} seconds + * {@link #autoScanDelayAfterResume} seconds after {@link BleManager#onResume()} is called. + */ + @Nullable(Prevalence.NORMAL) + public Interval autoScanDelayAfterResume = Interval.secs(DEFAULT_AUTO_SCAN_DELAY_AFTER_RESUME); + + /** + * Default is {@link Interval#DISABLED}. If set, this will automatically start scanning after the specified {@link Interval}. This also + * depends on {@link #autoScanActiveTime}, in that if that value is not set, this value will do nothing. + */ + @Nullable(Prevalence.NORMAL) + public Interval autoScanDelayAfterBleTurnsOn = Interval.DISABLED; + + /** + * Default is {@link Interval#DISABLED} - Length of time in seconds that the library will automatically scan for devices. + * Used in conjunction with {@link #autoScanPauseInterval}, {@link #autoScanPauseTimeWhileAppIsBackgrounded}, {@link #autoScanDelayAfterResume}, + * and {@link #autoScanDelayAfterBleTurnsOn}, this option allows the library to periodically send off scan "pulses" that last + * {@link #autoScanActiveTime} seconds. Use {@link BleManager#startPeriodicScan(Interval, Interval)} to adjust this behavior while the library is running. + * If either {@link #autoScanActiveTime} or {@link #autoScanPauseInterval} is {@link Interval#DISABLED} then auto scanning is disabled. + * It can also be turned off with {@link BleManager#stopPeriodicScan()}. + * + * @see #autoScanPauseInterval + * @see BleManager#startPeriodicScan(Interval, Interval) + * @see BleManager#stopPeriodicScan() + */ + @Nullable(Prevalence.NORMAL) + public Interval autoScanActiveTime = Interval.DISABLED; + + /** + * Default is {@value #DEFAULT_AUTO_SCAN_PAUSE_TIME} seconds - Length of time in seconds between automatic scan pulses defined by {@link #autoScanActiveTime}. + * + * @see #autoScanActiveTime + */ + @Nullable(Prevalence.NORMAL) + public Interval autoScanPauseInterval = Interval.secs(DEFAULT_AUTO_SCAN_PAUSE_TIME); + + /** + * Default is {@link Interval#DISABLED} - Same as {@link #autoScanPauseInterval} except this value is used while the app is paused. + * + * @see #autoScanPauseInterval + * @see BleManager#onPause() + */ + @Nullable(Prevalence.NORMAL) + public Interval autoScanPauseTimeWhileAppIsBackgrounded = Interval.DISABLED; + + /** + * Default is {@link #DEFAULT_MINIMUM_SCAN_TIME} seconds - Minimum amount of time in seconds that the library strives to give to a scanning operation. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Prevalence.NORMAL) + public Interval idealMinScanTime = Interval.secs(DEFAULT_MINIMUM_SCAN_TIME); + + /** + * Default is {@value #DEFAULT_AUTO_UPDATE_RATE} seconds - The rate at which the library's internal update loop ticks. + * Generally shouldn't need to be changed. You can set this to {@link Interval#DISABLED} and call {@link BleManager#update(double)} yourself + * if you want to tie the library in to an existing update loop used in your application. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Prevalence.RARE) + public Interval autoUpdateRate = Interval.secs(DEFAULT_AUTO_UPDATE_RATE); + + /** + * Default is {@value #DEFAULT_SCAN_REPORT_DELAY} seconds - Only applicable for Lollipop and up (i.e. > 5.0), this is the value given to + * {@link android.bluetooth.le.ScanSettings.Builder#setReportDelay(long)} so that scan results are "batched" ¯\_(ツ)_/¯. It's not clear from source + * code, API documentation, or internet search what effects this has, when you would want to use it, etc. The reason we use the default + * value provided is largely subjective. It seemed to help discover a peripheral faster on the Nexus 7 that was only advertising on channels + * 37 and 38 - i.e. not on channel 39 too. It is also the default option in the nRF Master Control panel diagnostic app. + * <br><br> + * NOTE: This option is only relevant if {@link BluetoothAdapter#isOffloadedScanBatchingSupported()} returns <code>true</code> - otherwise + * it has no effect because the hardware does not support it. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Prevalence.RARE) + public Interval scanReportDelay = Interval.secs(DEFAULT_SCAN_REPORT_DELAY); + + /** + * Default is <code>null</code>, meaning no filtering - all discovered devices will + * be piped through your {@link BleManager.DiscoveryListener} instance + * and added to the internal list of {@link BleManager}. + * + * @see ScanFilter + */ + @Nullable(Prevalence.NORMAL) + public ScanFilter defaultScanFilter = null; + + /** + * Default is <code>null</code> - can also be set post-construction with {@link BleManager#setListener_Discovery(DiscoveryListener)}, + * which will override the implementation provided here. + * + * @see BleManager.DiscoveryListener + */ + @Nullable(Prevalence.NORMAL) + public DiscoveryListener defaultDiscoveryListener = null; + + /** + * Default is {@link BleScanMode#AUTO} - see {@link BleScanMode} for more details. + */ + public BleScanMode scanMode = BleScanMode.AUTO; + + /** + * NOTE: This is ONLY applicable on devices running Lollipop or above. + * Default is {@link BleScanPower#AUTO} = see {@link BleScanPower} for more details. + */ + public BleScanPower scanPower = BleScanPower.AUTO; + + /** + * Default is <code>null</code> - provide an instance here that will be called at the end of {@link BleManager#update(double)}. + * This might be useful for extension/wrapper libraries or apps that want to tie into the {@link BleManager} instance's existing update loop. + */ + public PI_UpdateLoop.Callback updateLoopCallback = null; + + /** + * This allows the use of custom {@link PI_UpdateLoop} for the internal processing of SweetBlue. This is only exposed + * for unit testing purposes, you should never change this unless you know the internals of SweetBlue intimately. + */ + @UnitTest + public PI_UpdateLoop.IUpdateLoopFactory updateLoopFactory = new PI_UpdateLoop.DefaultUpdateLoopFactory(); + + /** + * Allows overriding of Ble Status's. This is only used for unit testing, and shouldn't be + * used at all. + */ + @UnitTest + public PI_BleStatusHelper bleStatusHelper = null; + + /** + * Allows overriding of Ble scanning behaviour in SweetBlue. This is only used for unit + * testing, and should not be used at all. + */ + @UnitTest + public PI_BleScanner bleScanner = null; + + /** + * Used if {@link #loggingEnabled} is <code>true</code>. Gives threads names so they are more easily identifiable. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Prevalence.NORMAL) + final String[] debugThreadNames = + { + "AMY", "BEN", "CAM", "DON", "ELI", "FAY", "GUS", "HAL", "IAN", "JAY", "LEO", + "MAX", "NED", "OLA", "PAT", "RON", "SAL", "TED", "VAL", "WES", "YEE", "ZED" + }; + + /** + * Default is <code>null</code> - optional, only used if {@link #loggingEnabled} is true. Provides a look-up table + * so logs can show the name associated with a {@link UUID} along with its numeric string. + */ + @Nullable(Prevalence.NORMAL) + public List<UuidNameMap> uuidNameMaps = null; + + /** + * Default is {@link com.idevicesinc.sweetblue.BleManagerConfig.DeviceNameComparator}. This specifies how to + * sort the list of devices in {@link BleManager}. + */ + public Comparator<BleDevice> defaultListComparator = new DeviceNameComparator(); + + //--- DRK > Not sure if this is useful so keeping it package private for now. + int connectionFailUhOhCount = 0; + + /** + * An optional whitelisting mechanism for scanning. Provide an implementation at + * {@link BleManagerConfig#defaultScanFilter} or one of the various {@link BleManager#startScan()} + * overloads, i.e. {@link BleManager#startScan(BleManagerConfig.ScanFilter)}, + * {@link BleManager#startScan(Interval, BleManagerConfig.ScanFilter)}, etc. + */ + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface ScanFilter + { + /** + * Instances of this class are passed to {@link ScanFilter#onEvent(ScanEvent)} to aid in making a decision. + */ + @Immutable + public static class ScanEvent extends Event + { + /** + * Other parameters are probably enough to make a decision but this native instance is provided just in case. + */ + public BluetoothDevice nativeInstance(){ return m_nativeInstance; } + private final BluetoothDevice m_nativeInstance; + + /** + * A list of {@link UUID}s parsed from {@link #scanRecord()} as a convenience. May be empty, notably + * if {@link BleManagerConfig#revertToClassicDiscoveryIfNeeded} is invoked. + */ + public List<UUID> advertisedServices(){ return m_advertisedServices; } + private final List<UUID> m_advertisedServices; + + /** + * The unaltered device name retrieved from the native bluetooth stack. + */ + public String name_native(){ return m_rawDeviceName; } + private final String m_rawDeviceName; + + /** + * See {@link BleDevice#getName_normalized()} for an explanation. + */ + public String name_normalized(){ return m_normalizedDeviceName; } + private final String m_normalizedDeviceName; + + /** + * The raw scan record received when the device was discovered. May be empty, especially + * if {@link BleManagerConfig#revertToClassicDiscoveryIfNeeded} is invoked. + */ + public byte[] scanRecord(){ return m_scanRecord; } + private final byte[] m_scanRecord; + + /** + * The RSSI received when the device was discovered. + */ + public int rssi(){ return m_rssi; } + private final int m_rssi; + + /** + * Returns the transmission power of the device in decibels, or {@link BleNodeConfig#INVALID_TX_POWER} if device is not advertising its transmission power. + */ + public int txPower(){ return m_txPower; } + private final int m_txPower; + + /** + * Returns the mac address of the discovered device. + */ + public String macAddress(){ return m_nativeInstance.getAddress(); } + + /** + * See explanation at {@link BleDevice#getLastDisconnectIntent()}. + * <br><br> + * TIP: If {@link ScanEvent#lastDisconnectIntent} isn't {@link com.idevicesinc.sweetblue.utils.State.ChangeIntent#NULL} then most likely you can early-out + * and return <code>true</code> from {@link ScanFilter#onEvent(ScanEvent)} without having to check + * uuids or names matching, because obviously you've seen and connected to this device before. + */ + public State.ChangeIntent lastDisconnectIntent(){ return m_lastDisconnectIntent; } + private final State.ChangeIntent m_lastDisconnectIntent; + + /** + * Returns the advertising flags, if any, parsed from {@link #scanRecord()}. + */ + public int advertisingFlags() { return m_advertisingFlags; } + private final int m_advertisingFlags; + + /** + * Returns the manufacturer-specific data, if any, parsed from {@link #scanRecord()}. + */ + public SparseArray<byte[]> manufacturerCombinedData(){ return m_manufacturerCombinedData; } + private final SparseArray<byte[]> m_manufacturerCombinedData; + + public byte[] manufacturerData(){ return m_manufacturerData;} + private byte[] m_manufacturerData; + + public int manufacturerId(){ return m_manufacturerId;} + private int m_manufacturerId; + + /** + * Returns the service data, if any, parsed from {@link #scanRecord()}. + */ + public Map<UUID, byte[]> serviceData() { return m_serviceData; } + private final Map<UUID, byte[]> m_serviceData; + + ScanEvent( + BluetoothDevice nativeInstance, String rawDeviceName, + String normalizedDeviceName, byte[] scanRecord, int rssi, State.ChangeIntent lastDisconnectIntent, + BleScanInfo scanInfo + ) + { + this.m_nativeInstance = nativeInstance; + this.m_advertisedServices = scanInfo != null ? scanInfo.getServiceUUIDS() : new ArrayList<UUID>(0); + this.m_rawDeviceName = rawDeviceName != null ? rawDeviceName : ""; + this.m_normalizedDeviceName = normalizedDeviceName; + this.m_scanRecord = scanRecord != null ? scanRecord : BleDevice.EMPTY_BYTE_ARRAY; + this.m_rssi = rssi; + this.m_lastDisconnectIntent = lastDisconnectIntent; + this.m_txPower = scanInfo != null ? scanInfo.getTxPower().value : 0; + this.m_advertisingFlags = scanInfo != null ? scanInfo.getAdvFlags().value : 0; + this.m_manufacturerData = scanInfo != null ? scanInfo.getManufacturerData() : BleDevice.EMPTY_BYTE_ARRAY; + this.m_manufacturerId = scanInfo != null ? scanInfo.getManufacturerId() : 0; + this.m_serviceData = scanInfo != null ? scanInfo.getServiceData() : new HashMap<UUID, byte[]>(0); + + this.m_manufacturerCombinedData = new SparseArray<>(); + } + + /*package*/ static ScanEvent fromScanRecord(final BluetoothDevice device_native, final String rawDeviceName, final String normalizedDeviceName, final int rssi, final State.ChangeIntent lastDisconnectIntent, final byte[] scanRecord) + { + final Pointer<Integer> advFlags = new Pointer<Integer>(); + final Pointer<Integer> txPower = new Pointer<Integer>(); + final List<UUID> serviceUuids = new ArrayList<UUID>(); + final SparseArray<byte[]> manufacturerData = new SparseArray<byte[]>(); + final Map<UUID, byte[]> serviceData = new HashMap<UUID, byte[]>(); + final String name = rawDeviceName != null ? rawDeviceName : Utils_ScanRecord.parseName(scanRecord); + + BleScanInfo scanInfo = Utils_ScanRecord.parseScanRecord(scanRecord); + + final ScanEvent e = new ScanEvent(device_native, name, normalizedDeviceName, scanRecord, rssi, lastDisconnectIntent, scanInfo); + + return e; + } + + @Override public String toString() + { + return Utils_String.toString + ( + this.getClass(), + "macAddress", macAddress(), + "name", name_normalized(), + "services", advertisedServices() + ); + } + } + + /** + * Small struct passed back from {@link ScanFilter#onEvent(ScanEvent)}. + * Use static constructor methods to create an instance. + */ + public static class Please + { + static int STOP_SCAN = 0x1; + static int STOP_PERIODIC_SCAN = 0x2; + + private final boolean m_ack; + private final BleDeviceConfig m_config; + int m_stopScanOptions; + + private Please(boolean ack, BleDeviceConfig config_nullable) + { + m_ack = ack; + m_config = config_nullable; + } + + boolean ack() + { + return m_ack; + } + + BleDeviceConfig getConfig() + { + return m_config; + } + + /** + * Shorthand for calling {@link BleManager#stopScan(BleManagerConfig.ScanFilter)}. + */ + public Please thenStopScan() + { + m_stopScanOptions |= STOP_SCAN; + + return this; + } + + /** + * Shorthand for calling {@link BleManager#stopPeriodicScan(BleManagerConfig.ScanFilter)}. + */ + public Please thenStopPeriodicScan() + { + m_stopScanOptions |= STOP_PERIODIC_SCAN; + + return this; + } + + /** + * Shorthand for calling both {@link BleManager#stopScan(BleManagerConfig.ScanFilter)} and {@link BleManager#stopPeriodicScan(BleManagerConfig.ScanFilter)}. + */ + public Please thenStopAllScanning() + { + thenStopScan(); + thenStopPeriodicScan(); + + return this; + } + + /** + * Return this from {@link ScanFilter#onEvent(ScanEvent)} to acknowledge the discovery. + * {@link BleManager.DiscoveryListener#onEvent(com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent)} + * will be called presently with a newly created {@link BleDevice}. + */ + public static Please acknowledge() + { + return new Please(true, null); + } + + /** + * Returns {@link #acknowledge()} if the given condition holds <code>true</code>, {@link #ignore()} otherwise. + */ + public static Please acknowledgeIf(boolean condition) + { + return condition ? acknowledge() : ignore(); + } + + /** + * Same as {@link #acknowledgeIf(boolean)} but lets you pass a {@link BleDeviceConfig} as well. + */ + public static Please acknowledgeIf(boolean condition, BleDeviceConfig config) + { + return condition ? acknowledge(config) : ignore(); + } + + /** + * Same as {@link #acknowledge()} but allows you to pass a {@link BleDeviceConfig} + * instance to the {@link BleDevice} that's about to be created. + */ + public static Please acknowledge(BleDeviceConfig config) + { + return new Please(true, config); + } + + /** + * Return this from {@link ScanFilter#onEvent(ScanEvent)} to say no to the discovery. + */ + public static Please ignore() + { + return new Please(false, null); + } + + /** + * Returns {@link #ignore()} if the given condition holds <code>true</code>, {@link #acknowledge()} otherwise. + */ + public static Please ignoreIf(final boolean condition) + { + return condition ? ignore() : acknowledge(); + } + } + + /** + * Return {@link Please#acknowledge()} to acknowledge the discovery, in which case {@link BleManager.DiscoveryListener#onEvent(BleManager.DiscoveryListener.DiscoveryEvent)} + * will be called shortly. Otherwise return {@link Please#ignore()} to ignore the discovered device. + * + * @return {@link Please#acknowledge()}, {@link Please#ignore()}, or {@link Please#acknowledge(BleDeviceConfig)} (or other static constructor methods that may be added in the future). + */ + Please onEvent(final ScanEvent e); + } + + /** + * Convenience implementation of {@link ScanFilter} which filters using + * a whitelist of known primary advertising {@link UUID}s passed in to the constructor. + */ + public static class DefaultScanFilter implements ScanFilter + { + private final ArrayList<UUID> m_whitelist; + + public DefaultScanFilter(Collection<UUID> whitelist) + { + m_whitelist = new ArrayList<UUID>(whitelist); + } + + public DefaultScanFilter(UUID whitelist) + { + m_whitelist = new ArrayList<UUID>(); + m_whitelist.add(whitelist); + } + + /** + * Acknowledges the discovery if there's an overlap between the given advertisedServices + * and the {@link Collection} passed into the constructor of {@link BleManagerConfig.DefaultScanFilter}. + */ + @Override public Please onEvent(final ScanEvent e) + { + return Please.acknowledgeIf( Utils.haveMatchingIds(e.advertisedServices(), m_whitelist) ); + } + } + + /** + * Default sorter class for sorting the list of devices in {@link BleManager}. This sorts by + * {@link BleDevice#getName_debug()}. + */ + public static class DeviceNameComparator implements Comparator<BleDevice> { + + @Override public int compare(BleDevice lhs, BleDevice rhs) + { + return lhs.getName_debug().compareTo(rhs.getName_debug()); + } + } + + /** + * Creates a {@link BleManagerConfig} with all default options set. See each member of this class + * for what the default options are set to. + */ + public BleManagerConfig() + { + this(false); + } + + /** + * Returns a new constructor that populates {@link #uuidNameMaps} with {@link Uuids} + * using {@link ReflectionUuidNameMap} to help with readable logging. + */ + public static BleManagerConfig newWithLogging() + { + return new BleManagerConfig(true); + } + + /** + * Convenience constructor that populates {@link #uuidNameMaps} with {@link Uuids} + * using {@link ReflectionUuidNameMap} if logging is enabled. + * + * @param loggingEnabled_in Sets {@link #loggingEnabled}. + */ + protected BleManagerConfig(boolean loggingEnabled_in) + { + this.loggingEnabled = loggingEnabled_in; + + if( this.loggingEnabled ) + { + uuidNameMaps = new ArrayList<UuidNameMap>(); + uuidNameMaps.add(new ReflectionUuidNameMap(Uuids.class)); + } + } + + @Override protected BleManagerConfig clone() + { + return (BleManagerConfig) super.clone(); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleManagerState.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleManagerState.java new file mode 100644 index 0000000000000000000000000000000000000000..4f5334917845a766fe285ef1e8c7619d7e9a5f99 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleManagerState.java @@ -0,0 +1,173 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothAdapter; + +import com.idevicesinc.sweetblue.annotations.UnitTest; +import com.idevicesinc.sweetblue.utils.BitwiseEnum; +import com.idevicesinc.sweetblue.utils.Interval; +import com.idevicesinc.sweetblue.utils.State; +import com.idevicesinc.sweetblue.utils.Utils_Byte; + +/** + * An enumeration of the various states that a {@link BleManager} can be in. + * The manager can be in multiple states simultaneously. + * + * @see BleManager.StateListener + * @see BleManager.NativeStateListener + * @see BleManager#is(BleManagerState) + * @see BleManager#getStateMask() + */ +public enum BleManagerState implements State +{ + /** + * Analogous to {@link BluetoothAdapter#STATE_OFF}. + */ + OFF (BluetoothAdapter.STATE_OFF), + + /** + * Analogous to {@link BluetoothAdapter#STATE_TURNING_ON}. + */ + TURNING_ON (BluetoothAdapter.STATE_TURNING_ON), + + /** + * Analogous to {@link BluetoothAdapter#STATE_ON}. + */ + ON (BluetoothAdapter.STATE_ON), + + /** + * Analogous to {@link BluetoothAdapter#STATE_TURNING_OFF}. + */ + TURNING_OFF (BluetoothAdapter.STATE_TURNING_OFF), + + /** + * This is the state that {@link BleManager} is in after calling {@link BleManager#startScan()} or related overloads. The {@link BleManager} + * will only be in this state for a very short period before moving to {@link #SCANNING}. + * + * @see BleManager#startScan() + */ + STARTING_SCAN, + + /** + * This is the state that {@link BleManager} is in when scanning actually starts. + * + */ + SCANNING, + + /** + * This is the state that {@link BleManager} is in after calling {@link BleManager#reset()}. + */ + RESETTING; + + private final int m_nativeCode; + + static BleManagerState[] VALUES() + { + s_values = s_values != null ? s_values : values(); + + return s_values; + } + private static BleManagerState[] s_values = null; + + /** + * Full bitwise mask made by ORing all {@link BleManagerState} instances together. + */ + public static final int FULL_MASK = Utils_Byte.toBits(VALUES()); + + private BleManagerState() + { + m_nativeCode = 0; + } + + private BleManagerState(int nativeCode) + { + m_nativeCode = nativeCode; + } + + private BleScanMode m_mode; + private BleScanPower m_power; + + + @UnitTest + BleManagerState setScanMode(BleScanMode mode) + { + m_mode = mode; + return this; + } + + @UnitTest + BleManagerState setPower(BleScanPower power) + { + m_power = power; + return this; + } + + @UnitTest + BleScanMode getScanMode() + { + return m_mode; + } + + @UnitTest + BleScanPower getScanPower() + { + return m_power; + } + + /** + * Returns the analogous native code, if applicable. For example {@link BluetoothAdapter#STATE_OFF}, + * {@link BluetoothAdapter#STATE_ON}, etc. {@link #RESETTING} and {@link #SCANNING} do not have a native + * code equivalent and will return 0. + */ + public int getNativeCode() + { + return m_nativeCode; + } + + static BleManagerState get(int nativeCode) + { + for( int i = 0; i < VALUES().length; i++ ) + { + if( VALUES()[i].getNativeCode() == nativeCode ) + { + return VALUES()[i]; + } + } + + return null; + } + + @Override public int bit() + { + return 0x1 << ordinal(); + } + + @Override public boolean overlaps(int mask) + { + return (bit() & mask) != 0x0; + } + + @Override public boolean didEnter(int oldStateBits, int newStateBits) + { + return !this.overlaps(oldStateBits) && this.overlaps(newStateBits); + } + + @Override public boolean didExit(int oldStateBits, int newStateBits) + { + return this.overlaps(oldStateBits) && !this.overlaps(newStateBits); + } + + @Override public int or(BitwiseEnum state) + { + return this.bit() | state.bit(); + } + + @Override public int or(int bits) + { + return this.bit() | bits; + } + + @Override public boolean isNull() + { + return false; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleNode.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleNode.java new file mode 100644 index 0000000000000000000000000000000000000000..464469680c19df822dddf9c8aec2d862449b505c --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleNode.java @@ -0,0 +1,1026 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCallback; +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattDescriptor; +import android.bluetooth.BluetoothGattServer; +import android.bluetooth.BluetoothGattService; +import android.content.Context; +import android.database.Cursor; + +import com.idevicesinc.sweetblue.annotations.Immutable; +import com.idevicesinc.sweetblue.annotations.Nullable; +import com.idevicesinc.sweetblue.utils.EmptyCursor; +import com.idevicesinc.sweetblue.utils.EpochTime; +import com.idevicesinc.sweetblue.utils.EpochTimeRange; +import com.idevicesinc.sweetblue.utils.Event; +import com.idevicesinc.sweetblue.utils.ForEach_Breakable; +import com.idevicesinc.sweetblue.utils.ForEach_Void; +import com.idevicesinc.sweetblue.utils.FutureData; +import com.idevicesinc.sweetblue.utils.HistoricalData; +import com.idevicesinc.sweetblue.utils.HistoricalDataColumn; +import com.idevicesinc.sweetblue.utils.HistoricalDataQuery; +import com.idevicesinc.sweetblue.utils.Interval; +import com.idevicesinc.sweetblue.utils.PresentData; +import com.idevicesinc.sweetblue.utils.UsesCustomNull; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Utils_String; +import com.idevicesinc.sweetblue.utils.Uuids; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.UUID; + +/** + * Abstract base class for {@link BleDevice} and {@link BleServer}, mostly just to statically tie their APIs together + * wherever possible. That is, not much actual shared implementation exists in this class as of this writing. + */ +public abstract class BleNode implements UsesCustomNull +{ + /** + * Base interface for {@link BleDevice.ConnectionFailListener} and {@link BleServer.ConnectionFailListener}. + */ + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface ConnectionFailListener + { + /** + * Describes usage of the <code>autoConnect</code> parameter for either {@link BluetoothDevice#connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)} + * or {@link BluetoothGattServer#connect(BluetoothDevice, boolean)}. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public static enum AutoConnectUsage + { + /** + * Used when we didn't start the connection process, i.e. it came out of nowhere. Rare case but can happen, for example after + * SweetBlue considers a connect timed out based on {@link BleNodeConfig#taskTimeoutRequestFilter} but then it somehow + * does come in (shouldn't happen but who knows). + */ + UNKNOWN, + + /** + * Usage is not applicable. + */ + NOT_APPLICABLE, + + /** + * <code>autoConnect</code> was used. + */ + USED, + + /** + * <code>autoConnect</code> was not used. + */ + NOT_USED; + } + + /** + * Abstract base class for structures passed to {@link BleServer.ConnectionFailListener#onEvent(BleServer.ConnectionFailListener.ConnectionFailEvent)} + * and {@link BleDevice.ConnectionFailListener#onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)} to provide more info about how/why a connection failed. + */ + @Immutable + public abstract static class ConnectionFailEvent extends Event implements UsesCustomNull + { + /** + * The failure count so far. This will start at 1 and keep incrementing for more failures. + */ + public int failureCountSoFar() { return m_failureCountSoFar; } + private final int m_failureCountSoFar; + + /** + * How long the last connection attempt took before failing. + */ + public Interval attemptTime_latest() { return m_latestAttemptTime; } + private final Interval m_latestAttemptTime; + + /** + * How long it's been since {@link BleDevice#connect()} (or overloads) were initially called. + */ + public Interval attemptTime_total() { return m_totalAttemptTime; } + private final Interval m_totalAttemptTime; + + /** + * The gattStatus returned, if applicable, from native callbacks like {@link BluetoothGattCallback#onConnectionStateChange(BluetoothGatt, int, int)} + * or {@link BluetoothGattCallback#onServicesDiscovered(BluetoothGatt, int)}. + * If not applicable, for example if {@link BleDevice.ConnectionFailListener.ConnectionFailEvent#status()} is {@link BleDevice.ConnectionFailListener.Status#EXPLICIT_DISCONNECT}, + * then this is set to {@link BleStatuses#GATT_STATUS_NOT_APPLICABLE}. + * <br><br> + * See {@link BleDevice.ReadWriteListener.ReadWriteEvent#gattStatus()} for more information about gatt status codes in general. + * + * @see BleDevice.ReadWriteListener.ReadWriteEvent#gattStatus() + */ + public int gattStatus() { return m_gattStatus; } + private final int m_gattStatus; + + /** + * Whether <code>autoConnect=true</code> was passed to {@link BluetoothDevice#connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)}. + * See more discussion at {@link BleDeviceConfig#alwaysUseAutoConnect}. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public AutoConnectUsage autoConnectUsage() { return m_autoConnectUsage; } + private final AutoConnectUsage m_autoConnectUsage; + + ConnectionFailEvent(int failureCountSoFar, Interval latestAttemptTime, Interval totalAttemptTime, int gattStatus, AutoConnectUsage autoConnectUsage) + { + this.m_failureCountSoFar = failureCountSoFar; + this.m_latestAttemptTime = latestAttemptTime; + this.m_totalAttemptTime = totalAttemptTime; + this.m_gattStatus = gattStatus; + this.m_autoConnectUsage = autoConnectUsage; + } + } + + /** + * Return value for {@link BleDevice.ConnectionFailListener#onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)} + * and {@link BleServer.ConnectionFailListener#onEvent(BleServer.ConnectionFailListener.ConnectionFailEvent)}. + * Generally you will only return {@link #retry()} or {@link #doNotRetry()}, but there are more advanced options as well. + */ + @Immutable + public static class Please + { + /*package*/ static final int PE_Please_NULL = -1; + /*package*/ static final int PE_Please_RETRY = 0; + /*package*/ static final int PE_Please_RETRY_WITH_AUTOCONNECT_TRUE = 1; + /*package*/ static final int PE_Please_RETRY_WITH_AUTOCONNECT_FALSE = 2; + /*package*/ static final int PE_Please_DO_NOT_RETRY = 3; + + /*package*/ static final boolean isRetry(final int please__PE_Please) + { + return please__PE_Please != PE_Please_DO_NOT_RETRY && please__PE_Please != PE_Please_NULL; + } + + private final int m_please__PE_Please; + + private Please(final int please__PE_Please) + { + m_please__PE_Please = please__PE_Please; + } + + /*package*/ int/*__PE_Please*/ please() + { + return m_please__PE_Please; + } + + /** + * Return this to retry the connection, continuing the connection fail retry loop. <code>autoConnect</code> passed to + * {@link BluetoothDevice#connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)} + * will be false or true based on what has worked in the past, or on {@link BleDeviceConfig#alwaysUseAutoConnect}. + */ + public static Please retry() + { + return new Please(PE_Please_RETRY); + } + + /** + * Returns {@link #retry()} if the given condition holds <code>true</code>, {@link #doNotRetry()} otherwise. + */ + public static Please retryIf(boolean condition) + { + return condition ? retry() : doNotRetry(); + } + + /** + * Return this to stop the connection fail retry loop. + */ + public static Please doNotRetry() + { + return new Please(PE_Please_DO_NOT_RETRY); + } + + /** + * Returns {@link #doNotRetry()} if the given condition holds <code>true</code>, {@link #retry()} otherwise. + */ + public static Please doNotRetryIf(boolean condition) + { + return condition ? doNotRetry() : retry(); + } + + /** + * Same as {@link #retry()}, but <code>autoConnect=true</code> will be passed to + * {@link BluetoothDevice#connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)}. + * See more discussion at {@link BleDeviceConfig#alwaysUseAutoConnect}. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public static Please retryWithAutoConnectTrue() + { + return new Please(PE_Please_RETRY_WITH_AUTOCONNECT_TRUE); + } + + /** + * Opposite of{@link #retryWithAutoConnectTrue()}. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public static Please retryWithAutoConnectFalse() + { + return new Please(PE_Please_RETRY_WITH_AUTOCONNECT_FALSE); + } + + /** + * Returns <code>true</code> for everything except {@link #doNotRetry()}. + */ + public boolean isRetry() + { + return isRetry(m_please__PE_Please); + } + } + } + + /** + * A callback that is used by various overloads of {@link BleDevice#loadHistoricalData()} that accept instances hereof. + * You can also set default listeners on {@link BleDevice#setListener_HistoricalDataLoad(BleNode.HistoricalDataLoadListener)} + * and {@link BleManager#setListener_HistoricalDataLoad(BleNode.HistoricalDataLoadListener)}. + */ + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface HistoricalDataLoadListener + { + /** + * Enumerates the status codes for operations kicked off from {@link BleDevice#loadHistoricalData()} (or overloads). + */ + public static enum Status implements UsesCustomNull + { + /** + * Fulfills soft contract of {@link UsesCustomNull}. + */ + NULL, + + /** + * Historical data is fully loaded to memory and ready to access synchronously (without blocking current thread) + * through {@link BleDevice#getHistoricalData_iterator(UUID)} (or overloads). + */ + LOADED, + + /** + * {@link BleDevice#loadHistoricalData()} (or overloads) was called but the data was already loaded to memory. + */ + ALREADY_LOADED, + + /** + * {@link BleDevice#loadHistoricalData()} (or overloads) was called but there was no data available to load to memory. + */ + NOTHING_TO_LOAD, + + /** + * {@link BleDevice#loadHistoricalData()} (or overloads) was called and the operation was successfully started - + * expect another {@link HistoricalDataLoadEvent} with {@link HistoricalDataLoadEvent#status()} being {@link #LOADED} shortly. + */ + STARTED_LOADING, + + /** + * Same idea as {@link #STARTED_LOADING}, not an error status, but letting you know that the load was already in progress + * when {@link BleDevice#loadHistoricalData()} (or overloads) was called a second time. This doesn't + * affect the actual loading process at all, and {@link #LOADED} will eventually be returned for both callbacks. + */ + ALREADY_LOADING; + + /** + * Returns true if <code>this==</code> {@link #NULL}. + */ + @Override public boolean isNull() + { + return this == NULL; + } + } + + /** + * Event struct passed to {@link HistoricalDataLoadListener#onEvent(HistoricalDataLoadEvent)} that provides + * further information about the status of a historical data load to memory using {@link BleDevice#loadHistoricalData()} + * (or overloads). + */ + @com.idevicesinc.sweetblue.annotations.Immutable + public static class HistoricalDataLoadEvent extends Event + { + /** + * The mac address that the data is being queried for. + */ + public String macAddress() { return m_macAddress; } + private final String m_macAddress; + + /** + * The {@link UUID} that the data is being loaded for. + */ + public UUID uuid() { return m_uuid; } + private final UUID m_uuid; + + /** + * The resulting time range spanning all of the data loaded to memory, or {@link EpochTimeRange#NULL} if not applicable. + */ + public EpochTimeRange range() { return m_range; } + private final EpochTimeRange m_range; + + /** + * The general status of the load operation. + */ + public Status status() { return m_status; } + private final Status m_status; + + private final BleNode m_endpoint; + + HistoricalDataLoadEvent(final BleNode endpoint, final String macAddress, final UUID uuid, final EpochTimeRange range, final Status status) + { + m_endpoint = endpoint; + m_macAddress = macAddress; + m_uuid = uuid; + m_range = range; + m_status = status; + } + + /** + * Returns <code>true</code> if {@link #status()} is either {@link HistoricalDataLoadListener.Status#LOADED} or + * {@link HistoricalDataLoadListener.Status#ALREADY_LOADED}. + */ + public boolean wasSuccess() + { + return status() == Status.LOADED || status() == Status.ALREADY_LOADED; + } + + @Override public String toString() + { + return Utils_String.toString + ( + this.getClass(), + "macAddress", macAddress(), + "uuid", m_endpoint.getManager().getLogger().uuidName(uuid()), + "status", status() + ); + } + } + + /** + * Called when the historical data for a given characteristic {@link UUID} is done loading from disk. + */ + void onEvent(final HistoricalDataLoadEvent e); + } + + /** + * A callback that is used by {@link BleDevice#select()} to listen for when a database query is done processing. + */ + @com.idevicesinc.sweetblue.annotations.Alpha + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface HistoricalDataQueryListener + { + /** + * Enumerates the status codes for operations kicked off from {@link BleDevice#select()}. + */ + public static enum Status implements UsesCustomNull + { + /** + * Fulfills soft contract of {@link UsesCustomNull}. + */ + NULL, + + /** + * Tried to query historical data on {@link BleDevice#NULL} or {@link BleServer#NULL}. + */ + NULL_ENDPOINT, + + /** + * Query completed successfully - {@link HistoricalDataQueryEvent#cursor()} may be empty but there were no exceptions or anything. + */ + SUCCESS, + + /** + * There is no backing table for the given {@link UUID}. + */ + NO_TABLE, + + /** + * General failure - this feature is still in {@link com.idevicesinc.sweetblue.annotations.Alpha} so expect more detailed error statuses in the future. + */ + ERROR; + + /** + * Returns true if <code>this==</code> {@link #NULL}. + */ + @Override public boolean isNull() + { + return this == NULL; + } + } + + /** + * Event struct passed to {@link HistoricalDataQueryListener#onEvent(HistoricalDataQueryEvent)} that provides + * further information about the status of a historical data load to memory using {@link BleDevice#loadHistoricalData()} + * (or overloads). + */ + @com.idevicesinc.sweetblue.annotations.Immutable + public static class HistoricalDataQueryEvent extends Event + { + /** + * The {@link UUID} that the data is being queried for. + */ + public UUID uuid() { return m_uuid; } + private final UUID m_uuid; + + /** + * The general status of the query operation. + */ + public Status status() { return m_status; } + private final Status m_status; + + /** + * The resulting {@link Cursor} from the database query. This will never be null, just an empty cursor if anything goes wrong. + */ + public @Nullable(Nullable.Prevalence.NEVER) Cursor cursor() { return m_cursor; } + private final Cursor m_cursor; + + /** + * The raw query given to the database. + */ + public @Nullable(Nullable.Prevalence.NEVER) String rawQuery() { return m_rawQuery; } + private final String m_rawQuery; + + private final BleNode m_endpoint; + + public HistoricalDataQueryEvent(final BleNode endpoint, final UUID uuid, final Cursor cursor, final Status status, final String rawQuery) + { + m_endpoint = endpoint; + m_uuid = uuid; + m_cursor = cursor; + m_status = status; + m_rawQuery = rawQuery; + } + + /** + * Returns <code>true</code> if {@link #status()} is {@link HistoricalDataQueryListener.Status#SUCCESS}. + */ + public boolean wasSuccess() + { + return status() == Status.SUCCESS; + } + + @Override public String toString() + { + return Utils_String.toString + ( + this.getClass(), + "uuid", m_endpoint.getManager().getLogger().uuidName(uuid()), + "status", status() + ); + } + } + + /** + * Called when the historical data for a given characteristic {@link UUID} is done querying. + */ + void onEvent(final HistoricalDataQueryEvent e); + } + + //--- DRK > Some reusable empty-array-type instances so we don't have to create them from scratch over and over on demand. + protected static final UUID[] EMPTY_UUID_ARRAY = new UUID[0]; + protected static final ArrayList<UUID> EMPTY_LIST = new ArrayList<UUID>(); + + /*package*/ static final byte[] EMPTY_BYTE_ARRAY = new byte[0]; + /*package*/ static final FutureData EMPTY_FUTURE_DATA = new PresentData(EMPTY_BYTE_ARRAY); + + /** + * Field for app to associate any data it wants with instances of this class + * instead of having to subclass or manage associative hash maps or something. + * The library does not touch or interact with this data in any way. + * + * @see BleManager#appData + * @see BleServer#appData + */ + public Object appData; + + private final BleManager m_manager; + + //--- DRK > Can't be final cause can't reference subclass 'this' while calling super() constructor. + private final PA_ServiceManager m_serviceMngr; + + protected BleNode(final BleManager manager) + { + m_manager = manager; + m_serviceMngr = newServiceManager(); + } + + protected abstract PA_ServiceManager newServiceManager(); + + protected <T extends PA_ServiceManager> T getServiceManager() + { + return (T) m_serviceMngr; + } + + /** + * Overload of {@link #getNativeDescriptor(UUID, UUID, UUID)} that will return the first descriptor we find + * matching the given {@link UUID}. + */ + public @Nullable(Nullable.Prevalence.NORMAL) BluetoothGattDescriptor getNativeDescriptor(final UUID descUuid) + { + return getNativeDescriptor(null, null, descUuid); + } + + /** + * Overload of {@link #getNativeDescriptor(UUID, UUID, UUID)} that will return the first descriptor we find + * inside the given characteristic matching the given {@link UUID}. + */ + public @Nullable(Nullable.Prevalence.NORMAL) BluetoothGattDescriptor getNativeDescriptor_inChar(final UUID charUuid, final UUID descUuid) + { + return getNativeDescriptor(null, charUuid, descUuid); + } + + /** + * Overload of {@link #getNativeDescriptor(UUID, UUID, UUID)} that will return the first descriptor we find + * inside the given service matching the given {@link UUID}. + */ + public @Nullable(Nullable.Prevalence.NORMAL) BluetoothGattDescriptor getNativeDescriptor_inService(final UUID serviceUuid, final UUID descUuid) + { + return getNativeDescriptor(serviceUuid, null, descUuid); + } + + /** + * Returns the native descriptor for the given UUID in case you need lower-level access. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public @Nullable(Nullable.Prevalence.NORMAL) BluetoothGattDescriptor getNativeDescriptor(final UUID serviceUuid, final UUID charUuid, final UUID descUuid) + { + enforceMainThread(); + + return m_serviceMngr.getDescriptor(serviceUuid, charUuid, descUuid); + } + + /** + * Returns the native characteristic for the given UUID in case you need lower-level access. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public @Nullable(Nullable.Prevalence.NORMAL) BluetoothGattCharacteristic getNativeCharacteristic(final UUID charUuid) + { + return getNativeCharacteristic(null, charUuid); + } + + /** + * Overload of {@link #getNativeCharacteristic(UUID)} for when you have characteristics with identical uuids under different services. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public @Nullable(Nullable.Prevalence.NORMAL) BluetoothGattCharacteristic getNativeCharacteristic(final UUID serviceUuid, final UUID charUuid) + { + enforceMainThread(); + + return m_serviceMngr.getCharacteristic(serviceUuid, charUuid); + } + + /** + * Returns the native service for the given UUID in case you need lower-level access. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public @Nullable(Nullable.Prevalence.NORMAL) BluetoothGattService getNativeService(final UUID serviceUuid) + { + enforceMainThread(); + + return m_serviceMngr.getServiceDirectlyFromNativeNode(serviceUuid); + } + + /** + * Returns all {@link BluetoothGattService} instances. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public @Nullable(Nullable.Prevalence.NEVER) Iterator<BluetoothGattService> getNativeServices() + { + enforceMainThread(); + + return m_serviceMngr.getServices(); + } + + /** + * Convenience overload of {@link #getNativeServices()} that returns a {@link List}. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public @Nullable(Nullable.Prevalence.NEVER) List<BluetoothGattService> getNativeServices_List() + { + enforceMainThread(); + + return m_serviceMngr.getServices_List(); + } + + /** + * Overload of {@link #getNativeServices()} that uses a for each construct instead of returning an iterator. + */ + public void getNativeServices(final ForEach_Void<BluetoothGattService> forEach) + { + enforceMainThread(); + + m_serviceMngr.getServices(forEach); + } + + /** + * Overload of {@link #getNativeServices()} that uses a for each construct instead of returning an iterator. + */ + public void getNativeServices(final ForEach_Breakable<BluetoothGattService> forEach) + { + enforceMainThread(); + + m_serviceMngr.getServices(forEach); + } + + /** + * Overload of {@link #getNativeCharacteristics()} that uses a for each construct instead of returning an iterator. + */ + public void getNativeCharacteristics(final ForEach_Void<BluetoothGattCharacteristic> forEach) + { + enforceMainThread(); + + m_serviceMngr.getCharacteristics(null, forEach); + } + + /** + * Overload of {@link #getNativeCharacteristics()} that uses a for each construct instead of returning an iterator. + */ + public void getNativeCharacteristics(final ForEach_Breakable<BluetoothGattCharacteristic> forEach) + { + enforceMainThread(); + + m_serviceMngr.getCharacteristics(null, forEach); + } + + /** + * Overload of {@link #getNativeCharacteristics(UUID)} that uses a for each construct instead of returning an iterator. + */ + public void getNativeCharacteristics(final UUID serviceUuid, final ForEach_Void<BluetoothGattCharacteristic> forEach) + { + enforceMainThread(); + + m_serviceMngr.getCharacteristics(serviceUuid, forEach); + } + + /** + * Overload of {@link #getNativeCharacteristics(UUID)} that uses a for each construct instead of returning an iterator. + */ + public void getNativeCharacteristics(final UUID serviceUuid, final ForEach_Breakable<BluetoothGattCharacteristic> forEach) + { + enforceMainThread(); + + m_serviceMngr.getCharacteristics(serviceUuid, forEach); + } + + /** + * Returns all {@link BluetoothGattCharacteristic} instances. + */ + public @Nullable(Nullable.Prevalence.NEVER) Iterator<BluetoothGattCharacteristic> getNativeCharacteristics() + { + enforceMainThread(); + + return m_serviceMngr.getCharacteristics(null); + } + + /** + * Convenience overload of {@link #getNativeCharacteristics()} that returns a {@link List}. + */ + public @Nullable(Nullable.Prevalence.NEVER) List<BluetoothGattCharacteristic> getNativeCharacteristics_List() + { + enforceMainThread(); + + return m_serviceMngr.getCharacteristics_List(null); + } + + /** + * Same as {@link #getNativeCharacteristics()} but you can filter on the service {@link UUID}. + */ + public @Nullable(Nullable.Prevalence.NEVER) Iterator<BluetoothGattCharacteristic> getNativeCharacteristics(UUID serviceUuid) + { + enforceMainThread(); + + return m_serviceMngr.getCharacteristics(serviceUuid); + } + + /** + * Convenience overload of {@link #getNativeCharacteristics(UUID)} that returns a {@link List}. + */ + public @Nullable(Nullable.Prevalence.NEVER) List<BluetoothGattCharacteristic> getNativeCharacteristics_List(UUID serviceUuid) + { + enforceMainThread(); + + return m_serviceMngr.getCharacteristics_List(serviceUuid); + } + + /** + * Returns all descriptors on this node. + */ + public @Nullable(Nullable.Prevalence.NEVER) Iterator<BluetoothGattDescriptor> getNativeDescriptors() + { + enforceMainThread(); + + return m_serviceMngr.getDescriptors(null, null); + } + + /** + * Returns all descriptors on this node as a list. + */ + public @Nullable(Nullable.Prevalence.NEVER) List<BluetoothGattDescriptor> getNativeDescriptors_List() + { + enforceMainThread(); + + return m_serviceMngr.getDescriptors_List(null, null); + } + + /** + * Returns all descriptors on this node in the given service. + */ + public @Nullable(Nullable.Prevalence.NEVER) Iterator<BluetoothGattDescriptor> getNativeDescriptors_inService(final UUID serviceUuid) + { + enforceMainThread(); + + return m_serviceMngr.getDescriptors(serviceUuid, null); + } + + /** + * Returns all descriptors on this node in the given service as a list. + */ + public @Nullable(Nullable.Prevalence.NEVER) List<BluetoothGattDescriptor> getNativeDescriptors_inService_List(final UUID serviceUuid) + { + enforceMainThread(); + + return m_serviceMngr.getDescriptors_List(serviceUuid, null); + } + + /** + * Returns all descriptors on this node in the given characteristic. + */ + public @Nullable(Nullable.Prevalence.NEVER) Iterator<BluetoothGattDescriptor> getNativeDescriptors_inChar(final UUID charUuid) + { + enforceMainThread(); + + return m_serviceMngr.getDescriptors(null, charUuid); + } + + /** + * Returns all descriptors on this node in the given characteristic as a list. + */ + public @Nullable(Nullable.Prevalence.NEVER) List<BluetoothGattDescriptor> getNativeDescriptors_inChar_List(final UUID charUuid) + { + enforceMainThread(); + + return m_serviceMngr.getDescriptors_List(null, charUuid); + } + + /** + * Returns all descriptors on this node in the given characteristic. + */ + public @Nullable(Nullable.Prevalence.NEVER) Iterator<BluetoothGattDescriptor> getNativeDescriptors(final UUID serviceUuid, final UUID charUuid) + { + enforceMainThread(); + + return m_serviceMngr.getDescriptors(serviceUuid, charUuid); + } + + /** + * Returns all descriptors on this node in the given characteristic as a list. + */ + public @Nullable(Nullable.Prevalence.NEVER) List<BluetoothGattDescriptor> getNativeDescriptors_List(final UUID serviceUuid, final UUID charUuid) + { + enforceMainThread(); + + return m_serviceMngr.getDescriptors_List(serviceUuid, charUuid); + } + + /** + * Overload of {@link BleNode#getNativeDescriptors()} using a for each construct. + */ + public void getNativeDescriptors(final ForEach_Void<BluetoothGattDescriptor> forEach) + { + enforceMainThread(); + + m_serviceMngr.getDescriptors(null, null, forEach); + } + + /** + * Overload of {@link BleNode#getNativeDescriptors()} using a for each construct. + */ + public void getNativeDescriptors(final ForEach_Breakable<BluetoothGattDescriptor> forEach) + { + enforceMainThread(); + + m_serviceMngr.getDescriptors(null, null, forEach); + } + + /** + * Overload of {@link BleNode#getNativeDescriptors_inService(UUID)} using a for each construct. + */ + public void getNativeDescriptors_inService(final UUID serviceUuid, final ForEach_Void<BluetoothGattDescriptor> forEach) + { + enforceMainThread(); + + m_serviceMngr.getDescriptors(serviceUuid, null, forEach); + } + + /** + * Overload of {@link BleNode#getNativeDescriptors_inService(UUID)} using a for each construct. + */ + public void getNativeDescriptors_inService(final UUID serviceUuid, final ForEach_Breakable<BluetoothGattDescriptor> forEach) + { + enforceMainThread(); + + m_serviceMngr.getDescriptors(serviceUuid, null, forEach); + } + + /** + * Overload of {@link BleNode#getNativeDescriptors_inChar(UUID)} using a for each construct. + */ + public void getNativeDescriptors_inChar(final UUID charUuid, final ForEach_Void<BluetoothGattDescriptor> forEach) + { + enforceMainThread(); + + m_serviceMngr.getDescriptors(null, charUuid, forEach); + } + + /** + * Overload of {@link BleNode#getNativeDescriptors_inChar(UUID)} using a for each construct. + */ + public void getNativeDescriptors_inChar(final UUID charUuid, final ForEach_Breakable<BluetoothGattDescriptor> forEach) + { + enforceMainThread(); + + m_serviceMngr.getDescriptors(null, charUuid, forEach); + } + + /** + * Overload of {@link BleNode#getNativeDescriptors(UUID, UUID)} using a for each construct. + */ + public void getNativeDescriptors(final UUID serviceUuid, final UUID charUuid, final ForEach_Void<BluetoothGattDescriptor> forEach) + { + enforceMainThread(); + + m_serviceMngr.getDescriptors(serviceUuid, charUuid, forEach); + } + + /** + * Overload of {@link BleNode#getNativeDescriptors(UUID, UUID)} using a for each construct. + */ + public void getNativeDescriptors(final UUID serviceUuid, final UUID charUuid, final ForEach_Breakable<BluetoothGattDescriptor> forEach) + { + enforceMainThread(); + + m_serviceMngr.getDescriptors(serviceUuid, charUuid, forEach); + } + + /** + * Returns a new {@link com.idevicesinc.sweetblue.utils.HistoricalData} instance using + * {@link com.idevicesinc.sweetblue.BleDeviceConfig#historicalDataFactory} if available. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + public HistoricalData newHistoricalData(final byte[] data, final EpochTime epochTime) + { + final BleDeviceConfig.HistoricalDataFactory factory_device = conf_node().historicalDataFactory; + final BleDeviceConfig.HistoricalDataFactory factory_mngr = conf_mngr().historicalDataFactory; + final BleDeviceConfig.HistoricalDataFactory factory = factory_device != null ? factory_device : factory_mngr; + + if( factory != null ) + { + return factory.newHistoricalData(data, epochTime); + } + else + { + return new HistoricalData(data, epochTime); + } + } + + /** + * Returns this endpoint's manager. + */ + public BleManager getManager() + { + if (isNull()) + { + return BleManager.s_instance; + } + else + { + return m_manager; + } + } + + /** + * Convenience method that casts {@link #appData} for you. + */ + public <T> T appData() + { + return (T) appData; + } + + BleManagerConfig conf_mngr() + { + if (getManager() != null) + { + return getManager().m_config; + } + else + { + return BleManagerConfig.NULL; + } + } + + abstract BleNodeConfig conf_node(); + + P_TaskQueue queue() + { + return getManager().getTaskQueue(); + } + + P_Logger logger() + { + return getManager().getLogger(); + } + + /** + * Provides a means to perform a raw SQL query on the database storing the historical data for this node. Use {@link BleDevice#getHistoricalDataTableName(UUID)} + * to generate table names and {@link HistoricalDataColumn} to get column names. + */ + public @Nullable(Nullable.Prevalence.NEVER) HistoricalDataQueryListener.HistoricalDataQueryEvent queryHistoricalData(final String query) + { + if( this.isNull() ) + { + return new HistoricalDataQueryListener.HistoricalDataQueryEvent(this, Uuids.INVALID, new EmptyCursor(), HistoricalDataQueryListener.Status.NULL_ENDPOINT, query); + } + else + { + final Cursor cursor = this.getManager().m_historicalDatabase.query(query); + + return new BleDevice.HistoricalDataQueryListener.HistoricalDataQueryEvent(this, Uuids.INVALID, cursor, BleDevice.HistoricalDataQueryListener.Status.SUCCESS, query); + } + } + + /** + * Same as {@link #queryHistoricalData(String)} but performs the query on a background thread and returns the result back on the main thread + * through the provided {@link BleNode.HistoricalDataQueryListener}. + */ + public void queryHistoricalData(final String query, final HistoricalDataQueryListener listener) + { + if( this.isNull() ) + { + listener.onEvent(new HistoricalDataQueryListener.HistoricalDataQueryEvent(this, Uuids.INVALID, new EmptyCursor(), HistoricalDataQueryListener.Status.NULL_ENDPOINT, query)); + } + else + { + P_HistoricalDataManager.post(new Runnable() + { + @Override public void run() + { + final BleDevice.HistoricalDataQueryListener.HistoricalDataQueryEvent e = queryHistoricalData(query); + + getManager().getUpdateLoop().postIfNeeded(new Runnable() + { + @Override public void run() + { + listener.onEvent(e); + } + }); + } + }); + } + } + + /** + * Provides a way to perform a statically checked SQL query by chaining method calls. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @com.idevicesinc.sweetblue.annotations.Alpha + public @Nullable(Nullable.Prevalence.NEVER) HistoricalDataQuery.Part_Select select() + { + final HistoricalDataQuery.Part_Select select = HistoricalDataQuery.select(this, getManager().m_historicalDatabase); + + return select; + } + + /** + * Just some sugar for casting to subclasses. + */ + public <T extends BleNode> T cast() + { + return (T) this; + } + + /** + * Safer version of {@link #cast()} that will return {@link BleDevice#NULL} or {@link BleServer#NULL} + * if the cast cannot be made. + */ + public @Nullable(Nullable.Prevalence.NEVER) <T extends BleNode> T cast(final Class<T> type) + { + if( this instanceof BleDevice && type == BleServer.class ) + { + return (T) BleServer.NULL; + } + else if( this instanceof BleServer && type == BleDevice.class ) + { + return (T) BleDevice.NULL; + } + else + { + return cast(); + } + } + + void enforceMainThread() + { + final boolean allowAllThreads = BleDeviceConfig.bool(conf_node().allowCallsFromAllThreads, conf_mngr().allowCallsFromAllThreads); + + if( false == allowAllThreads ) + { + Utils.enforceMainThread(BleNodeConfig.WRONG_THREAD_MESSAGE); + } + } + + /** + * Returns the MAC address of the remote {@link BleDevice} or local {@link BleServer}. + */ + public abstract @Nullable(Nullable.Prevalence.NEVER) String getMacAddress(); +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleNodeConfig.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleNodeConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..c1c421e371b6f2036473f0527f4b6798ef08c73e --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleNodeConfig.java @@ -0,0 +1,1231 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothDevice; +import android.content.Context; + +import com.idevicesinc.sweetblue.annotations.Immutable; +import com.idevicesinc.sweetblue.annotations.Nullable; +import com.idevicesinc.sweetblue.utils.EpochTime; +import com.idevicesinc.sweetblue.utils.Event; +import com.idevicesinc.sweetblue.utils.HistoricalData; +import com.idevicesinc.sweetblue.utils.Interval; +import com.idevicesinc.sweetblue.utils.UsesCustomNull; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Utils_Reflection; +import com.idevicesinc.sweetblue.utils.Utils_String; +import com.idevicesinc.sweetblue.utils.Uuids; +import com.idevicesinc.sweetblue.utils.WrongThreadError; + +import java.util.UUID; + +/** + * Provides a number of options to (optionally) pass to {@link BleServer#setConfig(BleNodeConfig)}. + * This class is also a super class of {@link BleManagerConfig}, which you can pass + * to {@link BleManager#get(Context, BleManagerConfig)} or {@link BleManager#setConfig(BleManagerConfig)} to set default base options for all servers at once. + * For all options in this class, you may set the value to <code>null</code> when passed to {@link BleServer#setConfig(BleNodeConfig)} + * and the value will then be inherited from the {@link BleManagerConfig} passed to {@link BleManager#get(Context, BleManagerConfig)}. + * Otherwise, if the value is not <code>null</code> it will override any option in the {@link BleManagerConfig}. + * If an option is ultimately <code>null</code> (<code>null</code> when passed to {@link BleServer#setConfig(BleNodeConfig)} + * *and* {@link BleManager#get(Context, BleManagerConfig)}) then it is interpreted as <code>false</code> or {@link Interval#DISABLED}. + * <br><br> + * TIP: You can use {@link Interval#DISABLED} instead of <code>null</code> to disable any time-based options, for code readability's sake. + * <br><br> + * TIP: You can use {@link #newNulled()} (or {@link #nullOut()}) then only set the few options you want for {@link BleServer#setConfig(BleNodeConfig)}. + */ +public class BleNodeConfig +{ + /** + * The default MTU size in bytes for gatt reads/writes/notifies/etc. + */ + public static final int DEFAULT_MTU_SIZE = 23; + + /** + * The overhead in bytes that is subtracted from the total mtu size (e.g. {@link #DEFAULT_MTU_SIZE}) to + * give you the effective payload size that your application can send or receive. For Android this + * payload size is almost always 23-3=20 bytes. + */ + public static final int GATT_MTU_OVERHEAD = 3; + + /** + * Constant for an invalid or unknown transmission power. + * + * @see BleDevice#getTxPower() + * @see BleDeviceConfig#defaultTxPower + */ + public static final int INVALID_TX_POWER = Integer.MIN_VALUE; + + /** + * Default is <code>false</code> - see the <code>boolean autoConnect</code> parameters of + * {@link BluetoothDevice#connectGatt(Context, boolean, android.bluetooth.BluetoothGattCallback)} + * and {@link android.bluetooth.BluetoothGattServer#connect(BluetoothDevice, boolean)}. + * <br><br> + * This parameter is one of Android's deepest mysteries. By default we keep it false, but it has been observed that a + * connection can fail or time out, but then if you try again with autoConnect set to true it works! One would think, + * why not always set it to true? Well, while true is anecdotally more stable, it also (anecdotally) makes for longer + * connection times, which becomes a UX problem. Would you rather have a 5-10 second connection process that is successful + * with 99% of devices, or a 1-2 second connection process that is successful with 95% of devices? By default we've chosen the latter. + * <br><br> + * HOWEVER, it's important to note that you can have fine-grained control over its usage through the {@link BleNode.ConnectionFailListener.Please} + * returned from {@link BleDevice.ConnectionFailListener#onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)} (or the equivalent + * structures that are inner structures of {@link BleServer}). + * <br><br> + * So really this option mainly exists for those situations where you KNOW that you have a device or server that only works + * with autoConnect==true and you want connection time to be faster (i.e. you don't want to wait for that first + * failed connection for the library to internally start using autoConnect==true). + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Nullable.Prevalence.NORMAL) + public Boolean alwaysUseAutoConnect = false; + + /** + * Default is <code>false</code> - SweetBlue, for the sake of performance, stability, and simplicity, requires all back and forth to take place on the main thread, + * with {@link WrongThreadError} thrown if not. + * Versions less than v2 did not enforce this, but feedback indicated that the threading model was unclear and some people would kick + * off SweetBlue operations on alternate threads, which could definitely lead to problems. This remains as an option to help older code bases transitioning to >= v2 + */ + @Nullable(Nullable.Prevalence.RARE) + public Boolean allowCallsFromAllThreads = false; + + /** + * Default is <code>true</code> - controls whether the library is allowed to optimize fast disconnect/reconnect cycles + * by actually not disconnecting in the native stack at all. For example, if this option is <code>true</code> and your + * {@link BleDevice} is {@link BleDeviceState#CONNECTED}, calling {@link BleDevice#disconnect()} then {@link BleDevice#connect()} + * again won't result in a native disconnect/reconnect - your actual physical ble device firmware won't know that a disconnect was requested. + */ + @Nullable(Nullable.Prevalence.NORMAL) + public Boolean disconnectIsCancellable = true; + + /** + * Default is an instance of {@link DefaultTaskTimeoutRequestFilter} - set an implementation here to + * have fine control over how long individual {@link BleTask} instances can take before they + * are considered "timed out" and failed. + * <br><br> + * NOTE: Setting this to <code>null</code> will disable timeouts for all {@link BleTask} instances, + * which would probably be very dangerous to do - a task could just sit there spinning forever. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Nullable.Prevalence.RARE) + public TaskTimeoutRequestFilter taskTimeoutRequestFilter = new DefaultTaskTimeoutRequestFilter(); + + /** + * Default is an instance of {@link BleNodeConfig.DefaultHistoricalDataLogFilter} - + * set an implementation here to control how/if data is logged. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Nullable.Prevalence.NORMAL) + public HistoricalDataLogFilter historicalDataLogFilter = new DefaultHistoricalDataLogFilter(); + + /** + * Implement this to override the default behavior, which is simply to return an instance created with + * the constructor {@link HistoricalData#HistoricalData(byte[], com.idevicesinc.sweetblue.utils.EpochTime)}. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @Nullable(Nullable.Prevalence.NORMAL) + public HistoricalDataFactory historicalDataFactory = new HistoricalDataFactory() + { + @Override public HistoricalData newHistoricalData(final byte[] data, final EpochTime epochTime) + { + return new HistoricalData(data, epochTime); + } + }; + + /** + * Default is an instance of {@link DefaultReconnectFilter} using the timings that are <code>public static final</code> members thereof - set your own implementation here to + * have fine-grain control over reconnect behavior while a device is {@link BleDeviceState#RECONNECTING_LONG_TERM} or {@link BleDeviceState#RECONNECTING_SHORT_TERM}. + * This is basically how often and how long the library attempts to reconnect to a device that for example may have gone out of range. Set this variable to + * <code>null</code> if reconnect behavior isn't desired. If not <code>null</code>, your app may find + * {@link BleManagerConfig#manageCpuWakeLock} useful in order to force the app/phone to stay awake while attempting a reconnect. + * + * @see BleManagerConfig#manageCpuWakeLock + * @see ReconnectFilter + * @see DefaultReconnectFilter + */ + @Nullable(Nullable.Prevalence.NORMAL) + public ReconnectFilter reconnectFilter = new DefaultReconnectFilter(); + + /** + * Provide an instance of this class to {@link com.idevicesinc.sweetblue.BleDeviceConfig#historicalDataLogFilter} to control + * how/if historical data from BLE operations is logged. + */ + @com.idevicesinc.sweetblue.annotations.Advanced + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface HistoricalDataLogFilter + { + /** + * Special value you can use in place of Java's built-in <code>null</code>, just for code readability. + */ + public static final HistoricalDataLogFilter DISABLED = null; + + /** + * Signifies where the data came from, usually from a BLE read or notification. + */ + public static enum Source implements UsesCustomNull + { + /** + * Satisfies soft contract of {@link com.idevicesinc.sweetblue.utils.UsesCustomNull} + */ + NULL, + + /** + * Originates from {@link BleDevice#read(java.util.UUID, BleDevice.ReadWriteListener)}. + * + * @see com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Type#READ + */ + READ, + + /** + * Originates from {@link BleDevice#startPoll(java.util.UUID, com.idevicesinc.sweetblue.utils.Interval, BleDevice.ReadWriteListener)}. + * + * @see com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Type#POLL + */ + POLL, + + /** + * Originates from {@link BleDevice#enableNotify(java.util.UUID, com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)}. + * + * @see com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Type#NOTIFICATION + */ + NOTIFICATION, + + /** + * Originates from {@link com.idevicesinc.sweetblue.BleDevice#enableNotify(java.util.UUID, com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)}. + * + * @see com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Type#INDICATION + */ + INDICATION, + + /** + * Originates from {@link com.idevicesinc.sweetblue.BleDevice#enableNotify(java.util.UUID, Interval, com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)}, + * where a force-read timeout is invoked, or from {@link BleDevice#startChangeTrackingPoll(java.util.UUID, com.idevicesinc.sweetblue.utils.Interval, BleDevice.ReadWriteListener)}. + * + * @see com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Type#PSUEDO_NOTIFICATION + */ + PSUEDO_NOTIFICATION, + + /** + * Originates from manual addition of data through {@link BleDevice#addHistoricalData(UUID, byte[], EpochTime)} + * or various overloads that add one piece of historical data. + */ + SINGLE_MANUAL_ADDITION, + + /** + * Originates from manual addition of data through {@link BleDevice#addHistoricalData(UUID, java.util.Iterator)} + * or various overloads that add multiple pieces of data all at once. + */ + MULTIPLE_MANUAL_ADDITIONS; + + /** + * Returns <code>true</code> if <code>this</code> == {@link #NULL}. + */ + @Override public boolean isNull() + { + return this == NULL; + } + } + + /** + * Event passed to {@link BleNodeConfig.HistoricalDataLogFilter#onEvent(HistoricalDataLogEvent)} that provides + * information you can use to determine whether or not {@link HistoricalDataLogEvent#data()} should be logged. + */ + public static class HistoricalDataLogEvent extends Event + { + /** + * The node that is currently trying to reconnect. + */ + public BleNode node(){ return m_node; } + private final BleNode m_node; + + /** + * Tries to cast {@link #node()} to a {@link BleDevice}, otherwise returns {@link BleDevice#NULL}. + */ + public BleDevice device(){ return node().cast(BleDevice.class); } + + /** + * Tries to cast {@link #node()} to a {@link BleServer}, otherwise returns {@link BleServer#NULL}. + */ + public BleServer server(){ return node().cast(BleServer.class); } + + /** + * The device or server client in question. + */ + public String macAddress() { return m_macAddress; } + private final String m_macAddress; + + /** + * The data to be written. + */ + public byte[] data() { return m_data; } + private final byte[] m_data; + + /** + * Timestamp of when the data was obtained. + */ + public EpochTime epochTime() { return m_epochTime; } + private final EpochTime m_epochTime; + + /** + * The source of the data - read, notify, etc. + */ + public Source source() { return m_source; } + private final Source m_source; + + /** + * The characteristic {@link java.util.UUID} associated with {@link #data()}. + */ + public UUID charUuid() { return m_charUuid; } + private final UUID m_charUuid; + + HistoricalDataLogEvent(final BleNode node, final String macAddress, final UUID charUuid, final byte[] data, final EpochTime epochTime, final Source source) + { + m_node = node; + m_macAddress = macAddress; + m_charUuid = charUuid; + m_data = data; + m_epochTime = epochTime; + m_source = source; + } + + /** + * Returns true if this event is associated with the given uuid. + */ + public boolean isFor(final UUID uuid) + { + return uuid.equals(charUuid()); + } + + /** + * Returns true if this event is associated with any of the given uuids. + */ + public boolean isFor(final UUID[] uuids) + { + return Utils.contains(uuids, charUuid()); + } + + @Override public String toString() + { + return Utils_String.toString + ( + this.getClass(), + "macAddress", macAddress(), + "charUuid", m_node.getManager().getLogger().charName(charUuid()), + "source", source(), + "data", data() + ); + } + + public static boolean includesMemory(final int enum_PersistenceLevel) + { + return enum_PersistenceLevel == PersistenceLevel_MEMORY || enum_PersistenceLevel == PersistenceLevel_BOTH; + } + + public static boolean includesDisk(final int enum_PersistenceLevel) + { + return enum_PersistenceLevel == PersistenceLevel_DISK || enum_PersistenceLevel == PersistenceLevel_BOTH; + } + } + + /*package*/ static int PersistenceLevel_NONE = 0; + /*package*/ static int PersistenceLevel_MEMORY = 1; + /*package*/ static int PersistenceLevel_DISK = 2; + /*package*/ static int PersistenceLevel_BOTH = 3; + + /** + * Special value returned from {@link BleNodeConfig.HistoricalDataLogFilter#onEvent(HistoricalDataLogEvent)} + * that determines if/how {@link HistoricalDataLogFilter.HistoricalDataLogEvent#data()} will get logged. + */ + public static class Please + { + final int m_persistenceLevel; + + private byte[] m_amendedData = null; + private EpochTime m_amendedEpochTime = null; + private Long m_logLimit = null; + + private Please(final int persistenceLevel) + { + m_persistenceLevel = persistenceLevel; + } + + /** + * Returns the limit provided through {@link #andLimitLogTo(long)}, or {@link Long#MAX_VALUE} if not applicable. + */ + public long getLimit() + { + return m_logLimit != null ? m_logLimit : Long.MAX_VALUE; + } + + /** + * Returns the amended data provided through {@link #andAmendData(byte[])}, or <code>null</code> if not applicable. + */ + @Nullable(Nullable.Prevalence.NORMAL) public byte[] getAmendedData() + { + return m_amendedData; + } + + /** + * Returns the amended epoch time provided through {@link #andAmendEpochTime(EpochTime)}, or {@link com.idevicesinc.sweetblue.utils.EpochTime#NULL} if not applicable. + */ + @Nullable(Nullable.Prevalence.NEVER) public EpochTime getAmendedEpochTime() + { + return m_amendedEpochTime != null ? m_amendedEpochTime : EpochTime.NULL; + } + + /** + * Last chance to amend or replace {@link HistoricalDataLogEvent#data()} before it's written to the log. + * + * @return <code>this</code> so you can chain calls together. + */ + public Please andAmendData(final byte[] data) + { + m_amendedData = data; + + return this; + } + + /** + * Last chance to amend or replace {@link HistoricalDataLogEvent#epochTime()} before it's written to the log. + * @return <code>this</code> so you can chain calls together. + */ + public Please andAmendEpochTime(final EpochTime epochTime) + { + m_amendedEpochTime = epochTime; + + return this; + } + + /** + * Calling this will crop the log to the given limit <i>before></i> {@link HistoricalDataLogEvent#data()} is written. + * So if you call this with <code>0</code> {@link BleDevice#getHistoricalDataCount(java.util.UUID)} will return <code>1</code> + * after this. + * + * @return <code>this</code> so you can chain calls together. + */ + public Please andLimitLogTo(final long logLimit) + { + m_logLimit = logLimit; + + return this; + } + + /** + * Will log the data to disk only, currently through SQLite. Data is preserved across app sessions + * until (a) the user uninstalls the app, (b) the user clears the app's data, or (c) you call + * one of the {@link com.idevicesinc.sweetblue.BleDevice#clearHistoricalData()} overloads. + */ + public static Please logToDisk() + { + return new Please(PersistenceLevel_DISK); + } + + /** + * Will log the data to current app memory only. When the app is destroyed the data will be lost. + */ + public static Please logToMemory() + { + return new Please(PersistenceLevel_MEMORY); + } + + /** + * Will log the data to both memory and disk - combination of {@link #logToMemory()} and {@link #logToDisk()}. + */ + public static Please logToMemoryAndDisk() + { + return new Please(PersistenceLevel_BOTH); + } + + /** + * Will not log the data. + */ + public static Please doNotLog() + { + return new Please(PersistenceLevel_NONE); + } + } + + /** + * Implement this method to be notified of when the library requests whether historical data should be written to a log, + * and to respond with your preference of if/how this data should be written. + */ + Please onEvent(final HistoricalDataLogEvent e); + } + + /** + * Default implementation of {@link HistoricalDataLogFilter} set on {@link #historicalDataLogFilter} + * that logs the most recent data reading to memory only, flushing the previous one. + */ + public static class DefaultHistoricalDataLogFilter implements HistoricalDataLogFilter + { + private static final Please DEFAULT = Please.logToMemory().andLimitLogTo(1); + + @Override public Please onEvent(final HistoricalDataLogEvent e) + { + return DEFAULT; + } + } + + /** + * Provide an instance to {@link #historicalDataFactory} to return custom subclasses + * of {@link com.idevicesinc.sweetblue.utils.HistoricalData} if you would like. For example + * you might have a graphing library which requires a "Point" interface with methods <code>getX()</code> + * and <code>getY()</code>. You could then create a factory that returns subclasses of + * {@link com.idevicesinc.sweetblue.utils.HistoricalData} that implement this interface, so you don't + * need to duplicate the data and waste memory. + */ + public static interface HistoricalDataFactory + { + /** + * Return a new subclass of {@link HistoricalData} that for example implements a custom interface + * for another library that handles graphing or analytics. + */ + HistoricalData newHistoricalData(final byte[] data, final EpochTime epochTime); + } + + /** + * Provides a way to control timeout behavior for various {@link BleTask} instances. Assign an instance to {@link BleDeviceConfig#taskTimeoutRequestFilter}. + */ + @com.idevicesinc.sweetblue.annotations.Lambda + @com.idevicesinc.sweetblue.annotations.Advanced + public static interface TaskTimeoutRequestFilter + { + /** + * Event passed to {@link TaskTimeoutRequestFilter#onEvent(TaskTimeoutRequestEvent)} that provides + * information about the {@link BleTask} that will soon be executed. + */ + @Immutable + public static class TaskTimeoutRequestEvent extends Event + { + /** + * The {@link BleDevice} associated with the {@link #task()}, or {@link BleDevice#NULL} if + * {@link #task()} {@link BleTask#isDeviceSpecific()} does not return <code>true</code>. + */ + public BleDevice device(){ return m_device; } + private BleDevice m_device; + + /** + * Convience to return the mac address of {@link #device()}. + */ + public String macAddress() { return m_device.getMacAddress(); } + + /** + * The {@link BleServer} associated with the {@link #task()}, or {@link BleServer#NULL} if + * {@link #task()} {@link BleTask#isServerSpecific()} does not return <code>true</code>. + */ + public BleServer server(){ return m_server; } + private BleServer m_server; + + /** + * Returns the manager. + */ + public BleManager manager(){ return m_manager; } + private BleManager m_manager; + + /** + * The type of task for which we are requesting a timeout. + */ + public BleTask task(){ return m_task; } + private BleTask m_task; + + /** + * The ble characteristic {@link UUID} associated with the task if {@link BleTask#usesCharUuid()} + * returns <code>true</code>, or {@link Uuids#INVALID} otherwise. + */ + public UUID charUuid(){ return m_charUuid; } + private UUID m_charUuid; + + /** + * The ble descriptor {@link UUID} associated with the task, or {@link Uuids#INVALID} otherwise. + * For now only associated with {@link BleTask#TOGGLE_NOTIFY}. + */ + public UUID descUuid(){ return m_descUuid; } + private UUID m_descUuid; + + void init(BleManager manager, BleDevice device, BleServer server, BleTask task, UUID charUuid, UUID descUuid) + { + m_manager = manager; + m_device = device; + m_server = server; + m_task = task; + m_charUuid = charUuid; + m_descUuid = descUuid; + } + + @Override public String toString() + { + if( device() != BleDevice.NULL ) + { + return Utils_String.toString + ( + this.getClass(), + "device", device(), + "task", task(), + "charUuid", charUuid() + ); + } + else + { + return Utils_String.toString + ( + this.getClass(), + "server", server(), + "task", task(), + "charUuid", charUuid() + ); + } + } + } + + /** + * Use static constructor methods to create instances to return from {@link TaskTimeoutRequestFilter#onEvent(TaskTimeoutRequestEvent)}. + */ + @Immutable + public static class Please + { + private final Interval m_interval; + + Please(Interval interval) + { + m_interval = interval; + } + + /** + * Tells SweetBlue to wait for the given interval before timing out the task. + */ + public static Please setTimeoutFor(final Interval interval) + { + return new Please(interval); + } + + /** + * Tells SweetBlue to not timeout the task at all. + * <br><br> + * WARNING: This can be dangerous to use because if a task never finishes it will block all other operations indefinitely. + */ + public static Please doNotUseTimeout() + { + return new Please(Interval.DISABLED); + } + } + + /** + * Implement this to have fine-grained control over {@link BleTask} timeout behavior. + */ + Please onEvent(TaskTimeoutRequestEvent e); + } + + /** + * Default implementation of {@link TaskTimeoutRequestFilter} that simply sets the timeout + * for all {@link BleTask} instances to {@link #DEFAULT_TASK_TIMEOUT} seconds. + */ + public static class DefaultTaskTimeoutRequestFilter implements TaskTimeoutRequestFilter + { + /** + * Default value for all tasks. + */ + public static final double DEFAULT_TASK_TIMEOUT = 12.5; + + /** + * Value used for crash resolver process because this can take a bit longer. + */ + public static final double DEFAULT_CRASH_RESOLVER_TIMEOUT = 50.0; + + private static final Please DEFAULT_RETURN_VALUE = Please.setTimeoutFor(Interval.secs(DEFAULT_TASK_TIMEOUT)); + + @Override public Please onEvent(TaskTimeoutRequestEvent e) + { + if( e.task() == BleTask.RESOLVE_CRASHES ) + { + return Please.setTimeoutFor(Interval.secs(DEFAULT_CRASH_RESOLVER_TIMEOUT)); + } + else if( e.task() == BleTask.BOND ) + { + return DEFAULT_RETURN_VALUE; + } + else + { + return DEFAULT_RETURN_VALUE; + } + } + } + + /** + * An optional interface you can implement on {@link BleNodeConfig#reconnectFilter} to control reconnection behavior. + * + * @see #reconnectFilter + * @see DefaultReconnectFilter + */ + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface ReconnectFilter + { + /** + * An enum provided through {@link ReconnectEvent#type()} that describes what reconnect stage we're at. + */ + public static enum Type + { + /** + * A small period of time has passed since we last asked about {@link #SHORT_TERM__SHOULD_TRY_AGAIN}, so just making sure you want to keep going. + */ + SHORT_TERM__SHOULD_CONTINUE, + + /** + * An attempt to reconnect in the short term failed, should we try again?. + */ + SHORT_TERM__SHOULD_TRY_AGAIN, + + /** + * A small period of time has passed since we last asked about {@link #LONG_TERM__SHOULD_TRY_AGAIN}, so just making sure you want to keep going. + */ + LONG_TERM__SHOULD_CONTINUE, + + /** + * An attempt to reconnect in the long term failed, should we try again?. + */ + LONG_TERM__SHOULD_TRY_AGAIN; + + /** + * Is this either {@link #SHORT_TERM__SHOULD_CONTINUE} or {@link #LONG_TERM__SHOULD_TRY_AGAIN}. + */ + public boolean isShouldTryAgain() + { + return this == SHORT_TERM__SHOULD_TRY_AGAIN || this == LONG_TERM__SHOULD_TRY_AGAIN; + } + + /** + * Is this either {@link #SHORT_TERM__SHOULD_CONTINUE} or {@link #LONG_TERM__SHOULD_CONTINUE}. + */ + public boolean isShouldContinue() + { + return this == SHORT_TERM__SHOULD_CONTINUE || this == LONG_TERM__SHOULD_CONTINUE; + } + + /** + * Is this either {@link #SHORT_TERM__SHOULD_TRY_AGAIN} or {@link #SHORT_TERM__SHOULD_CONTINUE}. + */ + public boolean isShortTerm() + { + return this == SHORT_TERM__SHOULD_TRY_AGAIN || this == SHORT_TERM__SHOULD_CONTINUE; + } + + /** + * Is this either {@link #LONG_TERM__SHOULD_TRY_AGAIN} or {@link #LONG_TERM__SHOULD_CONTINUE}. + */ + public boolean isLongTerm() + { + return this == LONG_TERM__SHOULD_TRY_AGAIN || this == LONG_TERM__SHOULD_CONTINUE; + } + } + + /** + * Struct passed to {@link BleNodeConfig.ReconnectFilter#onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)} to aid in making a decision. + */ + @Immutable + public static class ReconnectEvent extends Event + { + /** + * The node that is currently trying to reconnect. + */ + public BleNode node(){ return m_node; } + private BleNode m_node; + + /** + * Tries to cast {@link #node()} to a {@link BleDevice}, otherwise returns {@link BleDevice#NULL}. + */ + public BleDevice device(){ return node().cast(BleDevice.class); } + + /** + * Tries to cast {@link #node()} to a {@link BleServer}, otherwise returns {@link BleServer#NULL}. + */ + public BleServer server(){ return node().cast(BleServer.class); } + + /** + * Convience to return the mac address of {@link #device()} or the client being reconnected to the {@link #server()}. + */ + public String macAddress() { return m_macAddress; } + private String m_macAddress; + + /** + * The number of times a reconnect attempt has failed so far. + */ + public int failureCount(){ return m_failureCount; } + private int m_failureCount; + + /** + * The total amount of time since the device disconnected and we started the reconnect process. + */ + public Interval totalTimeReconnecting(){ return m_totalTimeReconnecting; } + private Interval m_totalTimeReconnecting; + + /** + * The previous {@link Interval} returned through {@link BleNodeConfig.ReconnectFilter.Please#retryIn(Interval)}, + * or {@link Interval#ZERO} for the first invocation. + */ + public Interval previousDelay(){ return m_previousDelay; } + private Interval m_previousDelay; + + /** + * Returns the more detailed information about why the connection failed. This is passed to {@link BleDevice.ConnectionFailListener#onEvent(BleDevice.ConnectionFailListener.ConnectionFailEvent)} + * before the call is made to {@link BleNodeConfig.ReconnectFilter#onEvent(ReconnectEvent)}. For the first call to {@link ReconnectFilter#onEvent(ReconnectEvent)}, + * right after a spontaneous disconnect occurred, the connection didn't fail, so {@link BleNode.ConnectionFailListener.ConnectionFailEvent#isNull()} will return <code>true</code>. + */ + public BleNode.ConnectionFailListener.ConnectionFailEvent connectionFailEvent(){ return m_connectionFailEvent; } + private BleNode.ConnectionFailListener.ConnectionFailEvent m_connectionFailEvent; + + /** + * See {@link BleNodeConfig.ReconnectFilter.Type} for more info. + */ + public Type type(){ return m_type; } + private Type m_type; + + /*package*/ ReconnectEvent(BleNode node, final String macAddress, int failureCount, Interval totalTimeReconnecting, Interval previousDelay, BleNode.ConnectionFailListener.ConnectionFailEvent connectionFailEvent, final Type type) + { + this.init(node, macAddress, failureCount, totalTimeReconnecting, previousDelay, connectionFailEvent, type); + } + + /*package*/ ReconnectEvent() + { + } + + /*package*/ void init(BleNode node, final String macAddress, int failureCount, Interval totalTimeReconnecting, Interval previousDelay, BleNode.ConnectionFailListener.ConnectionFailEvent connectionFailEvent, final Type type) + { + this.m_node = node; + this.m_macAddress = macAddress; + this.m_failureCount = failureCount; + this.m_totalTimeReconnecting = totalTimeReconnecting; + this.m_previousDelay = previousDelay; + this.m_connectionFailEvent = connectionFailEvent; + this.m_type = type; + } + + @Override public String toString() + { + return Utils_String.toString + ( + this.getClass(), + "node", node(), + "type", type(), + "failureCount", failureCount(), + "totalTimeReconnecting", totalTimeReconnecting(), + "previousDelay", previousDelay() + ); + } + } + + /** + * Return value for {@link ReconnectFilter#onEvent(ReconnectEvent)}. Use static constructor methods to create instances. + */ + @Immutable + public static class Please + { + private static final Interval SHOULD_TRY_AGAIN__INSTANTLY = Interval.ZERO; + + private static final Please SHOULD_CONTINUE__PERSIST = new Please(true); + private static final Please SHOULD_CONTINUE__STOP = new Please(false); + + private final Interval m_interval__SHOULD_TRY_AGAIN; + private final boolean m_persist; + + private Please(final Interval interval__SHOULD_TRY_AGAIN) + { + m_interval__SHOULD_TRY_AGAIN = interval__SHOULD_TRY_AGAIN; + m_persist = true; + } + + private Please(boolean persist) + { + m_persist = persist; + m_interval__SHOULD_TRY_AGAIN = null; + } + + /*package*/ Interval interval() + { + return m_interval__SHOULD_TRY_AGAIN; + } + + /*package*/ boolean shouldPersist() + { + return m_persist; + } + + /** + * When {@link BleNodeConfig.ReconnectFilter.ReconnectEvent#type()} is either {@link Type#SHORT_TERM__SHOULD_TRY_AGAIN} or {@link Type#LONG_TERM__SHOULD_TRY_AGAIN}, + * return this from {@link BleNodeConfig.ReconnectFilter#onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)} to instantly reconnect. + */ + public static Please retryInstantly() + { + return new Please(SHOULD_TRY_AGAIN__INSTANTLY); + } + + /** + * Return this from {@link BleNodeConfig.ReconnectFilter#onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)} to stop a reconnect attempt loop. + * Note that {@link BleDevice#disconnect()} {@link BleServer#disconnect(String)} will also stop any ongoing reconnect loops. + */ + public static Please stopRetrying() + { + return SHOULD_CONTINUE__STOP; + } + + /** + * Return this from {@link BleNodeConfig.ReconnectFilter#onEvent(BleNodeConfig.ReconnectFilter.ReconnectEvent)} to retry after the given amount of time. + */ + public static Please retryIn(Interval interval) + { + return new Please(interval != null ? interval : SHOULD_TRY_AGAIN__INSTANTLY); + } + + /** + * Indicates that the {@link BleDevice} should keep {@link BleDeviceState#RECONNECTING_LONG_TERM} or + * {@link BleDeviceState#RECONNECTING_SHORT_TERM}. + */ + public static Please persist() + { + return SHOULD_CONTINUE__PERSIST; + } + + /** + * Returns {@link #persist()} if the condition holds, {@link #stopRetrying()} otherwise. + */ + public static Please persistIf(final boolean condition) + { + return condition ? persist() : stopRetrying(); + } + + /** + * Returns {@link #stopRetrying()} if the condition holds, {@link #persist()} otherwise. + */ + public static Please stopRetryingIf(final boolean condition) + { + return condition ? stopRetrying() : persist(); + } + } + + /** + * Called for every connection failure while device is {@link BleDeviceState#RECONNECTING_LONG_TERM}. + * Use the static methods of {@link Please} as return values to stop reconnection ({@link Please#stopRetrying()}), try again + * instantly ({@link Please#retryInstantly()}), or after some amount of time {@link Please#retryIn(Interval)}. + */ + Please onEvent(final ReconnectEvent e); + } + + static class DefaultNullReconnectFilter implements ReconnectFilter + { + public static final Please DEFAULT_INITIAL_RECONNECT_DELAY = Please.retryInstantly(); + + public static final Interval SHORT_TERM_ATTEMPT_RATE = Interval.secs(1.0); + + public static final Interval SHORT_TERM_TIMEOUT = Interval.FIVE_SECS; + + private final Please m_please__SHORT_TERM__SHOULD_TRY_AGAIN; + private final Interval m_timeout__SHORT_TERM__SHOULD_CONTINUE; + + public DefaultNullReconnectFilter() + { + this + ( + DefaultReconnectFilter.SHORT_TERM_ATTEMPT_RATE, + DefaultReconnectFilter.SHORT_TERM_TIMEOUT + ); + } + + public DefaultNullReconnectFilter(final Interval reconnectRate__SHORT_TERM, final Interval timeout__SHORT_TERM) + { + m_please__SHORT_TERM__SHOULD_TRY_AGAIN = Please.retryIn(reconnectRate__SHORT_TERM); + + m_timeout__SHORT_TERM__SHOULD_CONTINUE = timeout__SHORT_TERM; + } + + @Override public Please onEvent(final ReconnectEvent e) + { + if( e.type().isShouldTryAgain() ) + { + if( e.failureCount() == 0 ) + { + return DEFAULT_INITIAL_RECONNECT_DELAY; + } + else + { + if( e.type().isShortTerm() ) + { + return m_please__SHORT_TERM__SHOULD_TRY_AGAIN; + } + else + { + return Please.stopRetrying(); + } + } + } + else if( e.type().isShouldContinue() ) + { + if( e.node() instanceof BleDevice ) + { + final boolean definitelyPersist = BleDeviceState.CONNECTING_OVERALL.overlaps(e.device().getNativeStateMask()) && + BleDeviceState.CONNECTED.overlaps(e.device().getNativeStateMask()); + + //--- DRK > We don't interrupt if we're in the middle of connecting + //--- but this will be the last attempt if it fails. + if( definitelyPersist ) + { + return Please.persist(); + } + else + { + return shouldContinue(e); + } + } + else + { + return shouldContinue(e); + } + } + else + { + return Please.stopRetrying(); + } + } + + private Please shouldContinue(final ReconnectEvent e) + { + if( e.type().isShortTerm() ) + { + return Please.persistIf(e.totalTimeReconnecting().lt(m_timeout__SHORT_TERM__SHOULD_CONTINUE)); + } + else + { + return Please.stopRetrying(); + } + } + } + + /** + * Default implementation of {@link ReconnectFilter} that uses {@link ReconnectFilter.Please#retryInstantly()} for the + * first reconnect attempt, and from then on uses the {@link Interval} rate passed to the constructor + * + */ + public static class DefaultReconnectFilter implements ReconnectFilter + { + public static final Please DEFAULT_INITIAL_RECONNECT_DELAY = Please.retryInstantly(); + + public static final Interval LONG_TERM_ATTEMPT_RATE = Interval.secs(3.0); + public static final Interval SHORT_TERM_ATTEMPT_RATE = Interval.secs(1.0); + + public static final Interval SHORT_TERM_TIMEOUT = Interval.FIVE_SECS; + public static final Interval LONG_TERM_TIMEOUT = Interval.mins(5); + + private final Please m_please__SHORT_TERM__SHOULD_TRY_AGAIN; + private final Please m_please__LONG_TERM__SHOULD_TRY_AGAIN; + + private final Interval m_timeout__SHORT_TERM__SHOULD_CONTINUE; + private final Interval m_timeout__LONG_TERM__SHOULD_CONTINUE; + + public DefaultReconnectFilter() + { + this + ( + DefaultReconnectFilter.SHORT_TERM_ATTEMPT_RATE, + DefaultReconnectFilter.LONG_TERM_ATTEMPT_RATE, + DefaultReconnectFilter.SHORT_TERM_TIMEOUT, + DefaultReconnectFilter.LONG_TERM_TIMEOUT + ); + } + + public DefaultReconnectFilter(final Interval reconnectRate__SHORT_TERM, final Interval reconnectRate__LONG_TERM, final Interval timeout__SHORT_TERM, final Interval timeout__LONG_TERM) + { + m_please__SHORT_TERM__SHOULD_TRY_AGAIN = Please.retryIn(reconnectRate__SHORT_TERM); + m_please__LONG_TERM__SHOULD_TRY_AGAIN = Please.retryIn(reconnectRate__LONG_TERM); + + m_timeout__SHORT_TERM__SHOULD_CONTINUE = timeout__SHORT_TERM; + m_timeout__LONG_TERM__SHOULD_CONTINUE = timeout__LONG_TERM; + } + + @Override public Please onEvent(final ReconnectEvent e) + { + if( e.type().isShouldTryAgain() ) + { + if( e.failureCount() == 0 ) + { + return DEFAULT_INITIAL_RECONNECT_DELAY; + } + else + { + if( e.type().isShortTerm() ) + { + return m_please__SHORT_TERM__SHOULD_TRY_AGAIN; + } + else + { + return m_please__LONG_TERM__SHOULD_TRY_AGAIN; + } + } + } + else if( e.type().isShouldContinue() ) + { + if( e.node() instanceof BleDevice ) + { + final boolean definitelyPersist = BleDeviceState.CONNECTING_OVERALL.overlaps(e.device().getNativeStateMask()) && + BleDeviceState.CONNECTED.overlaps(e.device().getNativeStateMask()); + + //--- DRK > We don't interrupt if we're in the middle of connecting + //--- but this will be the last attempt if it fails. + if( definitelyPersist ) + { + return Please.persist(); + } + else + { + return shouldContinue(e); + } + } + else + { + return shouldContinue(e); + } + } + else + { + return Please.stopRetrying(); + } + } + + private Please shouldContinue(final ReconnectEvent e) + { + if( e.type().isShortTerm() ) + { + return Please.persistIf(e.totalTimeReconnecting().lt(m_timeout__SHORT_TERM__SHOULD_CONTINUE)); + } + else + { + return Please.persistIf(e.totalTimeReconnecting().lt(m_timeout__LONG_TERM__SHOULD_CONTINUE)); + } + } + } + + static final String WRONG_THREAD_MESSAGE = + + "As of v2.0.0 this API must be called on the main thread. " + + "To temporarily disable this enforcement for migrations from v1.*.* set BleNodeConfig.allowCallsFromAllThreads=true. " + + "HOWEVER, this should only be treated as a temporary solution for your app."; + + /** + * Creates a {@link BleNodeConfig} with all default options set. See each member of this class + * for what the default options are set to. Consider using {@link #newNulled()} also. + */ + public BleNodeConfig() + { + } + + /** + * Sets all {@link Nullable} options in {@link BleNodeConfig}, {@link BleDeviceConfig}, {@link BleManagerConfig} to <code>null</code> + * so for example it's easier to cherry-pick just a few options to override from {@link BleManagerConfig} when using {@link BleDevice#setConfig(BleDeviceConfig)}. + * <br><br> + * NOTE: This doesn't affect any non-nullable subclass members of {@link BleManagerConfig} like {@link BleManagerConfig#stopScanOnPause}. + */ + public void nullOut() + { + Utils_Reflection.nullOut(this, BleDeviceConfig.class); + Utils_Reflection.nullOut(this, BleManagerConfig.class); + Utils_Reflection.nullOut(this, BleNodeConfig.class); + } + + /** + * Convenience method that returns a nulled out {@link BleNodeConfig}, which is useful + * when using {@link BleServer#setConfig(BleNodeConfig)} to only override a few options + * from {@link BleManagerConfig} passed to {@link BleManager#get(Context, BleManagerConfig)} + * or {@link BleManager#setConfig(BleManagerConfig)}. + */ + public static BleNodeConfig newNulled() + { + BleNodeConfig config = new BleNodeConfig(); + config.nullOut(); + + return config; + } + + static double getTimeout(final TaskTimeoutRequestFilter.TaskTimeoutRequestEvent event) + { + final BleManager manager = event.manager(); + final BleDevice device_nullable = !event.device().isNull() ? event.device() : null; + final BleServer server_nullable = !event.server().isNull() ? event.server() : null; + + final TaskTimeoutRequestFilter filter_specific; + + if( device_nullable != null ) + { + filter_specific = device_nullable.conf_device().taskTimeoutRequestFilter; + } + else if( server_nullable != null ) + { + filter_specific = server_nullable.conf_node().taskTimeoutRequestFilter; + } + else + { + filter_specific = null; + } + + final TaskTimeoutRequestFilter filter_mngr = manager.m_config.taskTimeoutRequestFilter; + final TaskTimeoutRequestFilter filter = filter_specific != null ? filter_specific : filter_mngr; + final TaskTimeoutRequestFilter.Please please = filter != null ? filter.onEvent(event) : null; + final Interval timeout = please != null ? please.m_interval : Interval.DISABLED; + final double toReturn = timeout != null ? timeout.secs() : Interval.DISABLED.secs(); + + event.device().getManager().getLogger().checkPlease(please, TaskTimeoutRequestFilter.Please.class); + + return toReturn; + } + + + static boolean boolOrDefault(Boolean bool_nullable) + { + return bool_nullable == null ? false : bool_nullable; + } + + static Interval intervalOrDefault(Interval value_nullable) + { + return value_nullable == null ? Interval.DISABLED : value_nullable; + } + + static boolean bool(Boolean bool_device_nullable, Boolean bool_mngr_nullable) + { + return bool_device_nullable != null ? bool_device_nullable : boolOrDefault(bool_mngr_nullable); + } + + static Interval interval(Interval interval_device_nullable, Interval interval_mngr_nullable) + { + return interval_device_nullable != null ? interval_device_nullable : intervalOrDefault(interval_mngr_nullable); + } + + static Integer integer(Integer int_device_nullable, Integer int_mngr_nullable) + { + return int_device_nullable != null ? int_device_nullable : int_mngr_nullable; + } + + static Integer integer(Integer int_device_nullable, Integer int_mngr_nullable, int defaultValue) + { + return integerOrDefault(integer(int_device_nullable, int_mngr_nullable), defaultValue); + } + + static int integerOrZero(Integer value_nullable) + { + return integerOrDefault(value_nullable, 0); + } + + static int integerOrDefault(Integer value_nullable, int defaultValue) + { + return value_nullable != null ? value_nullable : defaultValue; + } + + static <T> T filter(T filter_device, T filter_mngr) + { + return filter_device != null ? filter_device : filter_mngr; + } + + @Override protected BleNodeConfig clone() + { + try + { + return (BleNodeConfig) super.clone(); + } + catch (CloneNotSupportedException e) + { + } + + return null; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleScanMode.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleScanMode.java new file mode 100644 index 0000000000000000000000000000000000000000..1daa4cf576c095a13f22392eb74be4613e37c2d3 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleScanMode.java @@ -0,0 +1,88 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.le.ScanCallback; +import android.bluetooth.le.ScanSettings; + +import java.util.List; + +/** + * Type-safe parallel of various static final int members of {@link android.bluetooth.le.ScanSettings} and a way to + * force pre-Lollipop scanning mode. Provide an option to {@link BleManagerConfig#scanMode}. + */ +public enum BleScanMode +{ + /** + * This option is recommended and will let SweetBlue automatically choose what scanning mode to use + * based on whether the app is backgrounded, if we're doing a long-term scan, polling scan, etc. + */ + AUTO(-1), + + /** + * Will force SweetBlue to use {@link BluetoothAdapter#startDiscovery()}, which is so-called "Bluetooth Classic" discovery. + * This is the scanning mode used on the Android Bluetooth Settings screen. It only returns the mac address and name of your + * device through a {@link com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent}, as opposed to full LE scanning packets + * which usually have a service {@link java.util.UUID} (at the least) as well. + */ + CLASSIC(-1), + + /** + * This forces the use of the pre-Lollipop scanning API {@link BluetoothAdapter#startLeScan(BluetoothAdapter.LeScanCallback)}, + * which was deprecated in Lollipop. + */ + PRE_LOLLIPOP(-1), + + /** + * This will tell SweetBlue to use the newer scanning API introduced in Lollipop + * ({@link android.bluetooth.le.BluetoothLeScanner#startScan(List, ScanSettings, ScanCallback)}) . We've found that this API is + * not yet as good as it's predecessor. It may be better for battery life, as you have more control over the scanning power (using + * {@link BleScanPower}), however, even at {@link BleScanPower#HIGH_POWER}, we've found that it doesn't discover devices + * as reliably as the pre-lollipop scan API. + */ + POST_LOLLIPOP(-1), + + /** + * Lollipop-and-up-relevant-only, this is strict typing for {@link ScanSettings#SCAN_MODE_LOW_POWER}. + * For phones lower than Lollipop, {@link #PRE_LOLLIPOP} will automatically be used instead. + * @deprecated - This will be removed in v3. Use {@link BleScanPower#LOW_POWER} instead. + */ + @Deprecated + LOW_POWER(ScanSettings.SCAN_MODE_LOW_POWER), + + /** + * Lollipop-and-up-relevant-only, this is strict typing for {@link ScanSettings#SCAN_MODE_BALANCED}. + * For phones lower than Lollipop, {@link #PRE_LOLLIPOP} will automatically be used instead. + * @deprecated - This will be removed in v3. Use {@link BleScanPower#MEDIUM_POWER} instead. + */ + @Deprecated + MEDIUM_POWER(ScanSettings.SCAN_MODE_BALANCED), + + /** + * Lollipop-and-up-relevant-only, this is strict typing for {@link ScanSettings#SCAN_MODE_LOW_LATENCY}. + * For phones lower than Lollipop, {@link #PRE_LOLLIPOP} will automatically be used instead. + * @deprecated - This will be removed in v3. Use {@link BleScanPower#HIGH_POWER} instead. + */ + @Deprecated + HIGH_POWER(ScanSettings.SCAN_MODE_LOW_LATENCY); + + private final int m_nativeMode; + + private BleScanMode(final int nativeMode) + { + m_nativeMode = nativeMode; + } + + /** + * Returns one of the static final int members of {@link ScanSettings}, or -1 for {@link #AUTO}. + */ + public int getNativeMode() + { + return m_nativeMode; + } + + @Deprecated + public boolean isLollipopScanMode() + { + return this == LOW_POWER || this == MEDIUM_POWER || this == HIGH_POWER; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleScanPower.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleScanPower.java new file mode 100644 index 0000000000000000000000000000000000000000..6f8afb11a29bc63d38283f93af423cd39d510b51 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleScanPower.java @@ -0,0 +1,69 @@ +package com.idevicesinc.sweetblue; + + +import android.annotation.TargetApi; +import android.bluetooth.le.ScanSettings; +import android.os.Build; + +/** + * Type-safe parallel of various static final int members of {@link ScanSettings} for setting the scanning power + * when using the Lollipop scanning API. This is ONLY valid on devices running Lollipop, or higher. + */ +@TargetApi(Build.VERSION_CODES.LOLLIPOP) +public enum BleScanPower +{ + + /** + * SweetBlue will automatically set the scan power depending on if the app is in the foreground or not. When foregrounded, + * and running a periodic, or limited scan, {@link #HIGH_POWER} will be used. If you are using an infinite scan length, + * then {@link #MEDIUM_POWER} will be used instead. Otherwise, when in the background, {@link #LOW_POWER} is used. + */ + AUTO(-1), + + /** + * Lollipop-and-up-relevant-only, this is strict typing for {@link ScanSettings#SCAN_MODE_LOW_POWER}. + * For phones lower than Lollipop, this will be used ignored. + */ + LOW_POWER(ScanSettings.SCAN_MODE_LOW_POWER), + + /** + * Lollipop-and-up-relevant-only, this is strict typing for {@link ScanSettings#SCAN_MODE_BALANCED}. + * For phones lower than Lollipop, this will be used ignored. + */ + MEDIUM_POWER(ScanSettings.SCAN_MODE_BALANCED), + + /** + * Lollipop-and-up-relevant-only, this is strict typing for {@link ScanSettings#SCAN_MODE_LOW_LATENCY}. + * For phones lower than Lollipop, this will be used ignored. + */ + HIGH_POWER(ScanSettings.SCAN_MODE_LOW_LATENCY); + + + private final int nativeMode; + + BleScanPower(int nativeMode) + { + this.nativeMode = nativeMode; + } + + public int getNativeMode() + { + return nativeMode; + } + + public static BleScanPower fromBleScanMode(BleScanMode mode) + { + switch (mode) + { + case HIGH_POWER: + return HIGH_POWER; + case MEDIUM_POWER: + return MEDIUM_POWER; + case LOW_POWER: + return LOW_POWER; + default: + return AUTO; + } + } + +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleServer.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleServer.java new file mode 100644 index 0000000000000000000000000000000000000000..44f2d3c190698a3b196582610d9195a751b27af1 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleServer.java @@ -0,0 +1,2498 @@ +/** + * + */ +package com.idevicesinc.sweetblue; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.UUID; + +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattDescriptor; +import android.bluetooth.BluetoothGattServer; +import android.bluetooth.BluetoothGattServerCallback; +import android.bluetooth.BluetoothGattService; +import android.bluetooth.le.AdvertiseCallback; +import android.content.Context; + +import com.idevicesinc.sweetblue.annotations.Advanced; +import com.idevicesinc.sweetblue.annotations.Immutable; +import com.idevicesinc.sweetblue.annotations.Lambda; +import com.idevicesinc.sweetblue.annotations.Nullable; +import com.idevicesinc.sweetblue.utils.Event; +import com.idevicesinc.sweetblue.utils.ForEach_Breakable; +import com.idevicesinc.sweetblue.utils.ForEach_Void; +import com.idevicesinc.sweetblue.utils.FutureData; +import com.idevicesinc.sweetblue.utils.Interval; +import com.idevicesinc.sweetblue.utils.PresentData; +import com.idevicesinc.sweetblue.utils.State; +import com.idevicesinc.sweetblue.utils.UsesCustomNull; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Utils_String; +import com.idevicesinc.sweetblue.utils.Uuids; +import com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower; +import com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode; + +import static com.idevicesinc.sweetblue.BleManagerState.ON; +import static com.idevicesinc.sweetblue.BleServerState.*; + + +/** + * Get an instance from {@link BleManager#getServer()}. Wrapper for functionality exposed by {@link BluetoothGattServer}. For OS levels less than 5.0, this + * is only useful by piggybacking on an existing {@link BleDevice} that is currently {@link BleDeviceState#CONNECTED}. + * For OS levels 5.0 and up a {@link BleServer} is capable of acting as an independent peripheral. + */ +public class BleServer extends BleNode +{ + /** + * Special value that is used in place of Java's built-in <code>null</code>. + */ + @Immutable + public static final BleServer NULL = new BleServer(null, /*isNull=*/true); + + /** + * Tagging interface, not to be implemented directly as this is just the base interface to statically tie together + * {@link IncomingListener} and {@link OutgoingListener} with common enums/structures. + */ + @Lambda + public static interface ExchangeListener + { + /** + * The type of GATT object, provided by {@link ExchangeEvent#target()}. + */ + public static enum Target + { + /** + * The {@link ExchangeEvent} returned has to do with a {@link BluetoothGattCharacteristic} under the hood. + */ + CHARACTERISTIC, + + /** + * The {@link ExchangeEvent} returned has to do with a {@link BluetoothGattDescriptor} under the hood. + */ + DESCRIPTOR; + } + + /** + * The type of exchange being executed, read, write, or notify. + */ + public static enum Type + { + /** + * The client is requesting a read of some data from us, the server. + */ + READ, + + /** + * The client is requesting acceptance of a write. + */ + WRITE, + + /** + * The client is requesting acceptance of a prepared write. + */ + PREPARED_WRITE, + + /** + * Only for {@link BleServer#sendNotification(String, UUID, byte[])} or overloads. + */ + NOTIFICATION, + + /** + * Only for {@link BleServer#sendIndication(String, UUID, byte[])} or overloads. + */ + INDICATION; + + /** + * Shorthand for checking if this equals {@link #READ}. + */ + public boolean isRead() + { + return this == READ; + } + + /** + * Shorthand for checking if this equals {@link #NOTIFICATION} or {@link #INDICATION}. + */ + public boolean isNotificationOrIndication() + { + return this == NOTIFICATION || this == INDICATION; + } + + /** + * Shorthand for checking if this equals {@link #WRITE} or {@link #PREPARED_WRITE}. + */ + public boolean isWrite() + { + return this == WRITE || this == PREPARED_WRITE; + } + } + + /** + * Like {@link BleServer.ExchangeListener}, this class should not be used directly as this is just a base class to statically tie together + * {@link IncomingListener.IncomingEvent} and {@link OutgoingListener.OutgoingEvent} with a common API. + */ + @Immutable + public abstract static class ExchangeEvent extends Event + { + /** + * Value used in place of <code>null</code>, either indicating that {@link #descUuid()} + * isn't used for the {@link ExchangeEvent} because {@link #target()} is {@link Target#CHARACTERISTIC}. + */ + public static final UUID NON_APPLICABLE_UUID = Uuids.INVALID; + + /** + * Return value of {@link #requestId()} if {@link #type()} is {@link Type#NOTIFICATION}. + */ + public static final int NON_APPLICABLE_REQUEST_ID = -1; + + /** + * The {@link BleServer} this {@link ExchangeEvent} is for. + */ + public BleServer server() { return m_server; } + private final BleServer m_server; + + /** + * Returns the mac address of the client peripheral that we are exchanging data with. + */ + public String macAddress() { return m_nativeDevice.getAddress(); } + + /** + * Returns the native bluetooth device object representing the client making the request. + */ + public BluetoothDevice nativeDevice() { return m_nativeDevice; }; + private final BluetoothDevice m_nativeDevice; + + /** + * The type of operation, read or write. + */ + public Type type() { return m_type; } + private final Type m_type; + + /** + * The type of GATT object this {@link ExchangeEvent} is for, characteristic or descriptor. + */ + public Target target() { return m_target; } + private final Target m_target; + + /** + * The {@link UUID} of the service associated with this {@link ExchangeEvent}. + */ + public UUID serviceUuid() { return m_serviceUuid; } + private final UUID m_serviceUuid; + + /** + * The {@link UUID} of the characteristic associated with this {@link ExchangeEvent}. This will always be + * a valid {@link UUID}, even if {@link #target()} is {@link Target#DESCRIPTOR}. + */ + public @Nullable(Nullable.Prevalence.NEVER) UUID charUuid() { return m_charUuid; } + private final UUID m_charUuid; + + /** + * The {@link UUID} of the descriptor associated with this {@link ExchangeEvent}. If {@link #target} is + * {@link Target#CHARACTERISTIC} then this will be referentially equal (i.e. you can use == to compare) + * to {@link #NON_APPLICABLE_UUID}. + */ + public @Nullable(Nullable.Prevalence.NEVER) UUID descUuid() { return m_descUuid; } + private final UUID m_descUuid; + + /** + * The data received from the client if {@link #type()} is {@link Type#isWrite()}, otherwise an empty byte array. + * This is in contrast to {@link OutgoingListener.OutgoingEvent#data_sent()} if + * {@link #type()} is {@link Type#isRead()}. + * + */ + public @Nullable(Nullable.Prevalence.NEVER) byte[] data_received() { return m_data_received; } + private final byte[] m_data_received; + + /** + * The request id forwarded from the native stack. See various methods of {@link android.bluetooth.BluetoothGattServerCallback} for explanation. + * Not relevant if {@link #type()} {@link Type#isNotificationOrIndication()} is <code>true</code>. + */ + public int requestId() { return m_requestId; } + private final int m_requestId; + + /** + * The offset forwarded from the native stack. See various methods of {@link android.bluetooth.BluetoothGattServerCallback} for explanation. + * Not relevant if {@link #type()} {@link Type#isNotificationOrIndication()} is <code>true</code>. + */ + public int offset() { return m_offset; } + private final int m_offset; + + /** + * Dictates whether a response is needed. + * Not relevant if {@link #type()} {@link Type#isNotificationOrIndication()} is <code>true</code>. + */ + public boolean responseNeeded() { return m_responseNeeded; } + private final boolean m_responseNeeded; + + ExchangeEvent(BleServer server, BluetoothDevice nativeDevice, UUID serviceUuid_in, UUID charUuid_in, UUID descUuid_in, Type type_in, Target target_in, byte[] data_in, int requestId, int offset, final boolean responseNeeded) + { + m_server = server; + m_nativeDevice = nativeDevice; + m_serviceUuid = serviceUuid_in != null ? serviceUuid_in: NON_APPLICABLE_UUID;; + m_charUuid = charUuid_in != null ? charUuid_in : NON_APPLICABLE_UUID;; + m_descUuid = descUuid_in != null ? descUuid_in : NON_APPLICABLE_UUID; + m_type = type_in; + m_target = target_in; + m_requestId = requestId; + m_offset = offset; + m_responseNeeded = responseNeeded; + + m_data_received = data_in != null ? data_in : EMPTY_BYTE_ARRAY; + } + + public boolean isFor(final String macAddress) { return macAddress().equals(macAddress); } + public boolean isFor(final UUID uuid) { return uuid.equals(serviceUuid()) || uuid.equals(charUuid()) || uuid.equals(descUuid()); } + } + } + + /** + * Provide an instance through {@link BleServer#setListener_Incoming(IncomingListener)}. + * The return value of {@link IncomingListener#onEvent(IncomingEvent)} is used to decide if/how to respond to a given {@link IncomingEvent}. + */ + @Lambda + public static interface IncomingListener extends ExchangeListener + { + /** + * Struct passed to {@link BleServer.IncomingListener#onEvent(BleServer.IncomingListener.IncomingEvent)}} that provides details about the client and what it wants from us, the server. + */ + @Immutable + public static class IncomingEvent extends ExchangeEvent + { + IncomingEvent(BleServer server, BluetoothDevice nativeDevice, UUID serviceUuid_in, UUID charUuid_in, UUID descUuid_in, Type type_in, Target target_in, byte[] data_in, int requestId, int offset, final boolean responseNeeded) + { + super(server, nativeDevice, serviceUuid_in, charUuid_in, descUuid_in, type_in, target_in, data_in, requestId, offset, responseNeeded); + } + + @Override public String toString() + { + if( type().isRead() ) + { + return Utils_String.toString + ( + this.getClass(), + "type", type(), + "target", target(), + "macAddress", macAddress(), + "charUuid", server().getManager().getLogger().uuidName(charUuid()), + "requestId", requestId() + ); + } + else + { + return Utils_String.toString + ( + this.getClass(), + "type", type(), + "target", target(), + "data_received", data_received(), + "macAddress", macAddress(), + "charUuid", server().getManager().getLogger().uuidName(charUuid()), + "requestId", requestId() + ); + } + } + } + + /** + * Struct returned from {@link IncomingListener#onEvent(IncomingEvent)}. + * Use the static constructor methods to create instances. + */ + @Immutable + public static class Please + { + final int m_gattStatus; + final int m_offset; + final FutureData m_futureData; + final OutgoingListener m_outgoingListener; + + final boolean m_respond; + + private Please(final FutureData futureData, final int gattStatus, final int offset, final OutgoingListener outgoingListener) + { + m_respond = true; + + m_futureData = futureData != null ? futureData : BleDevice.EMPTY_FUTURE_DATA; + m_gattStatus = gattStatus; + m_offset = offset; + m_outgoingListener = outgoingListener != null ? outgoingListener : NULL_OUTGOING_LISTENER; + } + + private Please(final OutgoingListener outgoingListener) + { + m_respond = false; + + m_gattStatus = 0; + m_offset = 0; + m_futureData = BleDevice.EMPTY_FUTURE_DATA; + m_outgoingListener = outgoingListener != null ? outgoingListener : NULL_OUTGOING_LISTENER; + } + + /** + * Use this as the return value of {@link IncomingListener#onEvent(IncomingEvent)} + * when {@link IncomingEvent#responseNeeded()} is <code>true</code>. + */ + public static Please doNotRespond() + { + return doNotRespond(null); + } + + /** + * Same as {@link #doNotRespond()} but allows you to provide a listener specific to this (non-)response. + * Your {@link BleServer.OutgoingListener#onEvent(BleServer.OutgoingListener.OutgoingEvent)} will simply be called + * with {@link BleServer.OutgoingListener.Status#NO_RESPONSE_ATTEMPTED}. + * + * @see BleServer#setListener_Outgoing(BleServer.OutgoingListener) + */ + public static Please doNotRespond(final OutgoingListener listener) + { + return new Please(listener); + } + + /** + * Overload of {@link #respondWithSuccess(byte[])} - see {@link FutureData} for why/when you would want to use this. + */ + public static Please respondWithSuccess(final FutureData futureData) + { + return respondWithSuccess(futureData, null); + } + + /** + * Overload of {@link #respondWithSuccess(byte[], BleServer.OutgoingListener)} - see {@link FutureData} for why/when you would want to use this. + */ + public static Please respondWithSuccess(final FutureData futureData, final OutgoingListener listener) + { + return new Please(futureData, BleStatuses.GATT_SUCCESS, /*offset=*/0, listener); + } + + /** + * Use this as the return value of {@link IncomingListener#onEvent(IncomingEvent)} when + * {@link IncomingEvent#type()} {@link Type#isRead()} is <code>true</code> and you can respect + * the read request and respond with data. + */ + public static Please respondWithSuccess(final byte[] data) + { + return respondWithSuccess(data, null); + } + + /** + * Same as {@link #respondWithSuccess(byte[])} but allows you to provide a listener specific to this response. + * + * @see BleServer#setListener_Outgoing(OutgoingListener) + */ + public static Please respondWithSuccess(final byte[] data, final OutgoingListener listener) + { + return respondWithSuccess(new PresentData(data), listener); + } + + /** + * Use this as the return value of {@link IncomingListener#onEvent(IncomingEvent)} + * when {@link IncomingEvent#responseNeeded()} is <code>true</code> and {@link IncomingEvent#type()} + * {@link Type#isWrite()} is <code>true</code> and you consider the write successful. + */ + public static Please respondWithSuccess() + { + return respondWithSuccess((OutgoingListener)null); + } + + /** + * Same as {@link #respondWithSuccess()} but allows you to provide a listener specific to this response. + * + * @see BleServer#setListener_Outgoing(OutgoingListener) + */ + public static Please respondWithSuccess(final OutgoingListener listener) + { + return new Please(BleDevice.EMPTY_FUTURE_DATA, BleStatuses.GATT_SUCCESS, /*offset=*/0, listener); + } + + /** + * Send an error/status code back to the client. See <code>static final int</code> + * members of {@link BleStatuses} starting with GATT_ for possible values. + */ + public static Please respondWithError(final int gattStatus) + { + return respondWithError(gattStatus, null); + } + + /** + * Same as {@link #respondWithError(int)} but allows you to provide a listener specific to this response. + * + * @see BleServer#setListener_Outgoing(OutgoingListener) + */ + public static Please respondWithError(final int gattStatus, final OutgoingListener listener) + { + return new Please(BleDevice.EMPTY_FUTURE_DATA, gattStatus, /*offset=*/0, listener); + } + } + + /** + * Called when a read or write from the client is requested. + */ + Please onEvent(final IncomingEvent e); + } + + /** + * Provide an instance to various static methods of {@link IncomingListener.Please} such as + * {@link BleServer.IncomingListener.Please#respondWithSuccess(BleServer.OutgoingListener)}, or {@link BleServer#setListener_Outgoing(OutgoingListener)}, + * or {@link BleManager#setListener_Outgoing(BleServer.OutgoingListener)}. Also used to callback the success or failure of + * notifications through {@link BleServer#sendNotification(String, UUID, UUID, FutureData, OutgoingListener)}, + * {@link BleServer#sendIndication(String, UUID, UUID, FutureData, OutgoingListener)}, or various overloads thereof. + */ + public static interface OutgoingListener extends ExchangeListener + { + /** + * Struct passed to {@link BleServer.OutgoingListener#onEvent(BleServer.OutgoingListener.OutgoingEvent)} + * that provides details of what was sent to the client and if it succeeded. + */ + @Immutable + public static class OutgoingEvent extends ExchangeEvent implements UsesCustomNull + { + /** + * Returns the result of the response, or {@link BleServer.OutgoingListener.Status#NO_RESPONSE_ATTEMPTED} if + * for example {@link BleServer.IncomingListener.Please#doNotRespond(BleServer.OutgoingListener)} was used. + */ + public Status status() { return m_status; } + private final Status m_status; + + /** + * The data that was attempted to be sent back to the client if {@link #type()} {@link Type#isRead()} is <code>true</code>. + */ + public byte[] data_sent() { return m_data_sent; } + private final byte[] m_data_sent; + + /** + * The gattStatus sent to the client, provided to static methods of {@link BleServer.IncomingListener.Please} + * if {@link #type()} is {@link Type#READ} or {@link Type#WRITE} - otherwise this will equal {@link BleStatuses#GATT_STATUS_NOT_APPLICABLE}. + */ + public int gattStatus_sent() { return m_gattStatus_sent; } + private final int m_gattStatus_sent; + + /** + * The gattStatus received from an attempted communication with the client. For now this is only relevant if {@link #type()} + * {@link Type#isNotificationOrIndication()} is <code>true</code> - otherwise this will equal {@link BleStatuses#GATT_STATUS_NOT_APPLICABLE}. + */ + public int gattStatus_received() { return m_gattStatus_received; } + private final int m_gattStatus_received; + + /** + * This returns <code>true</code> if this event was the result of an explicit call through SweetBlue, e.g. through + * {@link BleServer#sendNotification(String, UUID, UUID, FutureData, OutgoingListener)}. It will return <code>false</code> otherwise, + * which can happen if for example you use {@link BleServer#getNative()} to bypass SweetBlue for whatever reason. + * Another theoretical case is if you make an explicit call through SweetBlue, then you get {@link com.idevicesinc.sweetblue.BleServer.OutgoingListener.Status#TIMED_OUT}, + * but then the native stack eventually *does* come back with something - this has never been observed, but it is possible. + */ + public boolean solicited() { return m_solicited; } + private final boolean m_solicited; + + OutgoingEvent(BleServer server, BluetoothDevice nativeDevice, UUID serviceUuid_in, UUID charUuid_in, UUID descUuid_in, Type type_in, Target target_in, byte[] data_received, byte[] data_sent, int requestId, int offset, final boolean responseNeeded, final Status status, final int gattStatus_sent, final int gattStatus_received, final boolean solicited) + { + super(server, nativeDevice, serviceUuid_in, charUuid_in, descUuid_in, type_in, target_in, data_received, requestId, offset, responseNeeded); + + m_status = status; + m_data_sent = data_sent; + m_gattStatus_received = gattStatus_received; + m_gattStatus_sent = gattStatus_sent; + m_solicited = solicited; + } + + OutgoingEvent(final IncomingListener.IncomingEvent e, final byte[] data_sent, final Status status, final int gattStatus_sent, final int gattStatus_received) + { + super(e.server(), e.nativeDevice(), e.serviceUuid(), e.charUuid(), e.descUuid(), e.type(), e.target(), e.data_received(), e.requestId(), e.offset(), e.responseNeeded()); + + m_status = status; + m_data_sent = data_sent; + m_gattStatus_received = gattStatus_received; + m_gattStatus_sent = gattStatus_sent; + m_solicited = true; + } + + static OutgoingEvent EARLY_OUT__NOTIFICATION(final BleServer server, final BluetoothDevice nativeDevice, final UUID serviceUuid, final UUID charUuid, final FutureData data, final Status status) + { + return new OutgoingEvent + ( + server, nativeDevice, serviceUuid, charUuid, NON_APPLICABLE_UUID, Type.NOTIFICATION, Target.CHARACTERISTIC, + EMPTY_BYTE_ARRAY, data.getData(), NON_APPLICABLE_REQUEST_ID, 0, false, status, BleStatuses.GATT_STATUS_NOT_APPLICABLE, + BleStatuses.GATT_STATUS_NOT_APPLICABLE, /*solicited=*/true + ); + } + + static OutgoingEvent NULL__NOTIFICATION(final BleServer server, final BluetoothDevice nativeDevice, final UUID serviceUuid, final UUID charUuid) + { + return EARLY_OUT__NOTIFICATION(server, nativeDevice, serviceUuid, charUuid, BleServer.EMPTY_FUTURE_DATA, Status.NULL); + } + + /** + * Checks if {@link #status()} is {@link Status#SUCCESS}. + */ + public boolean wasSuccess() + { + return status() == Status.SUCCESS; + } + + /** + * Will return true in certain early-out cases when there is no issue and the response can continue. + * See {@link BleServer#sendNotification(String, UUID, UUID, byte[], OutgoingListener)} for more information. + */ + @Override public boolean isNull() + { + return status().isNull(); + } + + @Override public String toString() + { + if( type().isRead() ) + { + return Utils_String.toString + ( + this.getClass(), + "status", status(), + "type", type(), + "target", target(), + "macAddress", macAddress(), + "charUuid", server().getManager().getLogger().uuidName(charUuid()), + "requestId", requestId() + ); + } + else + { + return Utils_String.toString + ( + this.getClass(), + "status", status(), + "type", type(), + "target", target(), + "data_received", data_received(), + "macAddress", macAddress(), + "charUuid", server().getManager().getLogger().uuidName(charUuid()), + "requestId", requestId() + ); + } + } + } + + /** + * Enumeration of the various success and error statuses possible for an outgoing message. + */ + public static enum Status implements UsesCustomNull + { + /** + * Fulfills the soft contract of {@link UsesCustomNull}. + */ + NULL, + + /** + * The outgoing message to the client was successfully sent. + */ + SUCCESS, + + /** + * {@link BleServer#sendNotification(String, UUID, UUID, FutureData, OutgoingListener)} or + * {@link BleServer#sendIndication(String, UUID, byte[])} (or various overloads) was called + * on {@link BleServer#NULL}. + */ + NULL_SERVER, + + /** + * {@link BleServer.IncomingListener.Please#doNotRespond(BleServer.OutgoingListener)} (or overloads) + * were called or {@link BleServer.IncomingListener.IncomingEvent#responseNeeded()} was <code>false</code>. + */ + NO_RESPONSE_ATTEMPTED, + + /** + * The server does not have a {@link IncomingListener} set so no valid response + * could be sent. Please set a listener through {@link BleServer#setListener_Incoming(IncomingListener)}. + */ + NO_REQUEST_LISTENER_SET, + + /** + * Couldn't find a matching {@link OutgoingEvent#target()} for {@link OutgoingEvent#charUuid()}. + */ + NO_MATCHING_TARGET, + + /** + * For now only relevant if {@link OutgoingEvent#type()} is {@link Type#NOTIFICATION} - + * {@link BluetoothGattCharacteristic#setValue(byte[])} (or one of its overloads) returned <code>false</code>. + */ + FAILED_TO_SET_VALUE_ON_TARGET, + + /** + * The underlying call to {@link BluetoothGattServer#sendResponse(BluetoothDevice, int, int, int, byte[])} + * or {@link BluetoothGattServer#notifyCharacteristicChanged(BluetoothDevice, BluetoothGattCharacteristic, boolean)} + * failed for reasons unknown. + */ + FAILED_TO_SEND_OUT, + + /** + * The operation failed in a "normal" fashion, at least relative to all the other strange ways an operation can fail. This means for + * example that {@link BluetoothGattServer#notifyCharacteristicChanged(BluetoothDevice, BluetoothGattCharacteristic, boolean)} + * returned a status code through {@link BluetoothGattServerCallback#onNotificationSent(BluetoothDevice, int)} that was not zero. + * This could mean the device went out of range, was turned off, signal was disrupted, whatever. Often this means that the + * client is about to become {@link BleServerState#DISCONNECTED}. + */ + REMOTE_GATT_FAILURE, + + /** + * The operation was cancelled by the client/server becoming {@link BleServerState#DISCONNECTED}. + */ + CANCELLED_FROM_DISCONNECT, + + /** + * The operation was cancelled because {@link BleManager} went {@link BleManagerState#TURNING_OFF} and/or + * {@link BleManagerState#OFF}. Note that if the user turns off BLE from their OS settings (airplane mode, etc.) then + * {@link OutgoingEvent#status()} could potentially be {@link #CANCELLED_FROM_DISCONNECT} because SweetBlue might get + * the disconnect callback before the turning off callback. Basic testing has revealed that this is *not* the case, but you never know. + * <br><br> + * Either way, the client was or will be disconnected. + */ + CANCELLED_FROM_BLE_TURNING_OFF, + + /** + * Couldn't send out the data because the operation took longer than the time dictated by {@link BleNodeConfig#taskTimeoutRequestFilter} + * so we had to cut her loose. + */ + TIMED_OUT, + + /** + * Could not communicate with the client device because the server is not currently {@link BleServerState#CONNECTED}. + */ + NOT_CONNECTED; + + /** + * Returns true if <code>this==</code> {@link #NULL}. + */ + @Override public boolean isNull() + { + return this == NULL; + } + } + + /** + * Called when a notification or a response to a request is fulfilled or failed. + */ + void onEvent(final OutgoingEvent e); + } + + /** + * Provide an implementation to {@link BleServer#setListener_Advertising(BleServer.AdvertisingListener)}, and + * {@link BleManager#setListener_Advertising(BleServer.AdvertisingListener)} to receive a callback + * when using {@link #startAdvertising(BleAdvertisingPacket)}. + */ + public static interface AdvertisingListener + { + + /** + * Enumeration describing the m_status of calling {@link #startAdvertising(BleAdvertisingPacket)}. + */ + public static enum Status implements UsesCustomNull + { + SUCCESS(BleStatuses.ADVERTISE_SUCCESS), + DATA_TOO_LARGE(AdvertiseCallback.ADVERTISE_FAILED_DATA_TOO_LARGE), + TOO_MANY_ADVERTISERS(AdvertiseCallback.ADVERTISE_FAILED_TOO_MANY_ADVERTISERS), + ALREADY_STARTED(AdvertiseCallback.ADVERTISE_FAILED_ALREADY_STARTED), + INTERNAL_ERROR(AdvertiseCallback.ADVERTISE_FAILED_INTERNAL_ERROR), + ANDROID_VERSION_NOT_SUPPORTED(BleStatuses.ADVERTISE_ANDROID_VERSION_NOT_SUPPORTED), + CHIPSET_NOT_SUPPORTED(AdvertiseCallback.ADVERTISE_FAILED_FEATURE_UNSUPPORTED), + BLE_NOT_ON(-1), + NULL_SERVER(-2), + NULL(-3); + + private final int m_nativeStatus; + + Status(int nativeStatus) + { + m_nativeStatus = nativeStatus; + } + + public int getNativeStatus() + { + return m_nativeStatus; + } + + public static Status fromNativeStatus(int bit) + { + for (Status res : values()) + { + if (res.m_nativeStatus == bit) + { + return res; + } + } + return SUCCESS; + } + + @Override + public boolean isNull() { + return this == NULL; + } + } + + /** + * Sub class representing the Advertising Event + */ + public static class AdvertisingEvent extends Event implements UsesCustomNull + { + private final BleServer m_server; + private final Status m_status; + + AdvertisingEvent(BleServer server, Status m_status) + { + m_server = server; + this.m_status = m_status; + } + + /** + * The backing {@link BleManager} which is attempting to start advertising. + */ + public BleServer server() + { + return m_server; + } + + /** + * Whether or not {@link #startAdvertising(BleAdvertisingPacket)} was successful or not. If false, + * then call {@link #m_status} to get the error code. + */ + public boolean wasSuccess() + { + return m_status == Status.SUCCESS; + } + + /** + * Returns {@link Status} describing + * the m_status of calling {@link #startAdvertising(BleAdvertisingPacket)} + */ + public Status status() + { + return m_status; + } + + @Override + public boolean isNull() { + return status() == Status.NULL; + } + + @Override + public String toString() { + return Utils_String.toString(this.getClass(), + "server", server().getClass().getSimpleName(), + "status", status()); + } + } + + /** + * Called upon the m_status of calling {@link #startAdvertising(BleAdvertisingPacket)} + */ + void onEvent(AdvertisingEvent e); + + } + + /** + * Provide an implementation to {@link BleServer#setListener_State(StateListener)} and/or + * {@link BleManager#setListener_ServerState(BleServer.StateListener)} to receive state change events. + * + * @see BleServerState + * @see BleServer#setListener_State(StateListener) + */ + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface StateListener + { + /** + * Subclass that adds the {@link #server()}, {@link #macAddress()}, and {@link #gattStatus()} fields. + */ + @Immutable + public static class StateEvent extends State.ChangeEvent<BleServerState> + { + /** + * The server undergoing the state change. + */ + public BleServer server() { return m_server; } + private final BleServer m_server; + + /** + * Returns the mac address of the client that's undergoing the state change with this {@link #server()}. + */ + public String macAddress() { return m_macAddress; } + private final String m_macAddress; + + /** + * The change in gattStatus that may have precipitated the state change, or {@link BleStatuses#GATT_STATUS_NOT_APPLICABLE}. + * For example if {@link #didEnter(State)} with {@link BleServerState#DISCONNECTED} is <code>true</code> and + * {@link #didExit(State)} with {@link BleServerState#CONNECTING} is also <code>true</code> then {@link #gattStatus()} may be greater + * than zero and give some further hint as to why the connection failed. + */ + public int gattStatus() { return m_gattStatus; } + private final int m_gattStatus; + + /*package*/ StateEvent(BleServer server, String macAddress, int oldStateBits, int newStateBits, int intentMask, int gattStatus) + { + super(oldStateBits, newStateBits, intentMask); + + m_server = server; + m_gattStatus = gattStatus; + m_macAddress = macAddress; + } + + @Override public String toString() + { + return Utils_String.toString + ( + this.getClass(), +// "server", server().getName_debug(), + "entered", Utils_String.toString(enterMask(), BleServerState.VALUES()), + "exited", Utils_String.toString(exitMask(), BleServerState.VALUES()), + "current", Utils_String.toString(newStateBits(), BleServerState.VALUES()), + "gattStatus", server().getManager().getLogger().gattStatus(gattStatus()) + ); + } + } + + /** + * Called when a server's bitwise {@link BleServerState} changes. As many bits as possible are flipped at the same time. + */ + void onEvent(final StateEvent e); + } + + /** + * Provide an implementation of this callback to {@link BleServer#setListener_ConnectionFail(ConnectionFailListener)}. + * + * @see BleServer#setListener_ConnectionFail(ConnectionFailListener) + */ + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface ConnectionFailListener extends BleNode.ConnectionFailListener + { + /** + * The reason for the connection failure. + */ + public static enum Status implements UsesCustomNull + { + /** + * Used in place of Java's built-in <code>null</code> wherever needed. As of now, the {@link ConnectionFailEvent#status()} given + * to {@link ConnectionFailListener#onEvent(ConnectionFailEvent)} will *never* be {@link ConnectionFailListener.Status#NULL}. + */ + NULL, + + /** + * A call was made to {@link BleServer#connect(String)} or its overloads + * but {@link ConnectionFailEvent#server()} is already + * {@link BleServerState#CONNECTING} or {@link BleServerState#CONNECTED} for the given client. + */ + ALREADY_CONNECTING_OR_CONNECTED, + + /** + * {@link BleServer#connect(String)} (or various overloads) was called on {@link BleServer#NULL}. + */ + NULL_SERVER, + + /** + * The call to {@link android.bluetooth.BluetoothManager#openGattServer(Context, BluetoothGattServerCallback)} returned + * a <code>null</code> object instance, so we could not proceed. + */ + SERVER_OPENING_FAILED, + + /** + * Couldn't connect through {@link BluetoothGattServer#connect(BluetoothDevice, boolean)} + * because it returned <code>false</code>. + */ + NATIVE_CONNECTION_FAILED_IMMEDIATELY, + + /** + * Couldn't connect through {@link BluetoothGattServer#connect(BluetoothDevice, boolean)} + * because we eventually got a bad status code through {@link BluetoothGattServerCallback#onConnectionStateChange(BluetoothDevice, int, int)}. + */ + NATIVE_CONNECTION_FAILED_EVENTUALLY, + + /** + * Couldn't connect through {@link BluetoothGattServer#connect(BluetoothDevice, boolean)} + * because the operation took longer than the time dictated by {@link BleNodeConfig#taskTimeoutRequestFilter}. + */ + TIMED_OUT, + + /** + * {@link BleServer#disconnect()} or overloads was called sometime during the connection process. + */ + CANCELLED_FROM_DISCONNECT, + + /** + * {@link BleManager#reset()} or {@link BleManager#turnOff()} (or + * overloads) were called sometime during the connection process. + * Basic testing reveals that this value will also be used when a + * user turns off BLE by going through their OS settings, airplane + * mode, etc., but it's not absolutely *certain* that this behavior + * is consistent across phones. For example there might be a phone + * that kills all connections *before* going through the ble turn-off + * process, thus {@link #NATIVE_CONNECTION_FAILED_EVENTUALLY} would probably be seen. + */ + CANCELLED_FROM_BLE_TURNING_OFF; + + /** + * Returns true for {@link #CANCELLED_FROM_DISCONNECT} or {@link #CANCELLED_FROM_BLE_TURNING_OFF}. + */ + public boolean wasCancelled() + { + return this == CANCELLED_FROM_DISCONNECT || this == CANCELLED_FROM_BLE_TURNING_OFF; + } + + /** + * Same as {@link #wasCancelled()}, at least for now, but just being more "explicit", no pun intended. + */ + boolean wasExplicit() + { + return wasCancelled(); + } + + /** + * Whether this reason honors a {@link BleNode.ConnectionFailListener.Please#isRetry()}. Returns <code>false</code> if {@link #wasCancelled()} or + * <code>this</code> is {@link #ALREADY_CONNECTING_OR_CONNECTED}. + */ + public boolean allowsRetry() + { + return !this.wasCancelled() && this != ALREADY_CONNECTING_OR_CONNECTED; + } + + @Override public boolean isNull() + { + return this == NULL; + } + + /** + * Convenience method that returns whether this status is something that your app user would usually care about. + * If this returns <code>true</code> then perhaps you should pop up a {@link android.widget.Toast} or something of that nature. + */ + public boolean shouldBeReportedToUser() + { + return this == SERVER_OPENING_FAILED || + this == NATIVE_CONNECTION_FAILED_IMMEDIATELY || + this == NATIVE_CONNECTION_FAILED_EVENTUALLY || + this == TIMED_OUT; + } + } + + /** + * Structure passed to {@link ConnectionFailListener#onEvent(ConnectionFailEvent)} to provide more info about how/why the connection failed. + */ + @Immutable + public static class ConnectionFailEvent extends BleNode.ConnectionFailListener.ConnectionFailEvent implements UsesCustomNull + { + /** + * The {@link BleServer} this {@link ConnectionFailEvent} is for. + */ + public BleServer server() { return m_server; } + private final BleServer m_server; + + /** + * The native {@link BluetoothDevice} client this {@link ConnectionFailEvent} is for. + */ + public BluetoothDevice nativeDevice() { return m_nativeDevice; } + private final BluetoothDevice m_nativeDevice; + + /** + * Returns the mac address of the client that's undergoing the state change with this {@link #server()}. + */ + public String macAddress() { return m_nativeDevice.getAddress(); } + + /** + * General reason why the connection failed. + */ + public Status status() { return m_status; } + private final Status m_status; + + /** + * Returns a chronologically-ordered list of all {@link ConnectionFailEvent} instances returned through + * {@link ConnectionFailListener#onEvent(ConnectionFailEvent)} since the first call to {@link BleDevice#connect()}, + * including the current instance. Thus this list will always have at least a length of one (except if {@link #isNull()} is <code>true</code>). + * The list length is "reset" back to one whenever a {@link BleDeviceState#CONNECTING_OVERALL} operation completes, either + * through becoming {@link BleDeviceState#INITIALIZED}, or {@link BleDeviceState#DISCONNECTED} for good. + */ + public ConnectionFailEvent[] history() { return m_history; } + private final ConnectionFailEvent[] m_history; + + ConnectionFailEvent(BleServer server, final BluetoothDevice nativeDevice, Status status, int failureCountSoFar, Interval latestAttemptTime, Interval totalAttemptTime, int gattStatus, AutoConnectUsage autoConnectUsage, ArrayList<ConnectionFailEvent> history) + { + super(failureCountSoFar, latestAttemptTime, totalAttemptTime, gattStatus, autoConnectUsage); + + this.m_server = server; + this.m_nativeDevice = nativeDevice; + this.m_status = status; + + if( history == null ) + { + this.m_history = EMPTY_HISTORY(); + } + else + { + this.m_history = new ConnectionFailEvent[history.size()+1]; + for( int i = 0; i < history.size(); i++ ) + { + this.m_history[i] = history.get(i); + } + + this.m_history[this.m_history.length-1] = this; + } + } + + private static ConnectionFailEvent[] s_emptyHistory = null; + /*package*/ static ConnectionFailEvent[] EMPTY_HISTORY() + { + s_emptyHistory = s_emptyHistory != null ? s_emptyHistory : new ConnectionFailEvent[0]; + + return s_emptyHistory; + } + + /*package*/ static ConnectionFailEvent NULL(BleServer server, BluetoothDevice nativeDevice) + { + return new ConnectionFailEvent(server, nativeDevice, Status.NULL, 0, Interval.DISABLED, Interval.DISABLED, BleStatuses.GATT_STATUS_NOT_APPLICABLE, AutoConnectUsage.NOT_APPLICABLE, null); + } + + /*package*/ static ConnectionFailEvent EARLY_OUT(BleServer server, BluetoothDevice nativeDevice, Status status) + { + return new ConnectionFailListener.ConnectionFailEvent(server, nativeDevice, status, 0, Interval.DISABLED, Interval.DISABLED, BleStatuses.GATT_STATUS_NOT_APPLICABLE, AutoConnectUsage.NOT_APPLICABLE, null); + } + + /** + * Returns whether this {@link ConnectionFailEvent} instance is a "dummy" value. For now used for + * {@link BleNodeConfig.ReconnectFilter.ReconnectEvent#connectionFailEvent()} in certain situations. + */ + @Override public boolean isNull() + { + return status().isNull(); + } + + /** + * Forwards {@link BleDevice.ConnectionFailListener.Status#shouldBeReportedToUser()} + * using {@link #status()}. + */ + public boolean shouldBeReportedToUser() + { + return status().shouldBeReportedToUser(); + } + + @Override public String toString() + { + if (isNull()) + { + return Status.NULL.name(); + } + else + { + return Utils_String.toString + ( + this.getClass(), + "server", server(), + "macAddress", macAddress(), + "status", status(), + "gattStatus", server().getManager().getLogger().gattStatus(gattStatus()), + "failureCountSoFar", failureCountSoFar() + ); + } + } + } + + Please onEvent(final ConnectionFailEvent e); + } + + /** + * Default implementation of {@link ConnectionFailListener} that attempts a certain number of retries. An instance of this class is set by default + * for all new {@link BleServer} instances using {@link BleServer.DefaultConnectionFailListener#DEFAULT_CONNECTION_FAIL_RETRY_COUNT}. + * Use {@link BleServer#setListener_ConnectionFail(ConnectionFailListener)} to override the default behavior. + * + * @see ConnectionFailListener + * @see BleServer#setListener_ConnectionFail(ConnectionFailListener) + */ + @Immutable + public static class DefaultConnectionFailListener implements ConnectionFailListener + { + /** + * The default retry count provided to {@link DefaultConnectionFailListener}. + * So if you were to call {@link BleDevice#connect()} and all connections failed, in total the + * library would try to connect {@value #DEFAULT_CONNECTION_FAIL_RETRY_COUNT}+1 times. + * + * @see DefaultConnectionFailListener + */ + public static final int DEFAULT_CONNECTION_FAIL_RETRY_COUNT = 2; + + /** + * The default connection fail limit past which {@link DefaultConnectionFailListener} will start returning {@link BleNode.ConnectionFailListener.Please#retryWithAutoConnectTrue()}. + */ + public static final int DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT = 2; + + /** + * The maximum amount of time to keep trying if connection is failing due to (what usually are) transient bonding failures + */ + public static final Interval MAX_RETRY_TIME_FOR_BOND_FAILURE = Interval.secs(120.0); + + private final int m_retryCount; + private final int m_failCountBeforeUsingAutoConnect; + + public DefaultConnectionFailListener() + { + this(DEFAULT_CONNECTION_FAIL_RETRY_COUNT, DEFAULT_FAIL_COUNT_BEFORE_USING_AUTOCONNECT); + } + + public DefaultConnectionFailListener(int retryCount, int failCountBeforeUsingAutoConnect) + { + m_retryCount = retryCount; + m_failCountBeforeUsingAutoConnect = failCountBeforeUsingAutoConnect; + } + + public int getRetryCount() + { + return m_retryCount; + } + + @Override public Please onEvent(ConnectionFailEvent e) + { + //--- DRK > Not necessary to check this ourselves, just being explicit. + if (!e.status().allowsRetry() ) + { + return Please.doNotRetry(); + } + else if (e.failureCountSoFar() <= m_retryCount) + { + return Please.retry(); + } + else + { + return Please.doNotRetry(); + } + } + } + + /** + * Provide an implementation of this callback to {@link BleServer#setListener_ServiceAdd(ServiceAddListener)}. + * + * @see BleServer#setListener_ServiceAdd(ServiceAddListener) + */ + @com.idevicesinc.sweetblue.annotations.Lambda + public static interface ServiceAddListener + { + /** + * Enumeration of the different ways that service addition can fail (and one way for it to succeed), + * provided through {@link OutgoingListener.OutgoingEvent#status()}. + */ + public static enum Status implements UsesCustomNull + { + /** + * Fulfills the soft contract of {@link UsesCustomNull}. + */ + NULL, + + /** + * Service was added successfully. + */ + SUCCESS, + + /** + * Tried to add a service to {@link BleServer#NULL}. + */ + NULL_SERVER, + + /** + * Tried to add the same service reference twice. + */ + DUPLICATE_SERVICE, + + /** + * Adding this service required that a native {@link BluetoothGattServer} to be created, + * but it could not be created for some reason. + */ + SERVER_OPENING_FAILED, + + /** + * The call to {@link BluetoothGattServer#addService(BluetoothGattService)} returned <code>false</code>. + */ + FAILED_IMMEDIATELY, + + /** + * {@link BluetoothGattServerCallback#onServiceAdded(int, BluetoothGattService)} reported a bad gatt status + * for the service addition, which is provided through {@link OutgoingListener.OutgoingEvent#gattStatus_received()}. + */ + FAILED_EVENTUALLY, + + /** + * Couldn't add the service because the operation took longer than the time dictated by {@link BleNodeConfig#taskTimeoutRequestFilter}. + */ + TIMED_OUT, + + /** + * {@link #removeService(UUID)} or {@link #removeAllServices()} was called before the service could be fully added. + */ + CANCELLED_FROM_REMOVAL, + + /** + * The operation was cancelled because {@link BleServer#disconnect()} was called before the operation completed. + */ + CANCELLED_FROM_DISCONNECT, + + /** + * The operation was cancelled because {@link BleManager} went {@link BleManagerState#TURNING_OFF} and/or + * {@link BleManagerState#OFF}. Note that if the user turns off BLE from their OS settings (airplane mode, etc.) then + * {@link ServiceAddEvent#status()} could potentially be {@link #CANCELLED_FROM_DISCONNECT} because SweetBlue might get + * the disconnect callback before the turning off callback. Basic testing has revealed that this is *not* the case, but you never know. + * <br><br> + * Either way, the device was or will be disconnected. + */ + CANCELLED_FROM_BLE_TURNING_OFF, + + /** + * {@link BleManager} is not {@link BleManagerState#ON} so we can't add a service. + */ + BLE_NOT_ON; + + /** + * Returns true if <code>this</code> equals {@link #SUCCESS}. + */ + public boolean wasSuccess() + { + return this == Status.SUCCESS; + } + + @Override public boolean isNull() + { + return this == NULL; + } + } + + /** + * Event struct passed to {@link #onEvent(ServiceAddEvent)} to give you information about the success + * of a service addition or the reason(s) for its failure. + */ + @Immutable + public static class ServiceAddEvent extends Event + { + /** + * The server to which the service is being added. + */ + public BleServer server() { return m_server; } + private final BleServer m_server; + + /** + * The service being added to {@link #server()}. + */ + public BluetoothGattService service() { return m_service; } + private final BluetoothGattService m_service; + + /** + * Convenience to return the {@link UUID} of {@link #service()}. + */ + public UUID serviceUuid() { return service().getUuid(); } + + /** + * Should only be relevant if {@link #status()} is {@link BleServer.ServiceAddListener.Status#FAILED_EVENTUALLY}. + */ + public int gattStatus() { return m_gattStatus; } + private final int m_gattStatus; + + /** + * Indicates the success or reason for failure for adding the service. + */ + public Status status() { return m_status; } + private final Status m_status; + + /** + * This returns <code>true</code> if this event was the result of an explicit call through SweetBlue, e.g. through + * {@link BleServer#addService(BleService, ServiceAddListener)}. It will return <code>false</code> otherwise, + * which can happen if for example you use {@link BleServer#getNative()} to bypass SweetBlue for whatever reason. + * Another theoretical case is if you make an explicit call through SweetBlue, then you get {@link com.idevicesinc.sweetblue.BleServer.ServiceAddListener.Status#TIMED_OUT}, + * but then the native stack eventually *does* come back with something - this has never been observed, but it is possible. + */ + public boolean solicited() { return m_solicited; } + private final boolean m_solicited; + + /*package*/ ServiceAddEvent(final BleServer server, final BluetoothGattService service, final Status status, final int gattStatus, final boolean solicited) + { + m_server = server; + m_service = service; + m_status = status; + m_gattStatus = gattStatus; + m_solicited = solicited; + } + + /** + * Convenience forwarding of {@link BleServer.ServiceAddListener.Status#wasSuccess()}. + */ + public boolean wasSuccess() + { + return status().wasSuccess(); + } + + /*package*/ static ServiceAddEvent NULL(BleServer server, BluetoothGattService service) + { + return EARLY_OUT(server, service, Status.NULL); + } + + /*package*/ static ServiceAddEvent EARLY_OUT(BleServer server, BluetoothGattService service, Status status) + { + return new ServiceAddEvent(server, service, status, BleStatuses.GATT_STATUS_NOT_APPLICABLE, /*solicited=*/true); + } + + public String toString() + { + return Utils_String.toString + ( + this.getClass(), + "status", status(), + "service", server().getManager().getLogger().serviceName(service().getUuid()), + "gattStatus", server().getManager().getLogger().gattStatus(gattStatus()) + ); + } + } + + /** + * Called when a service has finished being added or failed to be added. + */ + void onEvent(final ServiceAddEvent e); + } + + private static final OutgoingListener NULL_OUTGOING_LISTENER = new OutgoingListener() + { + @Override public void onEvent(OutgoingEvent e) + { + } + }; + + private final P_ServerStateTracker m_stateTracker; + final P_BleServer_Listeners m_listeners; + final P_NativeServerWrapper m_nativeWrapper; + private AdvertisingListener m_advertisingListener; + private IncomingListener m_incomingListener; + private OutgoingListener m_outgoingListener_default; + private final boolean m_isNull; + private BleNodeConfig m_config = null; + private final P_ServerConnectionFailManager m_connectionFailMngr; + private final P_ClientManager m_clientMngr; + + /*package*/ BleServer(final BleManager mngr, final boolean isNull) + { + super(mngr); + + m_isNull = isNull; + + if( isNull ) + { + m_stateTracker = new P_ServerStateTracker(this); + m_listeners = null; + m_nativeWrapper = new P_NativeServerWrapper(this); + m_connectionFailMngr = new P_ServerConnectionFailManager(this); + m_clientMngr = new P_ClientManager(this); + } + else + { + m_stateTracker = new P_ServerStateTracker(this); + m_listeners = new P_BleServer_Listeners(this); + m_nativeWrapper = new P_NativeServerWrapper(this); + m_connectionFailMngr = new P_ServerConnectionFailManager(this); + m_clientMngr = new P_ClientManager(this); + } + } + + @Override protected PA_ServiceManager newServiceManager() + { + return new P_ServerServiceManager(this); + } + + /** + * Optionally sets overrides for any custom options given to {@link BleManager#get(android.content.Context, BleManagerConfig)} + * for this individual server. + */ + public void setConfig(final BleNodeConfig config_nullable) + { + final boolean allowAllThreads = BleDeviceConfig.bool(config_nullable != null ? config_nullable.allowCallsFromAllThreads : null, conf_mngr().allowCallsFromAllThreads); + + if( false == allowAllThreads ) + { + Utils.enforceMainThread(BleNodeConfig.WRONG_THREAD_MESSAGE); + } + + m_config = config_nullable; + } + + @Override /*package*/ BleNodeConfig conf_node() + { + return m_config != null ? m_config : conf_mngr(); + } + + /** + * Set a listener here to be notified whenever this server's state changes in relation to a specific client. + */ + public void setListener_State(@Nullable(Nullable.Prevalence.NORMAL) final BleServer.StateListener listener_nullable) + { + enforceMainThread(); + + m_stateTracker.setListener(listener_nullable); + } + + /** + * Set a listener here to override any listener provided previously. + */ + public void setListener_Incoming(@Nullable(Nullable.Prevalence.NORMAL) final IncomingListener listener_nullable) + { + enforceMainThread(); + + m_incomingListener = listener_nullable; + } + + /** + * Set a listener here to override any listener provided previously and provide a default backup that will be called + * after any listener provided to {@link #addService(BleService, ServiceAddListener)}. + */ + public void setListener_ServiceAdd(@Nullable(Nullable.Prevalence.NORMAL) final ServiceAddListener listener_nullable) + { + enforceMainThread(); + + serviceMngr_server().setListener(listener_nullable); + } + + public void setListener_Advertising(@Nullable(Nullable.Prevalence.NORMAL) final AdvertisingListener listener_nullable) + { + enforceMainThread(); + + m_advertisingListener = listener_nullable; + } + + public @Nullable(Nullable.Prevalence.RARE) + AdvertisingListener getListener_Advertise() + { + enforceMainThread(); + + return m_advertisingListener; + } + + /** + * Returns the listener provided to {@link #setListener_Incoming(IncomingListener)}. + */ + public @Nullable(Nullable.Prevalence.RARE) IncomingListener getListener_Incoming() + { + enforceMainThread(); + + return m_incomingListener; + } + + /** + * This is a default catch-all convenience listener that will be called after any listener provided through + * the static methods of {@link BleServer.IncomingListener.Please} such as {@link BleServer.IncomingListener.Please#respondWithSuccess(BleServer.OutgoingListener)}. + * + * @see BleManager#setListener_Outgoing(BleServer.OutgoingListener) + */ + public void setListener_Outgoing(final OutgoingListener listener) + { + enforceMainThread(); + + m_outgoingListener_default = listener; + } + + /** + * Set a listener here to override any listener provided previously. + */ + public void setListener_ConnectionFail(final ConnectionFailListener listener) + { + enforceMainThread(); + + m_connectionFailMngr.setListener(listener); + } + + /** + * Overload of {@link #sendIndication(String, UUID, UUID, FutureData, OutgoingListener)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) OutgoingListener.OutgoingEvent sendIndication(final String macAddress, UUID charUuid, byte[] data) + { + return sendIndication(macAddress, null, charUuid, data, (OutgoingListener) null); + } + + /** + * Overload of {@link #sendIndication(String, UUID, UUID, FutureData, OutgoingListener)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) OutgoingListener.OutgoingEvent sendIndication(final String macAddress, UUID charUuid, byte[] data, OutgoingListener listener) + { + return sendIndication(macAddress, (UUID) null, charUuid, data, listener); + } + + /** + * Overload of {@link #sendIndication(String, UUID, UUID, FutureData, OutgoingListener)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) OutgoingListener.OutgoingEvent sendIndication(final String macAddress, UUID serviceUuid, UUID charUuid, byte[] data) + { + return sendIndication(macAddress, serviceUuid, charUuid, data, (OutgoingListener) null); + } + + /** + * Overload of {@link #sendIndication(String, UUID, UUID, FutureData, OutgoingListener)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) OutgoingListener.OutgoingEvent sendIndication(final String macAddress, UUID serviceUuid, UUID charUuid, byte[] data, OutgoingListener listener) + { + return sendIndication(macAddress, serviceUuid, charUuid, new PresentData(data), listener); + } + + /** + * Overload of {@link #sendIndication(String, UUID, UUID, FutureData, OutgoingListener)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) OutgoingListener.OutgoingEvent sendIndication(final String macAddress, final UUID charUuid, final FutureData futureData) + { + return sendIndication(macAddress, null, charUuid, futureData, (OutgoingListener) null); + } + + /** + * Overload of {@link #sendIndication(String, UUID, UUID, FutureData, OutgoingListener)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) OutgoingListener.OutgoingEvent sendIndication(final String macAddress, final UUID charUuid, final FutureData futureData, OutgoingListener listener) + { + return sendIndication(macAddress, (UUID) null, charUuid, futureData, listener); + } + + /** + * Overload of {@link #sendIndication(String, UUID, UUID, FutureData, OutgoingListener)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) OutgoingListener.OutgoingEvent sendIndication(final String macAddress, final UUID serviceUuid, final UUID charUuid, final FutureData futureData) + { + return sendIndication(macAddress, serviceUuid, charUuid, futureData, (OutgoingListener) null); + } + + /** + * Same as {@link #sendNotification(String, UUID, UUID, FutureData, OutgoingListener)} but sends an indication instead. + */ + public @Nullable(Nullable.Prevalence.NEVER) OutgoingListener.OutgoingEvent sendIndication(final String macAddress, UUID serviceUuid, UUID charUuid, final FutureData futureData, OutgoingListener listener) + { + return sendNotification_private(macAddress, serviceUuid, charUuid, futureData, listener, /*isIndication=*/true); + } + + /** + * Overload of {@link #sendNotification(String, UUID, UUID, FutureData, OutgoingListener)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) OutgoingListener.OutgoingEvent sendNotification(final String macAddress, UUID charUuid, byte[] data) + { + return sendNotification(macAddress, null, charUuid, data, (OutgoingListener) null); + } + + /** + * Overload of {@link #sendNotification(String, UUID, UUID, FutureData, OutgoingListener)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) OutgoingListener.OutgoingEvent sendNotification(final String macAddress, UUID charUuid, byte[] data, OutgoingListener listener) + { + return sendNotification(macAddress, (UUID) null, charUuid, data, listener); + } + + /** + * Overload of {@link #sendNotification(String, UUID, UUID, FutureData, OutgoingListener)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) OutgoingListener.OutgoingEvent sendNotification(final String macAddress, UUID serviceUuid, UUID charUuid, byte[] data) + { + return sendNotification(macAddress, serviceUuid, charUuid, data, (OutgoingListener) null); + } + + /** + * Overload of {@link #sendNotification(String, UUID, UUID, FutureData, OutgoingListener)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) OutgoingListener.OutgoingEvent sendNotification(final String macAddress, UUID serviceUuid, UUID charUuid, byte[] data, OutgoingListener listener) + { + return sendNotification(macAddress, serviceUuid, charUuid, new PresentData(data), listener); + } + + /** + * Overload of {@link #sendNotification(String, UUID, UUID, FutureData, OutgoingListener)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) OutgoingListener.OutgoingEvent sendNotification(final String macAddress, final UUID charUuid, final FutureData futureData) + { + return sendNotification(macAddress, null, charUuid, futureData, (OutgoingListener) null); + } + + /** + * Overload of {@link #sendNotification(String, UUID, UUID, FutureData, OutgoingListener)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) OutgoingListener.OutgoingEvent sendNotification(final String macAddress, final UUID charUuid, final FutureData futureData, OutgoingListener listener) + { + return sendNotification(macAddress, (UUID) null, charUuid, futureData, listener); + } + + /** + * Overload of {@link #sendNotification(String, UUID, UUID, FutureData, OutgoingListener)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) OutgoingListener.OutgoingEvent sendNotification(final String macAddress, final UUID serviceUuid, final UUID charUuid, final FutureData futureData) + { + return sendNotification(macAddress, serviceUuid, charUuid, futureData, (OutgoingListener) null); + } + + /** + * Use this method to send a notification to the client device with the given mac address to the given characteristic {@link UUID}. + * If there is any kind of "early-out" issue then this method will return a {@link OutgoingListener.OutgoingEvent} in addition + * to passing it through the listener. Otherwise this method will return an instance with {@link OutgoingListener.OutgoingEvent#isNull()} being + * <code>true</code>. + */ + public @Nullable(Nullable.Prevalence.NEVER) OutgoingListener.OutgoingEvent sendNotification(final String macAddress, UUID serviceUuid, UUID charUuid, final FutureData futureData, OutgoingListener listener) + { + return sendNotification_private(macAddress, serviceUuid, charUuid, futureData, listener, /*isIndication=*/false); + } + + private OutgoingListener.OutgoingEvent sendNotification_private(final String macAddress, final UUID serviceUuid, final UUID charUuid, final FutureData futureData, final OutgoingListener listener, final boolean isIndication) + { + enforceMainThread(); + + final String macAddress_normalized = getManager().normalizeMacAddress(macAddress); + + final BluetoothDevice nativeDevice = newNativeDevice(macAddress_normalized); + + if( isNull() ) + { + final OutgoingListener.OutgoingEvent e = OutgoingListener.OutgoingEvent.EARLY_OUT__NOTIFICATION(this, nativeDevice, serviceUuid, charUuid, futureData, OutgoingListener.Status.NULL_SERVER); + + invokeOutgoingListeners(e, listener); + + return e; + } + + if( !is(macAddress_normalized, CONNECTED ) ) + { + final OutgoingListener.OutgoingEvent e = OutgoingListener.OutgoingEvent.EARLY_OUT__NOTIFICATION(this, nativeDevice, serviceUuid, charUuid, futureData, OutgoingListener.Status.NOT_CONNECTED); + + invokeOutgoingListeners(e, listener); + + return e; + } + + final BluetoothGattCharacteristic char_native = getNativeCharacteristic(serviceUuid, charUuid); + + if( char_native == null ) + { + final OutgoingListener.OutgoingEvent e = OutgoingListener.OutgoingEvent.EARLY_OUT__NOTIFICATION(this, nativeDevice, serviceUuid, charUuid, futureData, OutgoingListener.Status.NO_MATCHING_TARGET); + + invokeOutgoingListeners(e, listener); + + return e; + } + + final boolean confirm = isIndication; + final P_Task_SendNotification task = new P_Task_SendNotification(this, nativeDevice, serviceUuid, charUuid, futureData, confirm, listener); + queue().add(task); + + return OutgoingListener.OutgoingEvent.NULL__NOTIFICATION(this, nativeDevice, serviceUuid, charUuid); + } + + /** + * Checks to see if the device is running an Android OS which supports + * advertising. This is forwarded from {@link BleManager#isAdvertisingSupportedByAndroidVersion()}. + */ + public boolean isAdvertisingSupportedByAndroidVersion() + { + return getManager().isAdvertisingSupportedByAndroidVersion(); + } + + /** + * Checks to see if the device supports advertising. This is forwarded from {@link BleManager#isAdvertisingSupportedByChipset()}. + */ + public boolean isAdvertisingSupportedByChipset() + { + return getManager().isAdvertisingSupportedByChipset(); + } + + /** + * Checks to see if the device supports advertising BLE services. This is forwarded from {@link BleManager#isAdvertisingSupported()}. + */ + public boolean isAdvertisingSupported() + { + return getManager().isAdvertisingSupported(); + } + + /** + * Checks to see if the device is currently advertising. + */ + public boolean isAdvertising() + { + enforceMainThread(); + + return getManager().getTaskQueue().isCurrentOrInQueue(P_Task_Advertise.class, getManager()); + } + + /** + * Checks to see if the device is currently advertising the given {@link UUID}. + */ + public boolean isAdvertising(UUID serviceUuid) + { + enforceMainThread(); + + if (Utils.isLollipop()) + { + P_Task_Advertise adtask = getManager().getTaskQueue().get(P_Task_Advertise.class, getManager()); + if (adtask != null) + { + return adtask.getPacket().hasUuid(serviceUuid); + } + } + return false; + } + + /** + * Overload of {@link #startAdvertising(BleAdvertisingPacket)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) AdvertisingListener.AdvertisingEvent startAdvertising(UUID serviceUuid) + { + return startAdvertising(new BleAdvertisingPacket(serviceUuid)); + } + + /** + * Overload of {@link #startAdvertising(BleAdvertisingPacket, AdvertisingListener)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) AdvertisingListener.AdvertisingEvent startAdvertising(UUID serviceUuid, AdvertisingListener listener) + { + return startAdvertising(new BleAdvertisingPacket(serviceUuid), listener); + } + + /** + * Overload of {@link #startAdvertising(BleAdvertisingPacket)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) AdvertisingListener.AdvertisingEvent startAdvertising(UUID[] serviceUuids) + { + return startAdvertising(new BleAdvertisingPacket(serviceUuids)); + } + + /** + * Overload of {@link #startAdvertising(BleAdvertisingPacket, AdvertisingListener)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) AdvertisingListener.AdvertisingEvent startAdvertising(UUID[] serviceUuids, AdvertisingListener listener) + { + return startAdvertising(new BleAdvertisingPacket(serviceUuids), listener); + } + + /** + * Overload of {@link #startAdvertising(BleAdvertisingPacket)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) AdvertisingListener.AdvertisingEvent startAdvertising(UUID serviceUuid, byte[] serviceData) + { + return startAdvertising(new BleAdvertisingPacket(serviceUuid, serviceData)); + } + + /** + * Overload of {@link #startAdvertising(BleAdvertisingPacket)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) AdvertisingListener.AdvertisingEvent startAdvertising(UUID serviceUuid, byte[] serviceData, BleAdvertisingPacket.Option... options) + { + return startAdvertising(new BleAdvertisingPacket(serviceUuid, serviceData, options)); + } + + /** + * Overload of {@link #startAdvertising(BleAdvertisingPacket)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) AdvertisingListener.AdvertisingEvent startAdvertising(UUID serviceUuid, BleAdvertisingPacket.Option... options) + { + return startAdvertising(new BleAdvertisingPacket(serviceUuid, options)); + } + + /** + * Overload of {@link #startAdvertising(BleAdvertisingPacket)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) AdvertisingListener.AdvertisingEvent startAdvertising(UUID[] serviceUuids, BleAdvertisingPacket.Option... options) + { + return startAdvertising(new BleAdvertisingPacket(serviceUuids, options)); + } + + /** + * Overload of {@link #startAdvertising(BleAdvertisingPacket, BleAdvertisingSettings, AdvertisingListener)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) AdvertisingListener.AdvertisingEvent startAdvertising(UUID serviceUuid, BleAdvertisingSettings settings, AdvertisingListener listener) + { + return startAdvertising(new BleAdvertisingPacket(serviceUuid), settings, listener); + } + + /** + * Overload of {@link #startAdvertising(BleAdvertisingPacket, BleAdvertisingSettings, AdvertisingListener)}. + */ + public @Nullable(Nullable.Prevalence.NEVER) AdvertisingListener.AdvertisingEvent startAdvertising(UUID[] serviceUuids, BleAdvertisingSettings settings, AdvertisingListener listener) + { + return startAdvertising(new BleAdvertisingPacket(serviceUuids), settings, listener); + } + + /** + * Overload of {@link #startAdvertising(BleAdvertisingPacket, BleAdvertisingSettings, AdvertisingListener)}. This sets + * the {@link BleAdvertisingMode} to {@link BleAdvertisingMode#AUTO}, and {@link BleTransmissionPower} to {@link BleTransmissionPower#MEDIUM}, and + * no timeout for the advertisement. + */ + public @Nullable(Nullable.Prevalence.NEVER) AdvertisingListener.AdvertisingEvent startAdvertising(BleAdvertisingPacket advPacket) + { + return startAdvertising(advPacket, null); + } + + /** + * Overload of {@link #startAdvertising(BleAdvertisingPacket, BleAdvertisingSettings, AdvertisingListener)}. This sets + * the {@link BleAdvertisingMode} to {@link BleAdvertisingMode#AUTO}, and {@link BleTransmissionPower} to {@link BleTransmissionPower#MEDIUM}, and + * no timeout for the advertisement. + */ + public @Nullable(Nullable.Prevalence.NEVER) AdvertisingListener.AdvertisingEvent startAdvertising(BleAdvertisingPacket advPacket, AdvertisingListener listener) + { + return startAdvertising(advPacket, new BleAdvertisingSettings(BleAdvertisingMode.AUTO, BleTransmissionPower.MEDIUM, Interval.ZERO), listener); + } + + /** + * Starts advertising serviceUuids with the information supplied in {@link BleAdvertisingPacket}. Note that this will + * only work for devices on Lollipop, or above. Even then, not every device supports advertising. Use + * {@link BleManager#isAdvertisingSupported()} to check to see if the phone supports it. + */ + public @Nullable(Nullable.Prevalence.NEVER) AdvertisingListener.AdvertisingEvent startAdvertising(BleAdvertisingPacket advertisePacket, BleAdvertisingSettings settings, AdvertisingListener listener) + { + enforceMainThread(); + + if (isNull()) + { + getManager().getLogger().e(BleServer.class.getSimpleName() + " is null!"); + + return new AdvertisingListener.AdvertisingEvent(this, AdvertisingListener.Status.NULL_SERVER); + } + + if (!isAdvertisingSupportedByAndroidVersion()) + { + getManager().getLogger().e("Advertising NOT supported on android OS's less than Lollipop!"); + + return new AdvertisingListener.AdvertisingEvent(this, AdvertisingListener.Status.ANDROID_VERSION_NOT_SUPPORTED); + } + + if (!isAdvertisingSupportedByChipset()) + { + getManager().getLogger().e("Advertising NOT supported by current device's chipset!"); + + return new AdvertisingListener.AdvertisingEvent(this, AdvertisingListener.Status.CHIPSET_NOT_SUPPORTED); + } + + if (!getManager().is(BleManagerState.ON)) + { + getManager().getLogger().e(BleManager.class.getSimpleName() + " is not " + ON + "! Please use the turnOn() method first."); + + return new AdvertisingListener.AdvertisingEvent(this, AdvertisingListener.Status.BLE_NOT_ON); + } + + final P_Task_Advertise adTask = getManager().getTaskQueue().get(P_Task_Advertise.class, getManager()); + if (adTask != null) + { + getManager().getLogger().w(BleServer.class.getSimpleName() + " is already advertising!"); + + return new AdvertisingListener.AdvertisingEvent(this, AdvertisingListener.Status.ALREADY_STARTED); + } + else + { + getManager().ASSERT(!getManager().getTaskQueue().isCurrentOrInQueue(P_Task_Advertise.class, getManager())); + + getManager().getTaskQueue().add(new P_Task_Advertise(this, advertisePacket, settings, listener)); + return new AdvertisingListener.AdvertisingEvent(this, AdvertisingListener.Status.NULL); + } + } + + /** + * Stops the server from advertising. + */ + public void stopAdvertising() + { + enforceMainThread(); + + if (Utils.isLollipop()) + { + + final P_Task_Advertise adTask = getManager().getTaskQueue().get(P_Task_Advertise.class, getManager()); + if (adTask != null) + { + adTask.stopAdvertising(); + adTask.clearFromQueue(); + } + getManager().ASSERT(!getManager().getTaskQueue().isCurrentOrInQueue(P_Task_Advertise.class, getManager())); + } + } + + /** + * Provides just-in-case lower-level access to the native server instance. + * See similar warning for {@link BleDevice#getNative()}. + */ + @Advanced + public @Nullable(Nullable.Prevalence.RARE) BluetoothGattServer getNative() + { + enforceMainThread(); + + return m_nativeWrapper.getNative(); + } + + /** + * Returns the bitwise state mask representation of {@link BleServerState} for the given client mac address. + * + * @see BleServerState + */ + @Advanced + public int getStateMask(final String macAddress) + { + enforceMainThread(); + + final String macAddress_normalized = getManager().normalizeMacAddress(macAddress); + + return m_stateTracker.getStateMask(macAddress_normalized); + } + + /** + * Returns <code>true</code> if there is any bitwise overlap between the provided value and {@link #getStateMask(String)}. + * + * @see #isAll(String, int) + */ + public boolean isAny(final String macAddress, final int mask_BleServerState) + { + return (getStateMask(macAddress) & mask_BleServerState) != 0x0; + } + + /** + * Returns <code>true</code> if there is complete bitwise overlap between the provided value and {@link #getStateMask(String)}. + * + * @see #isAny(String, int) + * + */ + public boolean isAll(final String macAddress, final int mask_BleServerState) + { + return (getStateMask(macAddress) & mask_BleServerState) == mask_BleServerState; + } + + /** + * Returns true if the given client is in the state provided. + */ + public boolean is(final String macAddress, final BleServerState state) + { + return state.overlaps(getStateMask(macAddress)); + } + + /** + * Returns true if the given client is in any of the states provided. + */ + public boolean isAny(final String macAddress, final BleServerState ... states ) + { + final int stateMask = getStateMask(macAddress); + + for( int i = 0; i < states.length; i++ ) + { + if( states[i].overlaps(stateMask) ) return true; + } + + return false; + } + + /** + * Overload of {@link #connect(String, StateListener, ConnectionFailListener)} with no listeners. + */ + public ConnectionFailListener.ConnectionFailEvent connect(final String macAddress) + { + return connect(macAddress, null, null); + } + + /** + * Overload of {@link #connect(String, StateListener, ConnectionFailListener)} with only one listener. + */ + public ConnectionFailListener.ConnectionFailEvent connect(final String macAddress, final StateListener stateListener) + { + return connect(macAddress, stateListener, null); + } + + /** + * Overload of {@link #connect(String, StateListener, ConnectionFailListener)} with only one listener. + */ + public ConnectionFailListener.ConnectionFailEvent connect(final String macAddress, final ConnectionFailListener connectionFailListener) + { + return connect(macAddress, null, connectionFailListener); + } + + /** + * Connect to the given client mac address and provided listeners that are shorthand for calling {@link #setListener_State(StateListener)} + * {@link #setListener_ConnectionFail(ConnectionFailListener)}. + */ + public ConnectionFailListener.ConnectionFailEvent connect(final String macAddress, final StateListener stateListener, final ConnectionFailListener connectionFailListener) + { + final String macAddress_normalized = getManager().normalizeMacAddress(macAddress); + + return connect_internal(newNativeDevice(macAddress_normalized), stateListener, connectionFailListener); + } + + /*package*/ ConnectionFailListener.ConnectionFailEvent connect_internal(final BluetoothDevice nativeDevice) + { + return connect_internal(nativeDevice, null, null); + } + + /*package*/ ConnectionFailListener.ConnectionFailEvent connect_internal(final BluetoothDevice nativeDevice, final StateListener stateListener, final ConnectionFailListener connectionFailListener) + { + enforceMainThread(); + + m_nativeWrapper.clearImplicitDisconnectIgnoring(nativeDevice.getAddress()); + + if( stateListener != null ) + { + setListener_State(stateListener); + } + + if( connectionFailListener != null ) + { + setListener_ConnectionFail(connectionFailListener); + } + + if( isNull() ) + { + final ConnectionFailListener.ConnectionFailEvent e = ConnectionFailListener.ConnectionFailEvent.EARLY_OUT(this, nativeDevice, ConnectionFailListener.Status.NULL_SERVER); + + m_connectionFailMngr.invokeCallback(e); + + return e; + } + + m_connectionFailMngr.onExplicitConnectionStarted(nativeDevice.getAddress()); + + if( isAny(nativeDevice.getAddress(), CONNECTING, CONNECTED) ) + { + final ConnectionFailListener.ConnectionFailEvent e = ConnectionFailListener.ConnectionFailEvent.EARLY_OUT(this, nativeDevice, ConnectionFailListener.Status.ALREADY_CONNECTING_OR_CONNECTED); + + m_connectionFailMngr.invokeCallback(e); + + return e; + } + + m_clientMngr.onConnecting(nativeDevice.getAddress()); + + final P_Task_ConnectServer task = new P_Task_ConnectServer(this, nativeDevice, m_listeners.m_taskStateListener, /*explicit=*/true, PE_TaskPriority.FOR_EXPLICIT_BONDING_AND_CONNECTING); + queue().add(task); + + m_stateTracker.doStateTransition(nativeDevice.getAddress(), BleServerState.DISCONNECTED /* ==> */, BleServerState.CONNECTING, ChangeIntent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + + return ConnectionFailListener.ConnectionFailEvent.NULL(this, nativeDevice); + } + + private BluetoothDevice newNativeDevice(final String macAddress) + { + final BleManager mngr = getManager(); + + return mngr == null ? null : mngr.newNativeDevice(macAddress); + } + + public boolean disconnect(final String macAddress) + { + final String macAddress_normalized = getManager().normalizeMacAddress(macAddress); + + return disconnect_private(macAddress_normalized, ConnectionFailListener.Status.CANCELLED_FROM_DISCONNECT, ChangeIntent.INTENTIONAL); + } + + private boolean disconnect_private(final String macAddress, final ConnectionFailListener.Status status_connectionFail, final ChangeIntent intent) + { + enforceMainThread(); + + final boolean addTask = true; + + m_connectionFailMngr.onExplicitDisconnect(macAddress); + + if( is(macAddress, DISCONNECTED) ) return false; + + final BleServerState oldConnectionState = m_stateTracker.getOldConnectionState(macAddress); + + final BluetoothDevice nativeDevice = newNativeDevice(macAddress); + + if( addTask ) + { + //--- DRK > Purposely doing explicit=true here without regarding the intent. + final boolean explicit = true; + final P_Task_DisconnectServer task = new P_Task_DisconnectServer(this, nativeDevice, m_listeners.m_taskStateListener, /*explicit=*/true, PE_TaskPriority.FOR_EXPLICIT_BONDING_AND_CONNECTING); + queue().add(task); + } + + m_stateTracker.doStateTransition(macAddress, oldConnectionState /* ==> */, BleServerState.DISCONNECTED, intent, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + + if( oldConnectionState == CONNECTING ) + { + m_connectionFailMngr.onNativeConnectFail(nativeDevice, status_connectionFail, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + + return true; + } + + /*package*/ void disconnect_internal(final ServiceAddListener.Status status_serviceAdd, final ConnectionFailListener.Status status_connectionFail, final ChangeIntent intent) + { + enforceMainThread(); + + stopAdvertising(); + + getClients(new ForEach_Void<String>() + { + @Override public void next(final String next) + { + disconnect_private(next, status_connectionFail, intent); + + m_nativeWrapper.ignoreNextImplicitDisconnect(next); + } + + }, CONNECTING, CONNECTED); + + m_nativeWrapper.closeServer(); + + serviceMngr_server().removeAll(status_serviceAdd); + } + + /** + * Disconnects this server completely, disconnecting all connected clients and shutting things down. + * To disconnect individual clients use {@link #disconnect(String)}. + */ + public void disconnect() + { + disconnect_internal(ServiceAddListener.Status.CANCELLED_FROM_DISCONNECT, ConnectionFailListener.Status.CANCELLED_FROM_DISCONNECT, ChangeIntent.INTENTIONAL); + } + + @Override public boolean isNull() + { + return m_isNull; + } + + /*package*/ void onNativeConnecting_implicit(final String macAddress) + { + m_clientMngr.onConnecting(macAddress); + + m_stateTracker.doStateTransition(macAddress, BleServerState.DISCONNECTED /* ==> */, BleServerState.CONNECTING, ChangeIntent.UNINTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + + /*package*/ void onNativeConnect(final String macAddress, final boolean explicit) + { + m_clientMngr.onConnected(macAddress); + + final ChangeIntent intent = explicit ? ChangeIntent.INTENTIONAL : ChangeIntent.UNINTENTIONAL; + + //--- DRK > Testing and source code inspection reveals that it's impossible for the native stack to report server->client CONNECTING. + //--- In other words for both implicit and explicit connects it always jumps from DISCONNECTED to CONNECTED. + //--- For explicit connects through SweetBlue we can thus fake the CONNECTING state cause we know a task was in the queue, etc. + //--- For implicit connects the decision is made here to reflect what happens in the native stack, cause as far as SweetBlue + //--- is concerned we were never in the CONNECTING state either. + final BleServerState previousState = explicit ? BleServerState.CONNECTING : BleServerState.DISCONNECTED; + + m_stateTracker.doStateTransition(macAddress, previousState /* ==> */, BleServerState.CONNECTED, intent, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + + /*package*/ void onNativeConnectFail(final BluetoothDevice nativeDevice, final ConnectionFailListener.Status status, final int gattStatus) + { + if( status == ConnectionFailListener.Status.TIMED_OUT ) + { + final P_Task_DisconnectServer task = new P_Task_DisconnectServer(this, nativeDevice, m_listeners.m_taskStateListener, /*explicit=*/true, PE_TaskPriority.FOR_EXPLICIT_BONDING_AND_CONNECTING); + queue().add(task); + } + + m_stateTracker.doStateTransition(nativeDevice.getAddress(), BleServerState.CONNECTING /* ==> */, BleServerState.DISCONNECTED, ChangeIntent.UNINTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + + m_connectionFailMngr.onNativeConnectFail(nativeDevice, status, gattStatus); + } + + /*package*/ void onNativeDisconnect( final String macAddress, final boolean explicit, final int gattStatus) + { + final boolean ignore = m_nativeWrapper.shouldIgnoreImplicitDisconnect(macAddress); + + if( explicit == false && ignore == false ) + { + m_stateTracker.doStateTransition(macAddress, BleServerState.CONNECTED /* ==> */, BleServerState.DISCONNECTED, ChangeIntent.UNINTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + else + { + // explicit case gets handled immediately by the disconnect method. + } + } + + void invokeAdvertiseListeners(AdvertisingListener.Status result, AdvertisingListener listener) + { + final AdvertisingListener.AdvertisingEvent event = new AdvertisingListener.AdvertisingEvent(this, result); + if (listener != null) + { + listener.onEvent(event); + } + if (m_advertisingListener != null) + { + m_advertisingListener.onEvent(event); + } + if (getManager().m_advertisingListener != null) + { + getManager().m_advertisingListener.onEvent(event); + } + } + + /** + * Does a referential equality check on the two servers. + */ + public boolean equals(@Nullable(Nullable.Prevalence.NORMAL) final BleServer server_nullable) + { + enforceMainThread(); + + if (server_nullable == null) return false; + if (server_nullable == this) return true; + if (server_nullable.getNative() == null || this.getNative() == null) return false; + if( this.isNull() && server_nullable.isNull() ) return true; + + return server_nullable == this; + } + + /** + * Returns {@link #equals(BleServer)} if object is an instance of {@link BleServer}. Otherwise calls super. + * + * @see BleServer#equals(BleServer) + */ + @Override public boolean equals(@Nullable(Nullable.Prevalence.NORMAL) final Object object_nullable) + { + enforceMainThread(); + + if( object_nullable == null ) return false; + + if (object_nullable instanceof BleServer) + { + final BleServer object_cast = (BleServer) object_nullable; + + return this.equals(object_cast); + } + + return false; + } + + /*package*/ void invokeOutgoingListeners(final OutgoingListener.OutgoingEvent e, final OutgoingListener listener_specific_nullable) + { + if( listener_specific_nullable != null ) + { + listener_specific_nullable.onEvent(e); + } + + if( m_outgoingListener_default != null ) + { + m_outgoingListener_default.onEvent(e); + } + + if( getManager().m_defaultServerOutgoingListener != null ) + { + getManager().m_defaultServerOutgoingListener.onEvent(e); + } + } + + /** + * Overload of {@link #addService(BleService, ServiceAddListener)} without the listener. + */ + public @Nullable(Nullable.Prevalence.NEVER) ServiceAddListener.ServiceAddEvent addService(final BleService service) + { + return this.addService(service, null); + } + + /** + * Starts the process of adding a service to this server. The provided listener will be called when the service is added or there is a problem. + */ + public @Nullable(Nullable.Prevalence.NEVER) ServiceAddListener.ServiceAddEvent addService(final BleService service, final ServiceAddListener listener) + { + enforceMainThread(); + + return serviceMngr_server().addService(service, listener); + } + + /** + * Remove any service previously provided to {@link #addService(BleService, ServiceAddListener)} or overloads. This can be safely called + * even if the call to {@link #addService(BleService, ServiceAddListener)} hasn't resulted in a callback to the provided listener yet, in which + * case it will be called with {@link BleServer.ServiceAddListener.Status#CANCELLED_FROM_REMOVAL}. + */ + public @Nullable(Nullable.Prevalence.NORMAL) BluetoothGattService removeService(final UUID serviceUuid) + { + enforceMainThread(); + + return serviceMngr_server().remove(serviceUuid); + } + + /** + * Convenience to remove all services previously added with {@link #addService(BleService, ServiceAddListener)} (or overloads). This is slightly more performant too. + */ + public void removeAllServices() + { + enforceMainThread(); + + serviceMngr_server().removeAll(ServiceAddListener.Status.CANCELLED_FROM_REMOVAL); + } + + /** + * Offers a more "functional" means of iterating through the internal list of clients instead of + * using {@link #getClients()} or {@link #getClients_List()}. + */ + public void getClients(final ForEach_Void<String> forEach) + { + enforceMainThread(); + + m_clientMngr.getClients(forEach, 0x0); + } + + /** + * Same as {@link #getClients(ForEach_Void)} but will only return clients + * in the given state provided. + */ + public void getClients(final ForEach_Void<String> forEach, final BleServerState state) + { + enforceMainThread(); + + m_clientMngr.getClients(forEach, state.bit()); + } + + /** + * Same as {@link #getClients(ForEach_Void)} but will only return clients + * in any of the given states provided. + */ + public void getClients(final ForEach_Void<String> forEach, final BleServerState ... states) + { + enforceMainThread(); + + m_clientMngr.getClients(forEach, BleServerState.toBits(states)); + } + + /** + * Overload of {@link #getClients(ForEach_Void)} + * if you need to break out of the iteration at any point. + */ + public void getClients(final ForEach_Breakable<String> forEach) + { + enforceMainThread(); + + m_clientMngr.getClients(forEach, 0x0); + } + + /** + * Overload of {@link #getClients(ForEach_Void, BleServerState)} + * if you need to break out of the iteration at any point. + */ + public void getClients(final ForEach_Breakable<String> forEach, final BleServerState state) + { + enforceMainThread(); + + m_clientMngr.getClients(forEach, state.bit()); + } + + /** + * Same as {@link #getClients(ForEach_Breakable)} but will only return clients + * in any of the given states provided. + */ + public void getClients(final ForEach_Breakable<String> forEach, final BleServerState ... states) + { + enforceMainThread(); + + m_clientMngr.getClients(forEach, BleServerState.toBits(states)); + } + + /** + * Returns all the clients connected or connecting (or previously so) to this server. + */ + public @Nullable(Nullable.Prevalence.NEVER) Iterator<String> getClients() + { + enforceMainThread(); + + return m_clientMngr.getClients(0x0); + } + + /** + * Returns all the clients connected or connecting (or previously so) to this server. + */ + public @Nullable(Nullable.Prevalence.NEVER) Iterator<String> getClients(final BleServerState state) + { + enforceMainThread(); + + return m_clientMngr.getClients(state.bit()); + } + + /** + * Returns all the clients connected or connecting (or previously so) to this server. + */ + public @Nullable(Nullable.Prevalence.NEVER) Iterator<String> getClients(final BleServerState ... states) + { + enforceMainThread(); + + return m_clientMngr.getClients(BleServerState.toBits(states)); + } + + /** + * Overload of {@link #getClients()} that returns a {@link java.util.List} for you. + */ + public @Nullable(Nullable.Prevalence.NEVER) List<String> getClients_List() + { + enforceMainThread(); + + return m_clientMngr.getClients_List(0x0); + } + + /** + * Overload of {@link #getClients(BleServerState)} that returns a {@link java.util.List} for you. + */ + public @Nullable(Nullable.Prevalence.NEVER) List<String> getClients_List(final BleServerState state) + { + enforceMainThread(); + + return m_clientMngr.getClients_List(state.bit()); + } + + /** + * Overload of {@link #getClients(BleServerState[])} that returns a {@link java.util.List} for you. + */ + public @Nullable(Nullable.Prevalence.NEVER) List<String> getClients_List(final BleServerState ... states) + { + enforceMainThread(); + + return m_clientMngr.getClients_List(BleServerState.toBits(states)); + } + + /** + * Returns the total number of clients this server is connecting or connected to (or previously so). + */ + public int getClientCount() + { + enforceMainThread(); + + return m_clientMngr.getClientCount(); + } + + /** + * Returns the number of clients that are in the current state. + */ + public int getClientCount(final BleServerState state) + { + enforceMainThread(); + + return m_clientMngr.getClientCount(state.bit()); + } + + /** + * Returns the number of clients that are in any of the given states. + */ + public int getClientCount(final BleServerState ... states) + { + enforceMainThread(); + + return m_clientMngr.getClientCount(BleServerState.toBits(states)); + } + + /** + * Returns <code>true</code> if this server has any connected or connecting clients (or previously so). + */ + public boolean hasClients() + { + return getClientCount() > 0; + } + + /** + * Returns <code>true</code> if this server has any clients in the given state. + */ + public boolean hasClient(final BleServerState state) + { + return getClientCount(state) > 0; + } + + /** + * Returns <code>true</code> if this server has any clients in any of the given states. + */ + public boolean hasClient(final BleServerState ... states) + { + return getClientCount(states) > 0; + } + + P_ServerServiceManager serviceMngr_server() + { + return getServiceManager(); + } + + /** + * Pretty-prints the list of connecting or connected clients. + */ + public String toString() + { + return this.getClass().getSimpleName() + " with " + m_clientMngr.getClientCount(BleServerState.toBits(CONNECTING, CONNECTED)) + " connected/ing clients."; + } + + /** + * Returns the local mac address provided by {@link BluetoothAdapter#getAddress()}. + */ + @Override public @Nullable(Nullable.Prevalence.NEVER) String getMacAddress() + { + return getManager().getNativeAdapter().getAddress(); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleServerState.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleServerState.java new file mode 100644 index 0000000000000000000000000000000000000000..8deea6290c08cf2127f8237c46633123d31f4148 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleServerState.java @@ -0,0 +1,94 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattServer; +import android.bluetooth.BluetoothGattService; + +import com.idevicesinc.sweetblue.utils.BitwiseEnum; +import com.idevicesinc.sweetblue.utils.State; +import com.idevicesinc.sweetblue.utils.Utils_Byte; + +/** + * An enumeration of the various states that a {@link BleServer} can be in on a per-client (mac address) basis. + * Note that unlike a {@link BleDevice}, a {@link BleServer} can only be in one state at a time for a given client + * Use {@link BleServer#setListener_State(BleServer.StateListener)} to be notified of state changes. + * + * @see BleServer.StateListener + */ +public enum BleServerState implements State +{ + /** + * Dummy value returned from any method that would otherwise return Java's built-in <code>null</code>. + * A normal {@link BleDevice} will never be in this state, but this will be the sole state of {@link BleServer#NULL}. + */ + NULL, + + /** + * SweetBlue equivalent of {@link android.bluetooth.BluetoothGattServer#STATE_DISCONNECTED}. + */ + DISCONNECTED, + + /** + * SweetBlue equivalent of {@link android.bluetooth.BluetoothGattServer#STATE_CONNECTING}. + */ + CONNECTING, + + /** + * SweetBlue equivalent of {@link android.bluetooth.BluetoothGattServer#STATE_CONNECTED}. + */ + CONNECTED; + + + public static int toBits(BleServerState ... states) + { + return Utils_Byte.toBits(states); + } + + @Override public boolean overlaps(int mask) + { + return (bit() & mask) != 0x0; + } + + @Override public int bit() + { + return 0x1 << ordinal(); + } + + @Override public boolean didEnter(int oldStateBits, int newStateBits) + { + return !this.overlaps(oldStateBits) && this.overlaps(newStateBits); + } + + @Override public boolean didExit(int oldStateBits, int newStateBits) + { + return this.overlaps(oldStateBits) && !this.overlaps(newStateBits); + } + + @Override public int or(BitwiseEnum state) + { + return this.bit() | state.bit(); + } + + @Override public int or(int bits) + { + return this.bit() | bits; + } + + static BleServerState[] VALUES() + { + s_values = s_values != null ? s_values : values(); + + return s_values; + } + private static BleServerState[] s_values = null; + + /** + * Full bitwise mask made by ORing all {@link BleServerState} instances together. + */ + public static final int FULL_MASK = Utils_Byte.toBits(VALUES()); + + @Override public boolean isNull() + { + return this == NULL; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleService.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleService.java new file mode 100644 index 0000000000000000000000000000000000000000..e2330bc9b638fffcd86ff9ba4e8d0ccd49401f11 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleService.java @@ -0,0 +1,43 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothGattService; + +import com.idevicesinc.sweetblue.utils.Utils; + +import java.util.UUID; + +/** + * Proxy of {@link BluetoothGattService} to force stricter compile-time checks and order of operations + * when creating services for {@link BleServer}. + * + * @see BleServices + */ +public class BleService +{ + final BluetoothGattService m_native; + + public BleService(final UUID uuid, final BleCharacteristic... characteristics) + { + this(uuid, characteristics, true); + } + + private BleService(final UUID uuid, final BleCharacteristic[] characteristics, final boolean constructorOverloadEnabler2000) + { + final int serviceType = BluetoothGattService.SERVICE_TYPE_PRIMARY; + + m_native = new BluetoothGattService(uuid, serviceType); + + for( int i = 0; i < characteristics.length; i++ ) + { + m_native.addCharacteristic(characteristics[i].m_native); + } + } + + void init() + { + if( m_native != null ) return; + + // DRK > nothing for now but may do actual instantiation of native service here in the future so SweetBlue + // can implicitly determine whether a service is primary or secondary. + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleServices.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleServices.java new file mode 100644 index 0000000000000000000000000000000000000000..5222bd5666376dea59997918ff82fa026f016ca7 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleServices.java @@ -0,0 +1,46 @@ +package com.idevicesinc.sweetblue; + +import com.idevicesinc.sweetblue.utils.Uuids; + +/** + * Static-only class with some common BLE services for {@link BleServer#addService(BleService)}. + */ +public class BleServices +{ + private BleServices(){} + + /** + * Returns a new service conforming to the "Current Time Service" specification. + */ + public static BleService currentTime() + { + final BleDescriptor descriptor = new BleDescriptor + ( + Uuids.CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID, + BleDescriptorPermission.READ, BleDescriptorPermission.WRITE + ); + + final BleCharacteristic characteristic_currentTime = new BleCharacteristic + ( + Uuids.CURRENT_TIME_SERVICE__CURRENT_TIME, + descriptor, + BleCharacteristicPermission.READ, + BleCharacteristicProperty.READ, BleCharacteristicProperty.NOTIFY + ); + + final BleCharacteristic characteristic_localTime = new BleCharacteristic + ( + Uuids.CURRENT_TIME_SERVICE__LOCAL_TIME_INFO, + BleCharacteristicPermission.READ, + BleCharacteristicProperty.READ + ); + + final BleService currentTimeService = new BleService + ( + Uuids.CURRENT_TIME_SERVICE, + characteristic_currentTime, characteristic_localTime + ); + + return currentTimeService; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleStatuses.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleStatuses.java new file mode 100644 index 0000000000000000000000000000000000000000..1c8ede2409c879b950fabd25a0aff4fc6b77dadc --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleStatuses.java @@ -0,0 +1,371 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGatt; + +/** + * A collection of various BLE status codes that for whatever reason are not exposed through Android's + * public BLE layer - this can be because they are <code>public</code> but use the @hide annotation, + * or they are not <code>public</code> in the first place, or they can only be found by Googling + * for native C/C++ library code. + * <br><br> + * See the static members of {@link android.bluetooth.BluetoothDevice} and {@link BluetoothGatt} for more information. + * <br><br> + * NOTE: Most <code>GATT_</code> members here are copy/pasted from + * https://android.googlesource.com/platform/external/bluetooth/bluedroid/+/android-4.3_r1.1/stack/include/gatt_api.h + */ +public class BleStatuses +{ + /** + * Status code used for {@link BleDevice.ReadWriteListener.ReadWriteEvent#gattStatus()} when the operation failed at a point where a + * gatt status from the underlying stack isn't provided or applicable. + * <br><br> + * Also used for {@link BleDevice.ConnectionFailListener.ConnectionFailEvent#gattStatus()} for when the failure didn't involve the gatt layer. + */ + public static final int GATT_STATUS_NOT_APPLICABLE = -1; + + /** + * Used on {@link BleDevice.BondListener.BondEvent#failReason()} when {@link BleDevice.BondListener.BondEvent#status()} + * isn't applicable, for example {@link BleDevice.BondListener.Status#SUCCESS}. + */ + public static final int BOND_FAIL_REASON_NOT_APPLICABLE = GATT_STATUS_NOT_APPLICABLE; + + /** + * Used when attempting to bond on a device whose API level is less than 19, or does not have access to android's + * {@link BluetoothDevice#createBond()} method. + */ + public static final int BOND_FAIL_REASON_NOT_AVAILABLE = 42; + + + /** + * Status code used for {@link BleServer.AdvertisingListener.AdvertisingEvent#status()} when advertising has been + * successfully started. + */ + public static final int ADVERTISE_SUCCESS = 0; + + /** + * Status code for (@link BleServer.AdvertiseListener.AdvertisingEvent#status} when trying to advertise on + * a device which isn't running an android OS of Lollipop or higher. + */ + public static final int ADVERTISE_ANDROID_VERSION_NOT_SUPPORTED = 20; + + /** + * A bond attempt succeeded. + */ + public static final int BOND_SUCCESS = 0; + + /** + * A bond attempt failed because pins did not match, or remote device did not respond to pin request in time. + */ + public static final int UNBOND_REASON_AUTH_FAILED = 1; + + /** + * A bond attempt failed because the other side explicitly rejected bonding. + */ + public static final int UNBOND_REASON_AUTH_REJECTED = 2; + + /** + * A bond attempt failed because we canceled the bonding process. + */ + public static final int UNBOND_REASON_AUTH_CANCELED = 3; + + /** + * A bond attempt failed because we could not contact the remote device. + */ + public static final int UNBOND_REASON_REMOTE_DEVICE_DOWN = 4; + + /** + * A bond attempt failed because a discovery is in progress. + */ + public static final int UNBOND_REASON_DISCOVERY_IN_PROGRESS = 5; + + /** + * A bond attempt failed because of authentication timeout. + */ + public static final int UNBOND_REASON_AUTH_TIMEOUT = 6; + + /** + * A bond attempt failed because of repeated attempts. + */ + public static final int UNBOND_REASON_REPEATED_ATTEMPTS = 7; + + /** + * A bond attempt failed because we received an Authentication Cancel by remote end. + */ + public static final int UNBOND_REASON_REMOTE_AUTH_CANCELED = 8; + + + + + /** + * Indicates the local Bluetooth adapter is off. + */ + static final int STATE_OFF = BluetoothAdapter.STATE_OFF; + + /** + * Indicates the local Bluetooth adapter is turning on. However local + * clients should wait for {@link #STATE_ON} before attempting to + * use the adapter. + */ + static final int STATE_TURNING_ON = BluetoothAdapter.STATE_TURNING_ON; + + /** + * Indicates the local Bluetooth adapter is on, and ready for use. + */ + static final int STATE_ON = BluetoothAdapter.STATE_ON; + + /** + * Indicates the local Bluetooth adapter is turning off. Local clients + * should immediately attempt graceful disconnection of any remote links. + */ + static final int STATE_TURNING_OFF = BluetoothAdapter.STATE_TURNING_OFF; + + /** + * Indicates the local Bluetooth adapter is turning Bluetooth LE mode on. + */ + /*package*/ static final int STATE_BLE_TURNING_ON = 14; + + /** + * Indicates the local Bluetooth adapter is in LE only mode. + */ + /*package*/ static final int STATE_BLE_ON = 15; + + /** + * Indicates the local Bluetooth adapter is turning off LE only mode. + */ + /*package*/ static final int STATE_BLE_TURNING_OFF = 16; + + //--- DRK > List from https://android.googlesource.com/platform/external/bluetooth/bluedroid/+/android-4.3_r1.1/stack/include/gatt_api.h + //--- Copy/pasting here for easier reference or in case that resource disappears or something. + + public static final int GATT_SUCCESS = 0x0000; + public static final int GATT_INVALID_HANDLE = 0x0001; + public static final int GATT_READ_NOT_PERMIT = 0x0002; + public static final int GATT_WRITE_NOT_PERMIT = 0x0003; + public static final int GATT_INVALID_PDU = 0x0004; + public static final int GATT_INSUF_AUTHENTICATION = 0x0005; + public static final int GATT_REQ_NOT_SUPPORTED = 0x0006; + public static final int GATT_INVALID_OFFSET = 0x0007; + public static final int GATT_INSUF_AUTHORIZATION = 0x0008; + public static final int GATT_PREPARE_Q_FULL = 0x0009; + public static final int GATT_NOT_FOUND = 0x000a; + public static final int GATT_NOT_LONG = 0x000b; + public static final int GATT_INSUF_KEY_SIZE = 0x000c; + public static final int GATT_INVALID_ATTR_LEN = 0x000d; + public static final int GATT_ERR_UNLIKELY = 0x000e; + public static final int GATT_INSUF_ENCRYPTION = 0x000f; + public static final int GATT_UNSUPPORT_GRP_TYPE = 0x0010; + public static final int GATT_INSUF_RESOURCE = 0x0011; + public static final int GATT_ILLEGAL_PARAMETER = 0x0087; + public static final int GATT_NO_RESOURCES = 0x0080; + public static final int GATT_INTERNAL_ERROR = 0x0081; + public static final int GATT_WRONG_STATE = 0x0082; + public static final int GATT_DB_FULL = 0x0083; + public static final int GATT_BUSY = 0x0084; + public static final int GATT_ERROR = 0x0085; + public static final int GATT_CMD_STARTED = 0x0086; + public static final int GATT_PENDING = 0x0088; + public static final int GATT_AUTH_FAIL = 0x0089; + public static final int GATT_MORE = 0x008a; + public static final int GATT_INVALID_CFG = 0x008b; + public static final int GATT_SERVICE_STARTED = 0x008c; + public static final int GATT_ENCRYPED_MITM = GATT_SUCCESS; + public static final int GATT_ENCRYPED_NO_MITM = 0x008d; + public static final int GATT_NOT_ENCRYPTED = 0x008e; +// typedef UINT8 tGATT_STATUS; + public static final int GATT_RSP_ERROR = 0x01; + public static final int GATT_REQ_MTU = 0x02; + public static final int GATT_RSP_MTU = 0x03; + public static final int GATT_REQ_FIND_INFO = 0x04; + public static final int GATT_RSP_FIND_INFO = 0x05; + public static final int GATT_REQ_FIND_TYPE_VALUE = 0x06; + public static final int GATT_RSP_FIND_TYPE_VALUE = 0x07; + public static final int GATT_REQ_READ_BY_TYPE = 0x08; + public static final int GATT_RSP_READ_BY_TYPE = 0x09; + public static final int GATT_REQ_READ = 0x0A; + public static final int GATT_RSP_READ = 0x0B; + public static final int GATT_REQ_READ_BLOB = 0x0C; + public static final int GATT_RSP_READ_BLOB = 0x0D; + public static final int GATT_REQ_READ_MULTI = 0x0E; + public static final int GATT_RSP_READ_MULTI = 0x0F; + public static final int GATT_REQ_READ_BY_GRP_TYPE = 0x10; + public static final int GATT_RSP_READ_BY_GRP_TYPE = 0x11; + public static final int GATT_REQ_WRITE = 0x12; /* 0001-0010 (write)*/ + public static final int GATT_RSP_WRITE = 0x13; + public static final int GATT_CMD_WRITE = 0x52; /* changed in V4.0 01001-0010(write cmd)*/ + public static final int GATT_REQ_PREPARE_WRITE = 0x16; + public static final int GATT_RSP_PREPARE_WRITE = 0x17; + public static final int GATT_REQ_EXEC_WRITE = 0x18; + public static final int GATT_RSP_EXEC_WRITE = 0x19; + public static final int GATT_HANDLE_VALUE_NOTIF = 0x1B; + public static final int GATT_HANDLE_VALUE_IND = 0x1D; + public static final int GATT_HANDLE_VALUE_CONF = 0x1E; + public static final int GATT_SIGN_CMD_WRITE = 0xD2; /* changed in V4.0 1101-0010 (signed write) see write cmd above*/ + public static final int GATT_OP_CODE_MAX = GATT_HANDLE_VALUE_CONF + 1; /* 0x1E = 30 + 1 = 31*/ +// public static final int GATT_HANDLE_IS_VALID(x) ((x) != 0) + public static final int GATT_CONN_UNKNOWN = 0; +// public static final int GATT_CONN_NO_RESOURCES = L2CAP_CONN_NO_RESOURCES; /* connection fail for l2cap resource failure */ +// public static final int GATT_CONN_TIMEOUT = HCI_ERR_CONNECTION_TOUT; /* 0x08 connection timeout */ +// public static final int GATT_CONN_TERMINATE_PEER_USER = HCI_ERR_PEER_USER; /* 0x13 connection terminate by peer user */ +// public static final int GATT_CONN_TERMINATE_LOCAL_HOST = HCI_ERR_CONN_CAUSE_LOCAL_HOST; /* 0x16 connectionterminated by local host */ +// public static final int GATT_CONN_FAIL_ESTABLISH = HCI_ERR_CONN_FAILED_ESTABLISHMENT;/* 0x03E connection fail to establish */ +// public static final int GATT_CONN_LMP_TIMEOUT = HCI_ERR_LMP_RESPONSE_TIMEOUT; /* 0x22 connection fail for LMP response tout */ +// public static final int GATT_CONN_CANCEL = L2CAP_CONN_CANCEL; /* 0x0100 L2CAP connection cancelled */ +// typedef UINT16 tGATT_DISCONN_REASON; + + + + + //--- DRK > Just for reference, copy/pasting the logcat logs of polling for ble state changes in recently released Android M. + +// 10-15 11:08:13.966 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_ON(12) +// 10-15 11:08:13.999 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_ON(12) +// 10-15 11:08:14.032 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_ON(12) +// 10-15 11:08:14.069 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_ON(12) +// 10-15 11:08:14.099 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_ON(12) +// 10-15 11:08:14.131 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_ON(12) +// 10-15 11:08:14.160 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_ON(12) +// 10-15 11:08:14.189 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_ON(12) +// 10-15 11:08:14.222 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_ON(12) +// 10-15 11:08:14.251 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_ON(12) +// 10-15 11:08:14.305 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_TURNING_OFF(13) +// 10-15 11:08:14.332 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_ON(15) +// 10-15 11:08:14.363 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_OFF(16) +// 10-15 11:08:14.389 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_OFF(16) +// 10-15 11:08:14.416 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_OFF(16) +// 10-15 11:08:14.441 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_OFF(16) +// 10-15 11:08:14.467 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_OFF(16) +// 10-15 11:08:14.493 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_OFF(16) +// 10-15 11:08:14.519 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_OFF(16) +// 10-15 11:08:14.546 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_OFF(16) +// 10-15 11:08:14.571 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_OFF(16) +// 10-15 11:08:14.598 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_OFF(16) +// 10-15 11:08:14.624 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_OFF(16) +// 10-15 11:08:14.650 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_OFF(16) +// 10-15 11:08:14.676 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_OFF(16) +// 10-15 11:08:14.703 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_OFF(16) +// 10-15 11:08:14.731 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_OFF(16) +// 10-15 11:08:14.757 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:14.783 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:14.809 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:14.835 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:14.861 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:14.887 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:14.913 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:14.939 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:14.965 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:14.992 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.018 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.049 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.076 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.104 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.130 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.156 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.186 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.214 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.241 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.271 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.299 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.325 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.351 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.377 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.405 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.431 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.457 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.484 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.512 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.539 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.565 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.594 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.622 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.649 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.683 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.713 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.740 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.767 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.794 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.821 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.849 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.876 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.904 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.933 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.959 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:15.985 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.012 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.038 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.065 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.093 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.126 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.155 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.182 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.209 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.246 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.276 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.303 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.330 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.360 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.389 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.418 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.446 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.473 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.501 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.528 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.554 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.579 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.605 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_OFF(10) +// 10-15 11:08:16.632 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:16.659 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:16.686 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:16.715 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:16.744 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:16.784 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:16.813 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:16.843 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:16.872 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:16.902 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:16.932 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:16.963 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:16.991 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.020 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.057 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.086 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.115 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.148 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.181 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.211 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.240 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.268 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.297 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.326 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.356 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.386 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.415 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.444 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.472 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.503 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.532 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.562 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.591 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.622 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.651 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.679 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.706 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.735 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.763 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) +// 10-15 11:08:17.791 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_TURNING_ON(14) + +// 10-15 11:08:17.791 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_BLE_ON(15) // added manually from another test run, not detected in original run + +// 10-15 11:08:17.820 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_TURNING_ON(11) +// 10-15 11:08:17.847 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_TURNING_ON(11) +// 10-15 11:08:17.873 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_TURNING_ON(11) +// 10-15 11:08:17.900 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_TURNING_ON(11) +// 10-15 11:08:17.926 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_ON(12) +// 10-15 11:08:17.960 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_ON(12) +// 10-15 11:08:17.986 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_ON(12) +// 10-15 11:08:18.013 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_ON(12) +// 10-15 11:08:18.038 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_ON(12) +// 10-15 11:08:18.068 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_ON(12) +// 10-15 11:08:18.094 6089-6089/com.idevicesllc.connected E/P_BleManager_Listeners: AMY(6089) update() - *********************STATE_ON(12) +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleTask.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleTask.java new file mode 100644 index 0000000000000000000000000000000000000000..298df09749dc814b7a3cd004c3dcd229f0b71a3c --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleTask.java @@ -0,0 +1,187 @@ +package com.idevicesinc.sweetblue; + +import com.idevicesinc.sweetblue.annotations.Advanced; +import com.idevicesinc.sweetblue.utils.FutureData; + +import java.util.UUID; + +/** + * Under the hood, SweetBlue uses a priority task queue to serialize all interaction with the native BLE stack. + * This enumeration represents all the tasks that are used and lets you control various timing options in + * {@link BleDeviceConfig} and {@link BleManagerConfig}, for example {@link BleDeviceConfig#taskTimeoutRequestFilter}. + */ +@Advanced +public enum BleTask +{ + /** + * Associated with {@link BleManager#turnOff()} + */ + TURN_BLE_OFF, + + /** + * Associated with {@link BleManager#turnOn()} + */ + TURN_BLE_ON, + + /** + * Associated with {@link BleManagerConfig#enableCrashResolver}. + */ + RESOLVE_CRASHES, + + /** + * Associated with {@link BleDevice#connect()} and its several overloads. + */ + CONNECT, + + /** + * Associated with {@link BleDevice#disconnect()}. + */ + DISCONNECT, + + /** + * Associated with {@link BleDevice#bond()} and {@link BleDeviceState#BONDING}. + */ + BOND, + + /** + * Associated with {@link BleDevice#unbond()}. + */ + UNBOND, + + /** + * Associated with {@link BleDevice#read(java.util.UUID, com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)}. + */ + READ, + + /** + * Associated with {@link BleDevice#write(java.util.UUID, byte[], com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)}. + */ + WRITE, + + /** + * Associated with {@link BleDevice#enableNotify(java.util.UUID, com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)} and + * {@link BleDevice#disableNotify(java.util.UUID, com.idevicesinc.sweetblue.BleDevice.ReadWriteListener)}. + */ + TOGGLE_NOTIFY, + + /** + * Associated with {@link BleDevice#readRssi()} and {@link BleDevice#startRssiPoll(com.idevicesinc.sweetblue.utils.Interval)} (and overloads thereof). + */ + READ_RSSI, + + /** + * Associated with discovering services after a {@link BleDevice} becomes {@link BleDeviceState#CONNECTED}. + */ + DISCOVER_SERVICES, + + /** + * Associated with sending a notification to a remote client through {@link BleServer#sendNotification(String, UUID, UUID, FutureData, BleServer.OutgoingListener)} + * or {@link BleServer#sendIndication(String, UUID, UUID, FutureData, BleServer.OutgoingListener)} overloads. + */ + SEND_NOTIFICATION, + + /** + * Associated with {@link BleServer#connect(String)} or overloads. + */ + CONNECT_SERVER, + + /** + * Associated with {@link BleServer#disconnect(String)}. + */ + DISCONNECT_SERVER, + + /** + * Associated with {@link BleServer.IncomingListener.Please#respondWithSuccess()}, {@link BleServer.IncomingListener.Please#respondWithError(int)}, + * or various other static methods of {@link BleServer.IncomingListener.Please}. + */ + SEND_READ_WRITE_RESPONSE, + + /** + * Associated with {@link BleServer#addService(BleService, BleServer.ServiceAddListener)} or overloads. + */ + ADD_SERVICE, + + /** + * Associated with {@link BleDevice#setMtu(int)} or overloads. + */ + SET_MTU, + + /** + * Associated with {@link BleDevice#setConnectionPriority(BleConnectionPriority, BleDevice.ReadWriteListener)} or overloads. + */ + SET_CONNECTION_PRIORITY, + + /** + * Associated with {@link BleDevice#readDescriptor(UUID, UUID, BleDevice.ReadWriteListener)} or overloads. + */ + READ_DESCRIPTOR, + + /** + * Associated with {@link BleDevice#writeDescriptor(UUID, UUID, byte[], BleDevice.ReadWriteListener)} or overloads. + */ + WRITE_DESCRIPTOR, + + /** + * Associated with {@link BleDevice#reliableWrite_execute()}. + */ + RELIABLE_WRITE, + + /** + * Associated with {@link BleServer#startAdvertising(BleAdvertisingPacket)}, {@link BleServer#startAdvertising(BleAdvertisingPacket, BleServer.AdvertisingListener)} + */ + START_ADVERTISING; + + /** + * Returns whether <code>this</code> is associated with a {@link BleDevice}. + */ + public boolean isDeviceSpecific() + { + switch(this) + { + //--- DRK > Server-specific. + case CONNECT_SERVER: + case DISCONNECT_SERVER: + case SEND_NOTIFICATION: + case SEND_READ_WRITE_RESPONSE: + case ADD_SERVICE: + + //--- DRK > Manager-specific. + case TURN_BLE_OFF: + case TURN_BLE_ON: + case RESOLVE_CRASHES: return false; + + default: return true; + } + } + + /** + * Returns whether <code>this</code> is associated with {@link BleManager}. + */ + public boolean isManagerSpecific() + { + switch(this) + { + case TURN_BLE_OFF: + case TURN_BLE_ON: + case RESOLVE_CRASHES: return true; + + default: return false; + } + } + + /** + * Returns whether <code>this</code> is associated with a {@link BleServer}. + */ + public boolean isServerSpecific() + { + return !isDeviceSpecific() && !isManagerSpecific(); + } + + /** + * Returns <code>true</code> if the task can have a characteristic UUID associated with it - for now {@link #READ}, {@link #WRITE}, {@link #TOGGLE_NOTIFY}, {@link #READ_DESCRIPTOR} and {@link #WRITE_DESCRIPTOR}. + */ + public boolean usesCharUuid() + { + return this == READ || this == WRITE || this == TOGGLE_NOTIFY || this == READ_DESCRIPTOR || this == WRITE_DESCRIPTOR; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleTransaction.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleTransaction.java new file mode 100644 index 0000000000000000000000000000000000000000..ed50cf8de54b26131f89bb60df4fc535b6491535 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleTransaction.java @@ -0,0 +1,239 @@ +package com.idevicesinc.sweetblue; + + +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status; +import com.idevicesinc.sweetblue.utils.Event; +import com.idevicesinc.sweetblue.utils.Utils; + +/** + * Abstract base class for transactions passed to various methods of {@link BleDevice}. Transactions provide a convenient way + * to encapsulate a series of reads and writes for things like authentication handshakes, firmware updates, etc. You optionally + * provide subclass instances to the various overloads of {@link BleDevice#connect()}. Normally in your {@link #start(BleDevice)} + * method you then do some reads/writes and call {@link #succeed()} or {@link #fail()} depending on the {@link Status} returned. + * <br><br> + * NOTE: Nested subclasses here are only meant for tagging to enforce type-correctness and don't yet provide any differing contracts or implementations. + * + * @see BleDevice#performOta(BleTransaction.Ota) + * @see BleDevice#connect(BleTransaction.Auth) + * @see BleDevice#connect(BleTransaction.Init) + * @see BleDevice#connect(BleTransaction.Auth, BleTransaction.Init) + * @see BleDevice#performTransaction(BleTransaction) + */ +public abstract class BleTransaction +{ + /** + * Tagging subclass to force type-discrepancy for various {@link BleDevice#connect()} overloads. + */ + public abstract static class Init extends BleTransaction{} + + /** + * Tagging subclass to force type-discrepancy for various {@link BleDevice#connect()} overloads. + */ + public abstract static class Auth extends BleTransaction{} + + /** + * Tagging subclass to force type-correctness for {@link BleDevice#performOta(BleTransaction.Ota)}. + */ + public abstract static class Ota extends BleTransaction{} + + /** + * Values are passed to {@link BleTransaction#onEnd(BleDevice, EndReason)}. + */ + protected static enum EndReason + { + /** + * {@link BleTransaction#succeed()} was called. + */ + SUCCEEDED, + + /** + * The transaction's {@link BleDevice} became {@link BleDeviceState#DISCONNECTED} + * or/and {@link BleManager} went {@link BleManagerState#OFF}. + */ + CANCELLED, + + /** + * {@link BleTransaction#fail()} was called. + */ + FAILED; + } + + private final double m_timeout; + private double m_timeTracker; + private boolean m_isRunning; + private BleDevice m_device = null; + private PI_EndListener m_listener; + + public BleTransaction() + { + m_timeout = 0.0; + } + + void init(BleDevice device, PI_EndListener listener ) + { + if( m_device != null ) + { + if( m_device != device ) + { + throw new Error("Cannot currently reuse transactions across devices."); + } + } + + m_device = device; + m_listener = listener; + } + + void deinit() + { + //--- DRK > Intentionally not nulling out m_device here. + m_listener = null; + } + + /** + * Returns the device this transaction is running on. + */ + public BleDevice getDevice() + { + return m_device; + } + + /** + * Implement this method to kick off your transaction. Usually you kick off some reads/writes inside + * your override and call {@link #succeed()} or {@link #fail()} depending on how things went. + */ + protected abstract void start(BleDevice device); + + /** + * Called when a transaction ends, either due to the transaction itself finishing itself + * through {@link #fail()} or {@link #succeed()}, or from the library implicitly ending + * the transaction, for example if {@link #getDevice()} becomes {@link BleDeviceState#DISCONNECTED}. + * + * Override this method to wrap up any loose ends or notify UI or what have you. + */ + protected void onEnd(BleDevice device, EndReason reason){} + + /** + * Optional convenience method to override if you want to do periodic updates or time-based calculations. + */ + protected void update(double timeStep){} + + /** + * Returns whether the transaction is currently running. + */ + public boolean isRunning() + { + return m_isRunning; + } + + void start_internal() + { + m_isRunning = true; + m_timeTracker = 0.0; + + start(m_device); + } + + private boolean end(final EndReason reason, final ReadWriteListener.ReadWriteEvent failReason) + { + if( !m_isRunning ) + { + //--- DRK > Can be due to a legitimate race condition, so warning might be a little much. +// m_device.getManager().getLogger().w("Transaction is already ended!"); + + return false; + } + + m_device.getManager().getLogger().i("transaction " + reason.name()); + + m_isRunning = false; + + if( m_listener != null ) + { + m_listener.onTransactionEnd(this, reason, failReason); + } + + if( m_device.getManager().m_config.postCallbacksToMainThread && !Utils.isOnMainThread() ) + { + m_device.getManager().m_mainThreadHandler.post(new Runnable() + { + @Override public void run() + { + onEnd(m_device, reason); + } + }); + } + else + { + onEnd(m_device, reason); + } + + return true; + } + + final void cancel() + { + end(EndReason.CANCELLED, m_device.NULL_READWRITE_EVENT()); + } + + /** + * Call this from subclasses to indicate that the transaction has failed. Usually you call this in your + * {@link BleDevice.ReadWriteListener#onEvent(Event)} + * when {@link Status} is something other than {@link Status#SUCCESS}. If you do so, + * {@link BleDevice.ConnectionFailListener.ConnectionFailEvent#txnFailReason()} will be set. + * + * @return <code>false</code> if the transaction wasn't running to begin with. + */ + protected final boolean fail() + { + final ReadWriteListener.ReadWriteEvent failReason = m_device.m_txnMngr.m_failReason; + + return this.end(EndReason.FAILED, failReason); + } + + /** + * Call this from subclasses to indicate that the transaction has succeeded. + * + * @return {@link Boolean#FALSE} if the transaction wasn't running to begin with. + */ + protected final boolean succeed() + { + return end(EndReason.SUCCEEDED, m_device.NULL_READWRITE_EVENT()); + } + + void update_internal(double timeStep) + { + m_timeTracker += timeStep; + + if( m_timeout > 0.0 ) + { + if( m_timeTracker >= m_timeout ) + { + } + } + + update(timeStep); + } + + /** + * Returns the total time that this transaction has been running. You can use this in {@link #update(double)} + * for example to {@link #fail()} or {@link #succeed()} a transaction that has taken longer than a certain + * amount of time. + * + * @see BleTransaction#update(double) + */ + protected double getTime() + { + return m_timeTracker; + } + + /** + * Default is {@link Boolean#FALSE}. Optionally override if you want your transaction's reads/writes to execute "atomically". + * This means that if you're connected to multiple devices only the reads/writes of this transaction's device + * will be executed until this transaction is finished. + */ + protected boolean needsAtomicity() + { + return false; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleWriteTransaction.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleWriteTransaction.java new file mode 100644 index 0000000000000000000000000000000000000000..a241d118341ab49dbf65c2f2be7a715656077dfb --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/BleWriteTransaction.java @@ -0,0 +1,291 @@ +package com.idevicesinc.sweetblue; + + +import java.util.ArrayList; +import java.util.Collection; +import java.util.UUID; + + +public class BleWriteTransaction extends BleTransaction.Ota +{ + + /** + * Interface for handling failures when writing. This also specifies how the transaction should + * proceed on error. + * + * @see com.idevicesinc.sweetblue.BleWriteTransaction.FailListener.Please + */ + public interface FailListener + { + + /** + * Class used to dictate what should happen if a write fail happens. + * Use static methods to specify what to do on a write fail; {@link #next()}, {@link #retry()}, or + * {@link #stop()}. + */ + public static class Please + { + + private enum Action + { + NEXT, + RETRY, + STOP + } + + private Action action; + + private Please(Action action) + { + this.action = action; + } + + /** + * Tells the transaction to proceed to the next write in the queue, and ignore the one that failed. + */ + public static Please next() + { + return new Please(Action.NEXT); + } + + /** + * Tells the transaction to retry the failed write again. + */ + public static Please retry() + { + return new Please(Action.RETRY); + } + + /** + * Stops the transaction, and clears all remaining writes from the queue. + */ + public static Please stop() + { + return new Please(Action.STOP); + } + + } + + public Please onWriteFail(BleDevice.ReadWriteListener.ReadWriteEvent e); + } + + /** + * Interface for listening between each write made in the queue. This allows you to perform + * operations between each write. You then supply {@link Please#proceed()} to continue the transaction, + * or {@link Please#cancel()} to cancel the transaction. + */ + public interface WriteQueueListener + { + + /** + * Class used to tell this {@link BleWriteTransaction} to either proceed to the next write, + * or cancel this transaction. + */ + public static class Please + { + + private final boolean proceed; + + private Please(boolean proceed) + { + this.proceed = proceed; + } + + /** + * Proceed to the next write in the queue. + */ + public static Please proceed() + { + return new Please(true); + } + + /** + * Cancels this {@link BleWriteTransaction}. + */ + public static Please cancel() + { + return new Please(false); + } + + } + + public Please onWriteComplete(BleDevice.ReadWriteListener.ReadWriteEvent e); + + } + + private final BleDevice.ReadWriteListener mListener = new BleDevice.ReadWriteListener() + { + @Override public void onEvent(ReadWriteEvent e) + { + if (e.wasSuccess()) + { + writeQueue.remove(0); + if (hasMore()) + { + if (mWriteListener != null) + { + if (mWriteListener.onWriteComplete(e).proceed) + { + performNextWrite(); + } + else + { + fail(); + } + } + else + { + performNextWrite(); + } + } + else + { + succeed(); + } + } + else + { + if (mfailListener != null) + { + FailListener.Please please = mfailListener.onWriteFail(e); + switch (please.action) + { + case NEXT: + writeQueue.remove(0); + if (hasMore()) + { + performNextWrite(); + } + else + { + succeed(); + } + break; + case RETRY: + performNextWrite(); + break; + case STOP: + writeQueue.clear(); + succeed(); + } + } + else + { + fail(); + } + } + } + }; + + private final ArrayList<BleDevice.WriteBuilder> writeQueue = new ArrayList<BleDevice.WriteBuilder>(); + private final FailListener mfailListener; + private final WriteQueueListener mWriteListener; + + + /** + * Use this constructor if you don't plan on setting a {@link FailListener} to listen for + * write fails in the queue. The transaction will abort if any writes fail. + */ + public BleWriteTransaction() + { + this(null, null); + } + + /** + * Overload of {@link #BleWriteTransaction(WriteQueueListener, FailListener)}. + * Instantiate a new BleWriteTransaction with a {@link FailListener} to tell the transaction how + * to proceed on write fails. + */ + public BleWriteTransaction(FailListener failListener) + { + this(null, failListener); + } + + /** + * Instantiate a new {@link BleWriteTransaction} with a {@link com.idevicesinc.sweetblue.BleWriteTransaction.WriteQueueListener}, which + * allows you to perform operations between each write in the queue, and a {@link com.idevicesinc.sweetblue.BleWriteTransaction.FailListener} to + * tell the Transaction what to do on a write failure. + */ + public BleWriteTransaction(WriteQueueListener writeListener, FailListener failListener) + { + super(); + mWriteListener = writeListener; + mfailListener = failListener; + } + + + /** + * Starts the transaction. If you override this method, be sure to call super.start(), so the writes + * are actually performed. + */ + @Override protected void start(BleDevice device) + { + if (hasMore()) + { + performNextWrite(); + } + else + { + fail(); + } + } + + /** + * Add an {@link BleDevice.WriteBuilder} to the write queue. You can chain this method, to make it easier to add multiple + * writes. + */ + public BleWriteTransaction add(BleDevice.WriteBuilder write) + { + writeQueue.add(write); + return this; + } + + /** + * Add a Collection of writes to the write queue. + */ + public BleWriteTransaction addAll(Collection<BleDevice.WriteBuilder> writes) + { + writeQueue.addAll(writes); + return this; + } + + /** + * Add a write to the write queue. You can chain this method, to make it easier to add multiple + * writes. + */ + public BleWriteTransaction add(UUID charUuid, byte[] data) + { + writeQueue.add(new BleDevice.WriteBuilder(charUuid).setBytes(data)); + return this; + } + + /** + * Add a write to the write queue. You can chain this method, to make it easier to add multiple + * writes. + */ + public BleWriteTransaction add(UUID serviceUuid, UUID charUuid, byte[] data) + { + writeQueue.add(new BleDevice.WriteBuilder(serviceUuid, charUuid).setBytes(data)); + return this; + } + + /** + * Returns how many write operations are left in the queue. + */ + public int remaining() + { + return writeQueue.size(); + } + + private boolean hasMore() + { + return remaining() > 0; + } + + private void performNextWrite() + { + final BleDevice.WriteBuilder mCurWrite = writeQueue.get(0); + getDevice().write(mCurWrite, mListener); + } + +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/DefaultLogger.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/DefaultLogger.java new file mode 100644 index 0000000000000000000000000000000000000000..142224e261bf9e6766d749ac3de31914fa033a41 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/DefaultLogger.java @@ -0,0 +1,12 @@ +package com.idevicesinc.sweetblue; + + +import android.util.Log; + +public class DefaultLogger implements SweetLogger +{ + @Override public void onLogEntry(int level, String tag, String msg) + { + Log.println(level, tag, msg); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_CallbackWrapper.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_CallbackWrapper.java new file mode 100644 index 0000000000000000000000000000000000000000..53a11177ad234d6e38475853313030fc8671b5af --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_CallbackWrapper.java @@ -0,0 +1,26 @@ +package com.idevicesinc.sweetblue; + +import android.os.Handler; + +import com.idevicesinc.sweetblue.utils.Utils; + +/** + * + * + */ +abstract class PA_CallbackWrapper +{ + protected final Handler m_handler; + protected final boolean m_forcePostToMain; + + PA_CallbackWrapper(Handler handler, boolean postToMain) + { + m_handler = handler; + m_forcePostToMain = postToMain; + } + + protected boolean postToMain() + { + return m_forcePostToMain && !Utils.isOnMainThread(); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_ServiceManager.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_ServiceManager.java new file mode 100644 index 0000000000000000000000000000000000000000..b1d178518377c82240c9c0cb6bd78d908b90a06a --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_ServiceManager.java @@ -0,0 +1,327 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattDescriptor; +import android.bluetooth.BluetoothGattService; + +import com.idevicesinc.sweetblue.utils.EmptyIterator; +import com.idevicesinc.sweetblue.utils.Utils; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.UUID; + +abstract class PA_ServiceManager +{ + private static final Iterator<BluetoothGattService> EMPTY_SERVICE_ITERATOR = new EmptyIterator<BluetoothGattService>(); + + protected static final List<BluetoothGattService> EMPTY_SERVICE_LIST = new ArrayList<BluetoothGattService>() + { + @Override public Iterator<BluetoothGattService> iterator() + { + return EMPTY_SERVICE_ITERATOR; + } + }; + + private static final List<BluetoothGattCharacteristic> EMPTY_CHARACTERISTIC_LIST = new ArrayList<BluetoothGattCharacteristic>(); + private static final Iterator<BluetoothGattCharacteristic> EMPTY_CHARACTERISTIC_ITERATOR = new EmptyIterator<BluetoothGattCharacteristic>(); + + private static final List<BluetoothGattDescriptor> EMPTY_DESCRIPTOR_LIST = new ArrayList<BluetoothGattDescriptor>(); + + + PA_ServiceManager() + { + } + + public abstract BluetoothGattService getServiceDirectlyFromNativeNode(final UUID uuid); + + protected abstract List<BluetoothGattService> getNativeServiceList_original(); + + + public BluetoothGattCharacteristic getCharacteristic(final UUID serviceUuid_nullable, final UUID charUuid) + { + if( serviceUuid_nullable == null ) + { + final List<BluetoothGattService> serviceList_native = getNativeServiceList_original(); + + for( int i = 0; i < serviceList_native.size(); i++ ) + { + final BluetoothGattService service_ith = serviceList_native.get(i); + final BluetoothGattCharacteristic characteristic = getCharacteristic(service_ith, charUuid); + + if( characteristic != null) + { + return characteristic; + } + } + + return null; + } + else + { + final BluetoothGattService service_nullable = getServiceDirectlyFromNativeNode(serviceUuid_nullable); + + if( service_nullable != null ) + { + return getCharacteristic(service_nullable, charUuid); + } + else + { + return null; + } + } + } + + private BluetoothGattCharacteristic getCharacteristic(final BluetoothGattService service, final UUID charUuid) + { + final List<BluetoothGattCharacteristic> charList_native = getNativeCharacteristicList_original(service); + + for( int j = 0; j < charList_native.size(); j++ ) + { + final BluetoothGattCharacteristic char_jth = charList_native.get(j); + + if( char_jth.getUuid().equals(charUuid) ) + { + return char_jth; + } + } + + return null; + } + + private List<BluetoothGattService> getNativeServiceList_cloned() + { + final List<BluetoothGattService> list_native = getNativeServiceList_original(); + + return list_native == EMPTY_SERVICE_LIST ? list_native : new ArrayList<BluetoothGattService>(list_native); + } + + private List<BluetoothGattCharacteristic> getNativeCharacteristicList_original(final BluetoothGattService service) + { + final List<BluetoothGattCharacteristic> list_native = service.getCharacteristics(); + + return list_native == null ? EMPTY_CHARACTERISTIC_LIST : list_native; + } + + private List<BluetoothGattCharacteristic> getNativeCharacteristicList_cloned(final BluetoothGattService service) + { + final List<BluetoothGattCharacteristic> list_native = getNativeCharacteristicList_original(service); + + return list_native == EMPTY_CHARACTERISTIC_LIST ? list_native : new ArrayList<BluetoothGattCharacteristic>(list_native); + } + + private List<BluetoothGattDescriptor> getNativeDescriptorList_original(final BluetoothGattCharacteristic characteristic) + { + final List<BluetoothGattDescriptor> list_native = characteristic.getDescriptors(); + + return list_native == null ? EMPTY_DESCRIPTOR_LIST : list_native; + } + + private List<BluetoothGattDescriptor> getNativeDescriptorList_cloned(final BluetoothGattCharacteristic characteristic) + { + final List<BluetoothGattDescriptor> list_native = getNativeDescriptorList_original(characteristic); + + return list_native == EMPTY_DESCRIPTOR_LIST ? list_native : new ArrayList<BluetoothGattDescriptor>(list_native); + } + + private List<BluetoothGattCharacteristic> collectAllNativeCharacteristics(final UUID serviceUuid_nullable, final Object forEach_nullable) + { + final ArrayList<BluetoothGattCharacteristic> characteristics = forEach_nullable == null ? new ArrayList<BluetoothGattCharacteristic>() : null; + final List<BluetoothGattService> serviceList_native = getNativeServiceList_original(); + + for( int i = 0; i < serviceList_native.size(); i++ ) + { + final BluetoothGattService service_ith = serviceList_native.get(i); + + if( serviceUuid_nullable == null || serviceUuid_nullable != null && serviceUuid_nullable.equals(service_ith.getUuid()) ) + { + final List<BluetoothGattCharacteristic> nativeChars = getNativeCharacteristicList_original(service_ith); + + if( forEach_nullable != null ) + { + if( Utils.doForEach_break(forEach_nullable, nativeChars)) + { + return null; + } + } + else + { + characteristics.addAll(nativeChars); + } + } + } + + return characteristics; + } + + private List<BluetoothGattDescriptor> collectAllNativeDescriptors(final UUID serviceUuid_nullable, final UUID charUuid_nullable, final Object forEach_nullable) + { + final ArrayList<BluetoothGattDescriptor> toReturn = forEach_nullable == null ? new ArrayList<BluetoothGattDescriptor>() : null; + final List<BluetoothGattService> serviceList_native = getNativeServiceList_original(); + + for( int i = 0; i < serviceList_native.size(); i++ ) + { + final BluetoothGattService service_ith = serviceList_native.get(i); + + if( serviceUuid_nullable == null || serviceUuid_nullable != null && serviceUuid_nullable.equals(service_ith.getUuid()) ) + { + final List<BluetoothGattCharacteristic> charList_native = getNativeCharacteristicList_original(service_ith); + + for( int j = 0; j < charList_native.size(); j++ ) + { + final BluetoothGattCharacteristic char_jth = charList_native.get(j); + + if( charUuid_nullable == null || charUuid_nullable != null && charUuid_nullable.equals(char_jth.getUuid()) ) + { + final List<BluetoothGattDescriptor> descriptors = getNativeDescriptorList_original(char_jth); + + if( forEach_nullable != null ) + { + if( Utils.doForEach_break(forEach_nullable, descriptors) ) + { + return null; + } + } + else + { + toReturn.addAll(descriptors); + } + } + } + } + } + + return toReturn; + } + + public Iterator<BluetoothGattService> getServices() + { + return getServices_List().iterator(); + } + + public List<BluetoothGattService> getServices_List() + { + return getNativeServiceList_cloned(); + } + + public Iterator<BluetoothGattCharacteristic> getCharacteristics(final UUID serviceUuid_nullable) + { + return getCharacteristics_List(serviceUuid_nullable).iterator(); + } + + public List<BluetoothGattCharacteristic> getCharacteristics_List(final UUID serviceUuid_nullable) + { + return collectAllNativeCharacteristics(serviceUuid_nullable, /*forEach=*/null); + } + + private BluetoothGattDescriptor getDescriptor(final BluetoothGattCharacteristic characteristic, final UUID descUuid) + { + final List<BluetoothGattDescriptor> list_native = getNativeDescriptorList_original(characteristic); + + for( int i = 0; i < list_native.size(); i++ ) + { + final BluetoothGattDescriptor ith = list_native.get(i); + + if( ith.getUuid().equals(descUuid) ) + { + return ith; + } + } + + return null; + } + + private BluetoothGattDescriptor getDescriptor(final BluetoothGattService service, final UUID charUuid_nullable, final UUID descUuid) + { + final List<BluetoothGattCharacteristic> charList = getNativeCharacteristicList_original(service); + + for( int j = 0; j < charList.size(); j++ ) + { + final BluetoothGattCharacteristic char_jth = charList.get(j); + + if( charUuid_nullable == null || charUuid_nullable != null && charUuid_nullable.equals(char_jth.getUuid()) ) + { + final BluetoothGattDescriptor descriptor = getDescriptor(char_jth, descUuid); + + if( descriptor != null ) + { + return descriptor; + } + } + } + + return null; + } + + public Iterator<BluetoothGattDescriptor> getDescriptors(final UUID serviceUuid_nullable, final UUID charUuid_nullable) + { + return getDescriptors_List(serviceUuid_nullable, charUuid_nullable).iterator(); + } + + public List<BluetoothGattDescriptor> getDescriptors_List(final UUID serviceUuid_nullable, final UUID charUuid_nullable) + { + return collectAllNativeDescriptors(serviceUuid_nullable, charUuid_nullable, null); + } + + public BluetoothGattDescriptor getDescriptor(final UUID serviceUuid_nullable, final UUID charUuid_nullable, final UUID descUuid) + { + if( serviceUuid_nullable == null ) + { + final List<BluetoothGattService> serviceList = getNativeServiceList_original(); + + for( int i = 0; i < serviceList.size(); i++ ) + { + final BluetoothGattService service_ith = serviceList.get(i); + final BluetoothGattDescriptor descriptor = getDescriptor(service_ith, charUuid_nullable, descUuid); + + if( descriptor != null ) + { + return descriptor; + } + } + } + else + { + final BluetoothGattService service_nullable = getServiceDirectlyFromNativeNode(serviceUuid_nullable); + + if( service_nullable == null ) + { + return null; + } + else + { + return getDescriptor(service_nullable, charUuid_nullable, descUuid); + } + } + + return null; + } + + public void getServices(final Object forEach) + { + Utils.doForEach_break(forEach, getNativeServiceList_original()); + } + + public void getCharacteristics(final UUID serviceUuid, final Object forEach) + { + collectAllNativeCharacteristics(serviceUuid, forEach); + } + + public void getDescriptors(final UUID serviceUuid, final UUID charUuid, final Object forEach) + { + collectAllNativeDescriptors(serviceUuid, charUuid, forEach); + } + + protected static boolean equals(final BluetoothGattService one, final BluetoothGattService another) + { + if( one == another ) + { + return true; + } + else + { + return false; + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_StateTracker.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_StateTracker.java new file mode 100644 index 0000000000000000000000000000000000000000..8a9e7188263e8e98ff7bbc1118226d2f8927b4fe --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_StateTracker.java @@ -0,0 +1,247 @@ +package com.idevicesinc.sweetblue; + +import com.idevicesinc.sweetblue.utils.State; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Utils_String; + +abstract class PA_StateTracker +{ + static enum E_Intent + { + INTENTIONAL, UNINTENTIONAL; + + public int getMask() + { + return this == INTENTIONAL ? 0xFFFFFFFF : 0x0; + } + + public State.ChangeIntent convert() + { + switch(this) + { + case INTENTIONAL: return State.ChangeIntent.INTENTIONAL; + case UNINTENTIONAL: return State.ChangeIntent.UNINTENTIONAL; + } + + return State.ChangeIntent.NULL; + } + } + + private int m_stateMask = 0x0; + + private final long[] m_timesInState; + private final int m_stateCount; + + PA_StateTracker(final State[] enums, final boolean trackTimes) + { + m_stateCount = enums.length; + m_timesInState = trackTimes ? new long[m_stateCount] : null; + } + + PA_StateTracker(final State[] enums) + { + this(enums, /*trackTimes=*/true); + } + + public boolean is(State state) + { + return checkBitMatch(state, true); + } + + public int getState() + { + return m_stateMask; + } + + boolean checkBitMatch(State flag, boolean value) + { + return ((flag.bit() & m_stateMask) != 0) == value; + } + + private int getMask(final int currentStateMask, final Object[] statesAndValues) + { + int newStateBits = currentStateMask; + + for( int i = 0; i < statesAndValues.length; i++ ) + { + Object ithValue = statesAndValues[i]; + + if( ithValue instanceof Object[] ) + { + newStateBits = getMask(newStateBits, (Object[])ithValue); + + continue; + } + + State state = (State) statesAndValues[i]; + boolean append = true; + + if( statesAndValues[i+1] instanceof Boolean ) + { + append = (Boolean) statesAndValues[i+1]; + i++; + } + + // TODO - Investigate this further to attempt to find the root cause + // Sometimes we get a weird BLE state back from the native stack. For now, we'll just ignore it. + if (state != null) + { + if (append) + { + append_assert(state); + + newStateBits |= state.bit(); + } + else + { + newStateBits &= ~state.bit(); + } + } + } + + return newStateBits; + } + + void append(State newState, E_Intent intent, int status) + { + if( newState./*already*/overlaps(m_stateMask) ) + { +// m_logger.w("Already in state: " + newState); + + return; + } + + append_assert(newState); + + setStateMask(m_stateMask | newState.bit(), intent == E_Intent.INTENTIONAL ? newState.bit() : 0x0, status); + } + + void remove(State state, E_Intent intent, int status) + { + setStateMask(m_stateMask & ~state.bit(), intent == E_Intent.INTENTIONAL ? state.bit() : 0x0, status); + } + + protected void append_assert(State newState){} + +// void appendMultiple(I_BitwiseEnum ... states) +// { +// int newStateBits = m_stateMask; +// for( int i = 0; i < states.length; i++ ) +// { +// I_BitwiseEnum ithState = I_BitwiseEnum.values()[i]; +// +// append_assert(ithState); +// +// newStateBits |= ithState.bit(); +// } +// +// setStateMask(newStateBits); +// } + + void set(final E_Intent intent, final int status, final Object ... statesAndValues) + { + set(intent.getMask(), status, statesAndValues); + } + + private void set(final int intentMask, final int status, final Object ... statesAndValues) + { + final int newStateBits = getMask(0x0, statesAndValues); + + setStateMask(newStateBits, intentMask, status); + } + + void update(E_Intent intent, int status, Object ... statesAndValues) + { + update(intent.getMask(), status, statesAndValues); + } + + private void update(int intentMask, int status, Object ... statesAndValues) + { + int newStateBits = getMask(m_stateMask, statesAndValues); + + setStateMask(newStateBits, intentMask, status); + } + + long getTimeInState(int stateOrdinal) + { + if( m_timesInState == null ) return 0; + + int bit = (0x1 << stateOrdinal); + + if( (bit & m_stateMask) != 0x0 ) + { + return System.currentTimeMillis() - m_timesInState[stateOrdinal]; + } + else + { + return m_timesInState[stateOrdinal]; + } + } + + protected void copy(PA_StateTracker stateTracker) + { + this.setStateMask(stateTracker.getState(), 0x0, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + + private void setStateMask(final int newStateBits, int intentMask, final int status) + { + int oldStateBits = m_stateMask; + m_stateMask = newStateBits; + + //--- DRK > Minor skip optimization...shouldn't actually skip (too much) in practice + //--- if other parts of the library are handling their state tracking sanely. + if( oldStateBits != newStateBits ) + { + for( int i = 0, bit = 0x1; i < m_stateCount; i++, bit <<= 0x1 ) + { + //--- DRK > State exited... + if( (oldStateBits & bit) != 0x0 && (newStateBits & bit) == 0x0 ) + { + if( m_timesInState != null ) + { + m_timesInState[i] = System.currentTimeMillis() - m_timesInState[i]; + } + } + //--- DRK > State entered... + else if( (oldStateBits & bit) == 0x0 && (newStateBits & bit) != 0x0 ) + { + if( m_timesInState != null ) + { + m_timesInState[i] = System.currentTimeMillis(); + } + } + else + { + intentMask &= ~bit; + } + } + } + else + { + intentMask = 0x0; + } + + fireStateChange(oldStateBits, newStateBits, intentMask, status); + } + + protected abstract void onStateChange(int oldStateBits, int newStateBits, int intentMask, int status); + + private void fireStateChange(int oldStateBits, int newStateBits, int intentMask, int status) + { + if( oldStateBits == newStateBits ) + { + //--- DRK > Should sorta have an assert here but there's a few + //--- valid cases (like implicit connection fail) where it's valid + //--- so we'd have to be a little more intelligent about asserting. +// U_Bt.ASSERT(false); + return; + } + + onStateChange(oldStateBits, newStateBits, intentMask, status); + } + + protected String toString(State[] enums) + { + return Utils_String.toString(m_stateMask, enums); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task.java new file mode 100644 index 0000000000000000000000000000000000000000..547307558a543f647c82a69afd4a20c916650519 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task.java @@ -0,0 +1,485 @@ +package com.idevicesinc.sweetblue; + +import java.util.UUID; + +import com.idevicesinc.sweetblue.utils.Interval; +import com.idevicesinc.sweetblue.utils.Uuids; + +abstract class PA_Task +{ + static interface I_StateListener + { + void onStateChange(PA_Task task, PE_TaskState state); + } + + private static final int ORDINAL_NOT_YET_ASSIGNED = -1; + + private static final BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent s_timeoutRequestEvent = new BleNodeConfig.TaskTimeoutRequestFilter.TaskTimeoutRequestEvent(); + + + private BleDevice m_device; + private BleServer m_server; + private final BleManager m_manager; + + private double m_timeout; + private double m_executionDelay = 0.0; + + private long m_resetableExecuteStartTime = 0; +// private double m_totalTimeExecuting = 0.0; + private double m_totalTimeArmedAndExecuting = 0.0; +// private double m_totalTimeQueuedAndArmedAndExecuting = 0.0; + + private final I_StateListener m_stateListener; + + private PE_TaskState m_state = null; + + private P_TaskQueue m_queue; + +// private int m_maxRetries; +// private int m_retryCount; + + private long m_timeCreated; + private long m_timeExecuted; + + private boolean m_softlyCancelled = false; + + private int m_defaultOrdinal = ORDINAL_NOT_YET_ASSIGNED; // until added to the queue and assigned an actual ordinal. + + + public PA_Task(BleServer server, I_StateListener listener) + { + this(server.getManager(), listener); + + m_server = server; + } + + public PA_Task(BleDevice device, I_StateListener listener) + { + this(device.getManager(), listener); + + m_device = device; + } + + public PA_Task(BleManager manager, I_StateListener listener) + { + m_device = null; + m_manager = manager; +// m_maxRetries = 0; + m_timeCreated = System.currentTimeMillis(); + + if( listener == null && this instanceof I_StateListener ) + { + //--- DRK > Can't pass this pointer from subclass up through super(), otherwise that would be cleaner. + m_stateListener = (I_StateListener) this; + } + else + { + m_stateListener = listener; + } + } + + protected abstract BleTask getTaskType(); + + protected double getInitialTimeout() + { + final BleTask taskType = getTaskType(); + + if( taskType != null ) + { + final BleDevice device = getDevice() != null ? getDevice() : BleDevice.NULL; + final BleServer server = getServer() != null ? getServer() : BleServer.NULL; + + s_timeoutRequestEvent.init(getManager(), device, server, taskType, getCharUuid(), getDescUuid()); + + return BleNodeConfig.getTimeout(s_timeoutRequestEvent); + } + else + { + getManager().ASSERT(false, "BleTask type shouldn't be null."); + + return BleNodeConfig.DefaultTaskTimeoutRequestFilter.DEFAULT_TASK_TIMEOUT; // just a back-up, should never be invoked. + } + } + + protected /*virtual*/ UUID getCharUuid() + { + return Uuids.INVALID; + } + + protected /*virtual*/ UUID getDescUuid() + { + return Uuids.INVALID; + } + + void init() + { + setState(PE_TaskState.CREATED); + } + + protected P_Logger getLogger() + { + return getManager().getLogger(); + } + + private void setState(PE_TaskState newState) + { + if( !m_manager.ASSERT(newState != m_state) ) return; + + m_state = newState; + + if( getLogger().isEnabled() ) + { + if( m_state.isEndingState() ) + { + String logText = this.toString(); + if( m_queue != null ) + { + logText += " - " + m_queue.getUpdateCount(); + } + + getLogger().i(logText); + } + else if (m_state == PE_TaskState.EXECUTING ) + { + getQueue().print(); + } + } + + if( m_stateListener != null ) m_stateListener.onStateChange(this, m_state); + } + + PE_TaskState getState() + { + return m_state; + } + + int getOrdinal() + { + return m_defaultOrdinal; + } + + void assignDefaultOrdinal(final P_TaskQueue queue) + { + m_defaultOrdinal = m_defaultOrdinal == ORDINAL_NOT_YET_ASSIGNED ? queue.assignOrdinal() : m_defaultOrdinal; + } + + void onAddedToQueue(P_TaskQueue queue) + { + m_queue = queue; + setState(PE_TaskState.QUEUED); +// m_retryCount = 0; + } + + void resetTimeout(double newTimeout) + { + //--- DRK > Can be called upstream from different thread than the update loop, + //--- so preventing clashes here with this.update method. + m_timeout = newTimeout; + m_resetableExecuteStartTime = System.currentTimeMillis(); + } + + protected void timeout() + { + m_queue.tryEndingTask(this, PE_TaskState.TIMED_OUT); + } + + protected void redundant() + { + m_queue.tryEndingTask(this, PE_TaskState.REDUNDANT); + } + + protected void succeed() + { + m_queue.tryEndingTask(this, PE_TaskState.SUCCEEDED); + } + + protected void fail() + { + m_queue.tryEndingTask(this, PE_TaskState.FAILED); + } + + protected void clearFromQueue() + { + if( this.getState() == PE_TaskState.ARMED || this.getState() == PE_TaskState.EXECUTING ) + { + getManager().ASSERT(false, "Tried to clear a task from queue while its armed or executing."); + } + else + { + m_queue.tryEndingTask(this, PE_TaskState.CLEARED_FROM_QUEUE); + } + } + + protected void failImmediately() + { + m_queue.tryEndingTask(this, PE_TaskState.FAILED_IMMEDIATELY); + } + + protected void selfInterrupt() + { + boolean wasExecuting = this.getState() == PE_TaskState.EXECUTING || this.getState() == PE_TaskState.ARMED; + + if( wasExecuting ) + { + m_queue.tryEndingTask(this, PE_TaskState.INTERRUPTED); + + m_queue.add(this); + } + } + + protected void softlyCancel() + { +// m_maxRetries = 0; + m_queue.tryEndingTask(this, PE_TaskState.SOFTLY_CANCELLED); + } + + protected void failWithoutRetry() + { +// m_maxRetries = 0; + fail(); + } + + void arm() + { + setState(PE_TaskState.ARMED); + +// m_totalTimeQueuedAndArmedAndExecuting = m_queue.getTime() - m_addedToQueueTime; + m_totalTimeArmedAndExecuting = 0.0; +// m_totalTimeExecuting = 0.0; + m_resetableExecuteStartTime = System.currentTimeMillis(); +// m_retryCount = 0; + m_timeout = getInitialTimeout(); + } + + protected boolean isExecutable() + { + return true; + } + + protected boolean isArmable() + { + return true; + } + + private void execute_wrapper() + { + m_resetableExecuteStartTime = System.currentTimeMillis(); + m_timeExecuted = System.currentTimeMillis(); + + execute(); + } + + abstract void execute(); + + void setEndingState(PE_TaskState endingState) + { + if( m_softlyCancelled ) + { + endingState = PE_TaskState.SOFTLY_CANCELLED; + } + + if( !m_manager.ASSERT(endingState.isEndingState()) ) return; + + //--- DRK > Might be true for timeouts...overall just being defensive but not assertion-level defense. + if( m_state == endingState ) return; + + if( !m_manager.ASSERT(!m_state.isEndingState()) ) return; + + setState(endingState); + } + + public void tryExecuting() + { + if( m_state == PE_TaskState.ARMED ) + { + //--- DRK > Force at least one time step between becoming armed and executing. + //--- TODO: Possibly gate this with an optional time requirement. + //--- For example we might want to give the ble stack time to "settle" after + //--- a heavy operation...yes i know how ridiculous that sounds... +// if( m_updateCount > 1 ) + { + //--- DRK > Debug code to delay reads and writes and such. +// if( m_device != null && m_device.is(E_DeviceState.INITIALIZED) ) +// { +// if( m_totalTimeArmedAndExecuting < 2.0 ) +// { +// return; +// } +// } + + if( m_softlyCancelled ) + { + softlyCancel(); + + return; + } + + if( isExecutable() ) + { + setState(PE_TaskState.EXECUTING); + + execute_wrapper(); + + return; + } + else + { + onNotExecutable(); + + return; + } + } + } + } + + void update_internal(double timeStep) + { + m_totalTimeArmedAndExecuting += timeStep; +// m_totalTimeQueuedAndArmedAndExecuting += timeStep; + + if( m_totalTimeArmedAndExecuting >= m_executionDelay ) + { + if( m_state == PE_TaskState.ARMED ) + { + tryExecuting(); + } + else if( m_state == PE_TaskState.EXECUTING ) + { + if( !Interval.isDisabled(m_timeout) && m_timeout != Interval.INFINITE.secs() ) + { + double timeExecuting = (System.currentTimeMillis() - m_resetableExecuteStartTime)/1000.0; + + if( timeExecuting >= m_timeout ) + { + timeout(); + + return; + } + } + } + } + + this.update(timeStep); + } + + protected void onNotExecutable() + { + failWithoutRetry(); + } + + protected void update(double timeStep){} + + public double getTotalTimeExecuting() + { + return (System.currentTimeMillis() - m_timeExecuted)/1000.0; + } + + public double getTotalTime() + { + return (System.currentTimeMillis() - m_timeCreated)/1000.0; + } + + public double getAggregatedTimeArmedAndExecuting() + { + return m_totalTimeArmedAndExecuting; + } + + public boolean isFor(final Class<? extends PA_Task_ConnectOrDisconnectServer> taskClass, final BleServer server, final String macAddress) + { + if( taskClass.isAssignableFrom(this.getClass()) ) + { + final PA_Task_ConnectOrDisconnectServer this_cast = (PA_Task_ConnectOrDisconnectServer) this; + + return this_cast.isFor(server, macAddress); + } + else + { + return false; + } + } + + public BleDevice getDevice() + { + return m_device; + } + + public BleServer getServer() + { + return m_server; + } + + public BleManager getManager() + { + return m_manager; + } + + public double getTimeout() + { + return m_timeout; + } + + protected P_TaskQueue getQueue() + { + return m_queue; + } + + public abstract PE_TaskPriority getPriority(); + + public boolean isMoreImportantThan(PA_Task task) + { + return isMoreImportantThan_default(task); + } + + /** + * Default implementation to call by subsubclasses if they want to skip their immediate parent's implementation. + */ + protected boolean isMoreImportantThan_default(PA_Task task) + { + return this.getPriority().ordinal() > task.getPriority().ordinal(); + } + + public boolean isInterruptableBy(PA_Task task) + { + return false; + } + + public boolean isCancellableBy(PA_Task task) + { + return false; + } + + protected boolean isSoftlyCancellableBy(PA_Task task) + { + return false; + } + + protected void attemptToSoftlyCancel(PA_Task task) + { + m_softlyCancelled = true; + } + + public boolean wasSoftlyCancelled() + { + return m_softlyCancelled; + } + + protected String getToStringAddition() + { + return null; + } + + @Override public String toString() + { + String name = this.getClass().getSimpleName(); + name = name.replace("P_Task_", ""); + + String deviceEntry = getDevice() != null ? " " + getDevice().getName_debug(): ""; + String addition = getToStringAddition() != null ? " " + getToStringAddition() : ""; + return name + "(" + m_state.name() + deviceEntry + addition + ")"; + } + + public boolean isExplicit() + { + return false; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task_ConnectOrDisconnectServer.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task_ConnectOrDisconnectServer.java new file mode 100644 index 0000000000000000000000000000000000000000..864061f9e4cd238dd09f851ef57e53618f44a48b --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task_ConnectOrDisconnectServer.java @@ -0,0 +1,42 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothDevice; + + +abstract class PA_Task_ConnectOrDisconnectServer extends PA_Task_RequiresBleOn +{ + private final PE_TaskPriority m_priority; + private final boolean m_explicit; + final BluetoothDevice m_nativeDevice; + + protected int m_gattStatus = BleStatuses.GATT_STATUS_NOT_APPLICABLE; + + PA_Task_ConnectOrDisconnectServer(final BleServer server, final BluetoothDevice device, final I_StateListener listener, final boolean explicit, final PE_TaskPriority priority) + { + super(server, listener); + + m_explicit = explicit; + m_priority = priority; + m_nativeDevice = device; + } + + public boolean isFor(final BleServer server, final String macAddress) + { + return server.equals(getServer()) && macAddress.equals(m_nativeDevice.getAddress()); + } + + @Override public PE_TaskPriority getPriority() + { + return m_priority; + } + + @Override public boolean isExplicit() + { + return m_explicit; + } + + public int getGattStatus() + { + return m_gattStatus; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task_ReadOrWrite.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task_ReadOrWrite.java new file mode 100644 index 0000000000000000000000000000000000000000..a979dff5394c4370c1d93749b611b5f186459395 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task_ReadOrWrite.java @@ -0,0 +1,278 @@ +package com.idevicesinc.sweetblue; + +import java.lang.reflect.Field; +import java.util.UUID; + +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattDescriptor; + +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Target; +import com.idevicesinc.sweetblue.utils.Utils; + +abstract class PA_Task_ReadOrWrite extends PA_Task_Transactionable implements PA_Task.I_StateListener +{ + private static final String FIELD_NAME_AUTH_RETRY = "mAuthRetry"; + + private final UUID m_charUuid; + private final UUID m_servUuid; + + protected final ReadWriteListener m_readWriteListener; + + private Boolean m_authRetryValue_onExecute = null; + private boolean m_triedToKickOffBond = false; + + PA_Task_ReadOrWrite(BleDevice device, BluetoothGattCharacteristic nativeChar, ReadWriteListener readWriteListener, boolean requiresBonding, BleTransaction txn_nullable, PE_TaskPriority priority) + { + super(device, txn_nullable, requiresBonding, priority); + + m_charUuid = nativeChar.getUuid(); + m_servUuid = nativeChar.getService().getUuid(); + + m_readWriteListener = readWriteListener; + } + + PA_Task_ReadOrWrite(BleDevice device, UUID serviceUuid, UUID charUuid, ReadWriteListener readWriteListener, boolean requiresBonding, BleTransaction txn_nullable, PE_TaskPriority priority) + { + super(device, txn_nullable, requiresBonding, priority); + + m_charUuid = charUuid; + m_servUuid = serviceUuid; + + m_readWriteListener = readWriteListener; + } + + protected abstract ReadWriteEvent newReadWriteEvent(Status status, int gattStatus, Target target, UUID serviceUuid, UUID charUuid, UUID descUuid); + + protected Target getDefaultTarget() + { + return Target.CHARACTERISTIC; + } + + protected void fail(Status status, int gattStatus, Target target, UUID charUuid, UUID descUuid) + { + this.fail(); + + getDevice().invokeReadWriteCallback(m_readWriteListener, newReadWriteEvent(status, gattStatus, target, getServiceUuid(), charUuid, descUuid)); + } + + @Override protected void onNotExecutable() + { + super.onNotExecutable(); + + final ReadWriteEvent event = newReadWriteEvent(Status.NOT_CONNECTED, BleStatuses.GATT_STATUS_NOT_APPLICABLE, getDefaultTarget(), getServiceUuid(), getCharUuid(), getDescUuid()); + + getDevice().invokeReadWriteCallback(m_readWriteListener, event); + } + + protected boolean acknowledgeCallback(int status) + { + //--- DRK > As of now, on the nexus 7, if a write requires authentication, it kicks off a bonding process + //--- and we don't get a callback for the write (android bug), so we let this write task be interruptible + //--- by an implicit bond task. If on other devices we *do* get a callback, we ignore it so that this + //--- library's logic always follows the lowest common denominator that is the nexus 7. + //--- NOTE: Also happens with tab 4, same thing as nexus 7. + if( status == BluetoothGatt.GATT_INSUFFICIENT_AUTHENTICATION || status == BleStatuses.GATT_AUTH_FAIL ) + { + return false; + } + + return true; + } + + private void checkIfBondingKickedOff() + { + if( getState() == PE_TaskState.EXECUTING ) + { + if( m_triedToKickOffBond == false ) + { + final Boolean authRetryValue_now = getAuthRetryValue(); + + if( m_authRetryValue_onExecute != null && authRetryValue_now != null ) + { + if( m_authRetryValue_onExecute == false && authRetryValue_now == true ) + { + m_triedToKickOffBond = true; + + getManager().getLogger().i("Kicked off bond!"); + } + } + } + } + } + + private boolean triedToKickOffBond() + { + return m_triedToKickOffBond; + } + + @Override public void execute() + { + m_authRetryValue_onExecute = getAuthRetryValue(); + } + + @Override public void update(double timeStep) + { + checkIfBondingKickedOff(); + } + + private Boolean getAuthRetryValue() + { + final BluetoothGatt gatt = getDevice().getNativeGatt(); + + if( gatt != null ) + { + try + { + final Field[] fields = gatt.getClass().getDeclaredFields(); + Field field = gatt.getClass().getDeclaredField(FIELD_NAME_AUTH_RETRY); + final boolean isAccessible_saved = field.isAccessible(); + field.setAccessible(true); + Boolean result = field.getBoolean(gatt); + field.setAccessible(isAccessible_saved); + + return result; + } + catch (Exception e) + { + getManager().ASSERT(false, "Problem getting value of " + gatt.getClass().getSimpleName() + "." + FIELD_NAME_AUTH_RETRY); + } + } + else + { + getManager().ASSERT(false, "Expected gatt object to be not null"); + } + + return null; + } + + @Override protected UUID getCharUuid() + { + return m_charUuid; + } + + protected UUID getServiceUuid() + { + return m_servUuid; + } + + public boolean isFor(final BluetoothGattCharacteristic characteristic) + { + return + characteristic.getUuid().equals(getCharUuid()) && + characteristic.getService().getUuid().equals(getServiceUuid()); + } + + public boolean isFor(final BluetoothGattDescriptor descriptor) + { + return descriptor.getUuid().equals(getDescUuid()) && isFor(descriptor.getCharacteristic()); + } + + protected boolean isForCharacteristic(UUID uuid) + { + return uuid.equals(getCharUuid()); + } + + @Override protected String getToStringAddition() + { + final String txn = getTxn() != null ? " txn!=null" : " txn==null"; + return getManager().getLogger().uuidName(getCharUuid()) + txn; + } + + @Override public void onStateChange(PA_Task task, PE_TaskState state) + { + if( state == PE_TaskState.TIMED_OUT ) + { + checkIfBondingKickedOff(); + + if( triedToKickOffBond() ) + { + getDevice().notifyOfPossibleImplicitBondingAttempt(); + getDevice().m_bondMngr.saveNeedsBondingIfDesired(); + + getManager().getLogger().i("Kicked off bond and " + PE_TaskState.TIMED_OUT.name()); + } + } + } + + protected void onCharacteristicOrDescriptorRead(BluetoothGatt gatt, UUID uuid, byte[] value, int gattStatus, ReadWriteListener.Type type) + { + getManager().ASSERT(gatt == getDevice().getNativeGatt()); + +// if( false == this.isForCharacteristic(uuid) ) return; + + if( false == acknowledgeCallback(gattStatus) ) return; + + if( Utils.isSuccess(gattStatus) ) + { + if( value != null ) + { + if( value.length == 0 ) + { + fail(Status.EMPTY_DATA, gattStatus, getDefaultTarget(), getCharUuid(), getDescUuid()); + } + else + { + succeedRead(value, getDefaultTarget(), type); + } + } + else + { + fail(Status.NULL_DATA, gattStatus, getDefaultTarget(), getCharUuid(), getDescUuid()); + + getManager().uhOh(BleManager.UhOhListener.UhOh.READ_RETURNED_NULL); + } + } + else + { + fail(Status.REMOTE_GATT_FAILURE, gattStatus, getDefaultTarget(), getCharUuid(), getDescUuid()); + } + } + + private ReadWriteEvent newSuccessReadWriteEvent(byte[] data, Target target, ReadWriteListener.Type type, UUID charUuid, UUID descUuid) + { + return new ReadWriteEvent(getDevice(), getServiceUuid(), charUuid, descUuid, type, target, data, Status.SUCCESS, BluetoothGatt.GATT_SUCCESS, getTotalTime(), getTotalTimeExecuting(), /*solicited=*/true); + } + + private void succeedRead(byte[] value, Target target, ReadWriteListener.Type type) + { + super.succeed(); + + final ReadWriteEvent event = newSuccessReadWriteEvent(value, target, type, getCharUuid(), getDescUuid()); + getDevice().addReadTime(event.time_total().secs()); + + getDevice().invokeReadWriteCallback(m_readWriteListener, event); + } + + protected void succeedWrite() + { + super.succeed(); + + final ReadWriteEvent event = newReadWriteEvent(Status.SUCCESS, BluetoothGatt.GATT_SUCCESS, getDefaultTarget(), getServiceUuid(), getCharUuid(), ReadWriteEvent.NON_APPLICABLE_UUID); + getDevice().addWriteTime(event.time_total().secs()); + getDevice().invokeReadWriteCallback(m_readWriteListener, event); + } + + protected boolean write_earlyOut(final byte[] data_nullable) + { + if( data_nullable == null ) + { + fail(Status.NULL_DATA, BleStatuses.GATT_STATUS_NOT_APPLICABLE, Target.CHARACTERISTIC, getCharUuid(), getDescUuid()); + + return true; + } + else if( data_nullable.length == 0 ) + { + fail(Status.EMPTY_DATA, BleStatuses.GATT_STATUS_NOT_APPLICABLE, Target.CHARACTERISTIC, getCharUuid(), getDescUuid()); + + return true; + } + else + { + return false; + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task_RequiresBleOn.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task_RequiresBleOn.java new file mode 100644 index 0000000000000000000000000000000000000000..18edb74dfc0eceb0ce93122bec80ecbff19c6346 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task_RequiresBleOn.java @@ -0,0 +1,54 @@ +package com.idevicesinc.sweetblue; + +/** + * + * + * + */ +abstract class PA_Task_RequiresBleOn extends PA_Task +{ + public PA_Task_RequiresBleOn(BleServer server, I_StateListener listener) + { + super(server, listener); + } + + public PA_Task_RequiresBleOn(BleManager manager, I_StateListener listener) + { + super(manager, listener); + } + + public PA_Task_RequiresBleOn(BleDevice device, I_StateListener listener) + { + super(device, listener); + } + + @Override protected boolean isExecutable() + { + return super.isExecutable() && BleManagerState.ON.overlaps(getManager().getNativeStateMask()); + } + + @Override public boolean isCancellableBy(PA_Task task) + { + if( task instanceof P_Task_TurnBleOff ) + { + return true; + } + else if( task instanceof P_Task_CrashResolver ) + { + final P_Task_CrashResolver task_cast = (P_Task_CrashResolver) task; + + if( task_cast.isForReset() ) + { + return true; + } + else + { + return super.isCancellableBy(task); + } + } + else + { + return super.isCancellableBy(task); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task_RequiresConnection.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task_RequiresConnection.java new file mode 100644 index 0000000000000000000000000000000000000000..77f8266d762dae53b725c30d02d23e309c79fc3d --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task_RequiresConnection.java @@ -0,0 +1,88 @@ +package com.idevicesinc.sweetblue; + +abstract class PA_Task_RequiresConnection extends PA_Task_RequiresBleOn +{ + public PA_Task_RequiresConnection(BleDevice device, I_StateListener listener) + { + super(device, listener); + } + + @Override protected boolean isExecutable() + { + boolean shouldBeExecutable = super.isExecutable() && getDevice().m_nativeWrapper.isNativelyConnected(); + + if( shouldBeExecutable ) + { + if( getDevice().getNativeGatt() == null ) + { + getLogger().e("Device says we're natively connected but gatt==null"); + getManager().ASSERT(false); + + return false; + } + else + { + return true; + } + } + + return false; + } + + protected final BleDevice.ReadWriteListener.Status getCancelType() + { + BleManager mngr = this.getManager(); + + if( mngr.isAny(BleManagerState.TURNING_OFF, BleManagerState.OFF) ) + { + return BleDevice.ReadWriteListener.Status.CANCELLED_FROM_BLE_TURNING_OFF; + } + else + { + return BleDevice.ReadWriteListener.Status.CANCELLED_FROM_DISCONNECT; + } + } + + @Override protected boolean isSoftlyCancellableBy(PA_Task task) + { + if( task.getClass() == P_Task_Disconnect.class && this.getDevice().equals(task.getDevice()) ) + { + final P_Task_Disconnect task_cast = (P_Task_Disconnect) task; + + if( task_cast.getOrdinal() > this.getOrdinal() ) + { + return true; + } + } + + return super.isSoftlyCancellableBy(task); + } + + @Override protected void attemptToSoftlyCancel(PA_Task task) + { + super.attemptToSoftlyCancel(task); + + //--- DRK > The following logic became necessary due to the following situation: + //--- * device connected successfully. + //--- * getting service task started execution, sent out get services call. + //--- * something related to the get services call (probably, gatt status code 142/0x8E) made us disconnect, resulting in connection fail callback + //--- * we get no error callback for getting services, thus... + //--- * getting services task was still executing until it timed out, prompting another connection fail callback even though we already failed from the root cause. + //--- NOTE that this was only directly observed for discovering services, but who knows, maybe it can happen for reads/writes/etc. as well. Normally, I'm pretty sure, + //--- reads/writes fail first then you get the disconnect callback. + if( task.getClass() == P_Task_Disconnect.class && this.getDevice().equals(task.getDevice()) ) + { + P_Task_Disconnect task_cast = (P_Task_Disconnect) task; + + if( !task_cast.isExplicit() ) + { + //--- DRK > Not sure why the "not is connected" qualifier was there.. + //--- MAYBE something to do with onNativeDisconnect doing soft cancellation after state change. + if( getState() == PE_TaskState.EXECUTING )//&& !getDevice().is(BleDeviceState.CONNECTED) ) + { + softlyCancel(); + } + } + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task_RequiresServerConnection.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task_RequiresServerConnection.java new file mode 100644 index 0000000000000000000000000000000000000000..8204a79b9247740034aa82dc9a6c9d2b765fe522 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task_RequiresServerConnection.java @@ -0,0 +1,90 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothGattServer; + +abstract class PA_Task_RequiresServerConnection extends PA_Task_RequiresBleOn +{ + final String m_macAddress; + + public PA_Task_RequiresServerConnection(BleServer server, final String macAddress) + { + super(server, null); + + m_macAddress = macAddress; + } + + protected final BleServer.OutgoingListener.Status getCancelStatusType() + { + BleManager mngr = this.getManager(); + + if( mngr.isAny(BleManagerState.TURNING_OFF, BleManagerState.OFF) ) + { + return BleServer.OutgoingListener.Status.CANCELLED_FROM_BLE_TURNING_OFF; + } + else + { + return BleServer.OutgoingListener.Status.CANCELLED_FROM_DISCONNECT; + } + } + + @Override protected boolean isExecutable() + { + boolean shouldBeExecutable = super.isExecutable() && getServer().m_nativeWrapper.getNativeState(m_macAddress) == BluetoothGattServer.STATE_CONNECTED; + + if( shouldBeExecutable ) + { + return true; + } + + return false; + } + + @Override protected boolean isSoftlyCancellableBy(PA_Task task) + { + if( task.getClass() == P_Task_DisconnectServer.class && this.getServer().equals(task.getServer()) ) + { + final P_Task_DisconnectServer task_cast = (P_Task_DisconnectServer) task; + + if( task_cast.m_nativeDevice != null && task_cast.m_nativeDevice.getAddress().equals(m_macAddress) ) + { + if( task_cast.getOrdinal() > this.getOrdinal() ) + { + return true; + } + } + } + + return super.isSoftlyCancellableBy(task); + } + + @Override protected void attemptToSoftlyCancel(PA_Task task) + { + super.attemptToSoftlyCancel(task); + + //--- DRK > The following logic became necessary due to the following situation: + //--- * device connected successfully. + //--- * getting service task started execution, sent out get services call. + //--- * something related to the get services call (probably, gatt status code 142/0x8E) made us disconnect, resulting in connection fail callback + //--- * we get no error callback for getting services, thus... + //--- * getting services task was still executing until it timed out, prompting another connection fail callback even though we already failed from the root cause. + //--- NOTE that this was only directly observed for discovering services, but who knows, maybe it can happen for reads/writes/etc. as well. Normally, I'm pretty sure, + //--- reads/writes fail first then you get the disconnect callback. + if( task.getClass() == P_Task_DisconnectServer.class && this.getServer().equals(task.getServer()) ) + { + final P_Task_DisconnectServer task_cast = (P_Task_DisconnectServer) task; + + if( task_cast.m_nativeDevice != null && task_cast.m_nativeDevice.getAddress().equals(m_macAddress) ) + { + if( !task_cast.isExplicit() ) + { + //--- DRK > Not sure why the "not is connected" qualifier was there.. + //--- MAYBE something to do with onNativeDisconnect doing soft cancellation after state change. + if( getState() == PE_TaskState.EXECUTING )//&& !getDevice().is(BleDeviceState.CONNECTED) ) + { + softlyCancel(); + } + } + } + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task_Transactionable.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task_Transactionable.java new file mode 100644 index 0000000000000000000000000000000000000000..878157f522a3680f1b2def683bbc09d80807123e --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PA_Task_Transactionable.java @@ -0,0 +1,162 @@ +package com.idevicesinc.sweetblue; + +import java.util.UUID; + +import android.bluetooth.BluetoothGatt; + +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Target; + +abstract class PA_Task_Transactionable extends PA_Task_RequiresConnection +{ + protected final boolean m_requiresBonding; + private final BleTransaction m_txn; + private final PE_TaskPriority m_priority; + + PA_Task_Transactionable(BleDevice device, BleTransaction txn_nullable, boolean requiresBonding, PE_TaskPriority priority) + { + super(device, null); + + m_requiresBonding = requiresBonding; + m_txn = txn_nullable; + m_priority = priority != null ? priority : PE_TaskPriority.FOR_NORMAL_READS_WRITES; + } + + public BleTransaction getTxn() + { + return m_txn; + } + + @Override protected boolean isSoftlyCancellableBy(PA_Task task) + { + final boolean defaultDecision = super.isSoftlyCancellableBy(task); + + if( defaultDecision == true ) + { + if( getTxn() != null ) + { + return true; + } + else + { + //--- DRK > Accessing short term reconnect mngr here is a hack, but I can't figure out a better way. + //--- The disconnect task added to the queue must be done before the state change callback to appland + //--- so we're still reconnecting short term as far as device state is concerned. + if( getDevice().is(BleDeviceState.RECONNECTING_SHORT_TERM) && getDevice().reconnectMngr().isRunning() ) + { + if( getState() == PE_TaskState.QUEUED ) + { + return false; + } + else + { + return true; + } + } + else + { + return true; + } + } + } + else + { + return defaultDecision; + } + } + + @Override public boolean isInterruptableBy(PA_Task task) + { + if( task instanceof P_Task_Bond ) + { + P_Task_Bond bondTask = (P_Task_Bond) task; + + //--- DRK > Commenting out the "requires bonding" check because for now it requires user to implement + //--- a custom bond filter, which is too much a requirement for beginners to be aware of. +// if( m_requiresBonding ) + { + if( !bondTask.isExplicit() ) + { + return true; + } + } + } + + if( this.getState() == PE_TaskState.ARMED ) + { + if( task instanceof P_Task_Connect ) + { + if( task.getDevice().equals(this.getDevice()) ) + { + return true; + } + } + } + + return false; + } + + @Override public boolean isMoreImportantThan(PA_Task task) + { + if( task instanceof P_Task_TxnLock ) + { + P_Task_TxnLock task_cast = (P_Task_TxnLock) task; + + if( this.getDevice() == task_cast.getDevice() && this.getTxn() == task_cast.getTxn() ) + { + return true; + } + } + else if( task instanceof P_Task_Scan ) + { + if( this.getPriority().ordinal() <= PE_TaskPriority.FOR_NORMAL_READS_WRITES.ordinal() ) + { + return false; + } + } + + //--- DRK > This allows the plain old reads/writes during auth/initialization to have + //--- higher priority than notification enabling. Otherwise we don't care. + else if( task instanceof P_Task_ToggleNotify ) + { + //--- DRK > NOTE: Disabling this now because some protocols use a write/notify combination to "read" data from a device. + //--- Why not just use read? Who knows, but it happens. The below logic would mean that for enableNotify and then write, + //--- the write task would skip ahead of the enable notify, which could cause some problems. +// if( !(this instanceof P_Task_ToggleNotify) ) +// { +// if( this.getDevice().is_internal(BleDeviceState.INITIALIZED) ) +// { +// return true; +// } +// } + } + + return super.isMoreImportantThan(task); + } + + @Override public PE_TaskPriority getPriority() + { + return m_priority; + } + + @Override protected boolean isArmable() + { + if( getDevice().is(BleDeviceState.RECONNECTING_SHORT_TERM ) ) + { + //--- DRK > If reconnecting short term, we only allow transaction-related tasks to become armed. + if( getDevice().is_internal(BleDeviceState.SERVICES_DISCOVERED) ) + { + return getTxn() != null; + } + else + { + return false; + } + } + else + { + return super.isArmable(); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PE_TaskPriority.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PE_TaskPriority.java new file mode 100644 index 0000000000000000000000000000000000000000..540ecbdaf506b6d4b35c73477fed646490715623 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PE_TaskPriority.java @@ -0,0 +1,18 @@ +package com.idevicesinc.sweetblue; + +/** + * + */ +enum PE_TaskPriority +{ + TRIVIAL, // for now only for scanning. + LOW, // for normal reads and writes and such. + MEDIUM, // default level for connection and bonding related tasks. + HIGH, // for implicit bonding and connection events, for example if user did something through another app or the OS, or came back into range. + CRITICAL; // for enabling/disabling ble and for removing bonds and disconnecting before actual ble disable. + + static final PE_TaskPriority FOR_NORMAL_READS_WRITES = LOW; + static final PE_TaskPriority FOR_EXPLICIT_BONDING_AND_CONNECTING = MEDIUM; + static final PE_TaskPriority FOR_PRIORITY_READS_WRITES = MEDIUM; + static final PE_TaskPriority FOR_IMPLICIT_BONDING_AND_CONNECTING = HIGH; +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PE_TaskState.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PE_TaskState.java new file mode 100644 index 0000000000000000000000000000000000000000..5e9d3813880e17e9899188d060de5edf3ced6299 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PE_TaskState.java @@ -0,0 +1,37 @@ +package com.idevicesinc.sweetblue; + +/** + * + * + * + */ +enum PE_TaskState +{ + CREATED, // very transient, not really listened for at the moment. + QUEUED, // task is in queue...previous state can be CREATED or INTERRUPTED + + ARMED, // task is current but not yet executing...there's a configurable time for being in this state but usually ends up just being one timeStep. + EXECUTING, + + // ending states + SUCCEEDED, + TIMED_OUT, + INTERRUPTED, // put back on queue...next state will be QUEUED. + CANCELLED, + SOFTLY_CANCELLED, // set after arming (preemptively cancels execution) or is mutated from the SUCCEEDED state if task is softly cancelled while already executing. + FAILED, + CLEARED_FROM_QUEUE, + REDUNDANT, + FAILED_IMMEDIATELY; // same as FAILED but to indicate that operation couldn't even be sent off, presumably due to very exceptional conditions. + + public boolean isEndingState() + { + return this.ordinal() > EXECUTING.ordinal(); + } + + public boolean canGoToNextTaskImmediately() + { + return this == SUCCEEDED || this == TIMED_OUT; + } +} + diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PI_BleScanner.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PI_BleScanner.java new file mode 100644 index 0000000000000000000000000000000000000000..7dc41f8b40e1a3e454457a86773f237dd4494437 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PI_BleScanner.java @@ -0,0 +1,17 @@ +package com.idevicesinc.sweetblue; + + +import android.bluetooth.BluetoothAdapter; + +import com.idevicesinc.sweetblue.compat.L_Util; +import com.idevicesinc.sweetblue.utils.Interval; + +public interface PI_BleScanner +{ + + boolean startClassicDiscovery(); + void startLScan(int scanMode, Interval delay, L_Util.ScanCallback callback); + void startMScan(int scanMode, Interval delay, L_Util.ScanCallback callback); + boolean startLeScan(BluetoothAdapter.LeScanCallback callback); + void stopLeScan(BluetoothAdapter.LeScanCallback callback); +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PI_BleStatusHelper.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PI_BleStatusHelper.java new file mode 100644 index 0000000000000000000000000000000000000000..53d7a6518e0bcb0a3f97335fb6d162151426be6b --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PI_BleStatusHelper.java @@ -0,0 +1,11 @@ +package com.idevicesinc.sweetblue; + + +public interface PI_BleStatusHelper +{ + boolean isLocationEnabledForScanning_byOsServices(); + boolean isLocationEnabledForScanning_byRuntimePermissions(); + boolean isLocationEnabledForScanning(); + boolean isBluetoothEnabled(); + +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PI_EndListener.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PI_EndListener.java new file mode 100644 index 0000000000000000000000000000000000000000..351aa9c83c75d00c6bf8cce5f5130ebbeacbc492 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PI_EndListener.java @@ -0,0 +1,9 @@ +package com.idevicesinc.sweetblue; + +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener; +import com.idevicesinc.sweetblue.BleTransaction.EndReason; + +interface PI_EndListener +{ + void onTransactionEnd(BleTransaction txn, EndReason reason, ReadWriteListener.ReadWriteEvent failReason); +} \ No newline at end of file diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PI_UpdateLoop.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PI_UpdateLoop.java new file mode 100644 index 0000000000000000000000000000000000000000..ea9e0bfe74d354bcf25b4de1c4fe9e09dae9793c --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PI_UpdateLoop.java @@ -0,0 +1,57 @@ +package com.idevicesinc.sweetblue; + + +import android.os.Handler; + +import com.idevicesinc.sweetblue.annotations.Lambda; +import com.idevicesinc.sweetblue.utils.UpdateLoop; + +public interface PI_UpdateLoop +{ + /** + * A callback where you handle the update time step. + */ + @Lambda + public static interface Callback + { + /** + * Gives you the amount of time that has passed in seconds since the last callback. + */ + void onUpdate(double timestep_seconds); + } + + boolean isRunning(); + void start(double updateRate); + void stop(); + void forcePost(Runnable runnable); + Handler getHandler(); + boolean postNeeded(); + void postIfNeeded(Runnable runnable); + + + public interface IUpdateLoopFactory { + PI_UpdateLoop newAnonThreadLoop(); + PI_UpdateLoop newMainThreadLoop(Callback callback); + PI_UpdateLoop newAnonThreadLoop(Callback callback); + } + + public static class DefaultUpdateLoopFactory implements IUpdateLoopFactory { + + @Override public PI_UpdateLoop newAnonThreadLoop() + { + return UpdateLoop.newAnonThreadLoop(); + } + + @Override public PI_UpdateLoop newMainThreadLoop(Callback callback) + { + return UpdateLoop.newMainThreadLoop(callback); + } + + @Override public PI_UpdateLoop newAnonThreadLoop(Callback callback) + { + return UpdateLoop.newAnonThreadLoop(callback); + } + } + + +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PS_BtSnippets.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PS_BtSnippets.java new file mode 100644 index 0000000000000000000000000000000000000000..4bf0ac7ebf32e690e6a259b5b8a27956ecfa6f9f --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PS_BtSnippets.java @@ -0,0 +1,49 @@ +package com.idevicesinc.sweetblue; + + +/** + * Just some commented out snippets that I don't feel like digging through revision history for if I ever need them again. + */ +class PS_BtSnippets +{ +// private void createBondIfNeeded(BleCharacteristic characteristic) +// { +// if( isInAnyState(BONDED, BONDING) ) return; +// +// BluetoothGattCharacteristic characteristic_native = characteristic.getNative(); +// +// if( U_Bt.requiresBonding(characteristic_native) ) +// { +// if( (characteristic_native.getProperties() & BluetoothGattCharacteristic.PROPERTY_SIGNED_WRITE) != 0x0 ) +// { +// m_logger.e("PROPERTY_SIGNED_WRITE " + m_logger.charName(characteristic_native.getUuid())); +// } +// if( (characteristic_native.getPermissions() & BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED) != 0x0 ) +// { +// m_logger.e("PERMISSION_READ_ENCRYPTED " + m_logger.charName(characteristic_native.getUuid())); +// } +// if( (characteristic_native.getPermissions() & BluetoothGattCharacteristic.PERMISSION_READ_ENCRYPTED_MITM) != 0x0 ) +// { +// m_logger.e("PERMISSION_READ_ENCRYPTED_MITM " + m_logger.charName(characteristic_native.getUuid())); +// } +// if( (characteristic_native.getPermissions() & BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED) != 0x0 ) +// { +// m_logger.e("PERMISSION_WRITE_ENCRYPTED " + m_logger.charName(characteristic_native.getUuid())); +// } +// if( (characteristic_native.getPermissions() & BluetoothGattCharacteristic.PERMISSION_WRITE_ENCRYPTED_MITM) != 0x0 ) +// { +// m_logger.e("PERMISSION_WRITE_ENCRYPTED_MITM " + m_logger.charName(characteristic_native.getUuid())); +// } +// if( (characteristic_native.getPermissions() & BluetoothGattCharacteristic.PERMISSION_WRITE_SIGNED) != 0x0 ) +// { +// m_logger.e("PERMISSION_WRITE_SIGNED " + m_logger.charName(characteristic_native.getUuid())); +// } +// if( (characteristic_native.getPermissions() & BluetoothGattCharacteristic.PERMISSION_WRITE_SIGNED_MITM) != 0x0 ) +// { +// m_logger.e("PERMISSION_WRITE_SIGNED_MITM " + m_logger.charName(characteristic_native.getUuid())); +// } + +// createBond(); +// } +// } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PU_File.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PU_File.java new file mode 100644 index 0000000000000000000000000000000000000000..bc9c0a8e18297c8bee57136b51ec02520f1dde44 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PU_File.java @@ -0,0 +1,66 @@ +package com.idevicesinc.sweetblue; + +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Utils_Byte; + +import java.io.FileInputStream; +import java.io.IOException; +import java.util.UUID; + +class PU_File +{ + private static String EXTENSION = "history"; + private static String FILENAME_DELIMITER = "_"; + + static byte readByte(final FileInputStream in) throws IOException + { + byte toReturn = 0; + + { + toReturn = (byte) in.read(); + } + + return toReturn; + } + + static short readShort(final FileInputStream in, final byte[] tempBuffer) throws IOException + { + short toReturn = 0; + + { + in.read(tempBuffer, 0, 2); + toReturn = Utils_Byte.bytesToShort(tempBuffer); + } + + return toReturn; + } + + static int readInt(final FileInputStream in, final byte[] tempBuffer) throws IOException + { + int toReturn = 0; + + { + in.read(tempBuffer, 0, 4); + toReturn = Utils_Byte.bytesToInt(tempBuffer); + } + + return toReturn; + } + + static long readLong(final FileInputStream in, final byte[] tempBuffer) throws IOException + { + long toReturn = 0; + + { + in.read(tempBuffer, 0, 8); + toReturn = Utils_Byte.bytesToLong(tempBuffer); + } + + return toReturn; + } + + static String makeHistoryFileName(final String macAddress, final UUID uuid) + { + return macAddress + FILENAME_DELIMITER + uuid.toString() + "." + EXTENSION; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PU_HistoricalData.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PU_HistoricalData.java new file mode 100644 index 0000000000000000000000000000000000000000..eb174d2a176b715e56096dc1081c2f7d9818a737 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PU_HistoricalData.java @@ -0,0 +1,139 @@ +package com.idevicesinc.sweetblue; + +import android.content.Context; + +import com.idevicesinc.sweetblue.backend.Backend_Modules; +import com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList_Default; +import com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList; +import com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase; +import com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase_Default; +import com.idevicesinc.sweetblue.utils.EpochTime; +import com.idevicesinc.sweetblue.utils.EpochTimeRange; +import com.idevicesinc.sweetblue.utils.UpdateLoop; + +import java.lang.reflect.InvocationTargetException; +import java.util.UUID; + +class PU_HistoricalData +{ + private static final BleDeviceConfig.HistoricalDataLogFilter.Please DO_NOT_LOG = BleDeviceConfig.HistoricalDataLogFilter.Please.doNotLog(); + + static Backend_HistoricalDataList newList(final Backend_HistoricalDatabase database, final UpdateLoop updateLoop, final String macAddress, UUID uuid, final String uuidName, final boolean doesTableExist) + { + final Class<? extends Backend_HistoricalDataList> listClass = Backend_Modules.HISTORICAL_DATA_LIST; + + Backend_HistoricalDataList newList = null; + + if( listClass != null ) + { + try + { + newList = listClass.newInstance(); + } + catch(InstantiationException e) + { + } + catch(IllegalAccessException e) + { + } + } + + newList = newList != null ? newList : new Backend_HistoricalDataList_Default(); + + newList.init(database, updateLoop, macAddress, uuid, uuidName, doesTableExist); + + return newList; + } + + static Backend_HistoricalDatabase newDatabase(final Context context, final BleManager manager) + { + final Class<? extends Backend_HistoricalDatabase> databaseClass = Backend_Modules.HISTORICAL_DATABASE; + + Backend_HistoricalDatabase newDatabase = null; + + if( databaseClass != null ) + { + try + { + newDatabase = databaseClass.getDeclaredConstructor(Context.class).newInstance(context); + } + catch(InstantiationException e) + { + } + catch(IllegalAccessException e) + { + } + catch(NoSuchMethodException e) + { + } + catch(InvocationTargetException e) + { + } + } + + newDatabase = newDatabase != null ? newDatabase : new Backend_HistoricalDatabase_Default(context); + + newDatabase.init(manager); + + return newDatabase; + } + + static BleDeviceConfig.HistoricalDataLogFilter getFilter(final BleNode endpoint) + { + final BleDeviceConfig.HistoricalDataLogFilter filter_config_device = endpoint.conf_node().historicalDataLogFilter; + final BleDeviceConfig.HistoricalDataLogFilter filter_config_mngr = endpoint.conf_mngr().historicalDataLogFilter; + + return filter_config_device != null ? filter_config_device : filter_config_mngr; + } + + static BleDeviceConfig.HistoricalDataLogFilter.HistoricalDataLogEvent newEvent(final BleNode node, final String macAddress, final UUID uuid, final byte[] data, final EpochTime epochTime, final BleDeviceConfig.HistoricalDataLogFilter.Source source) + { + final BleDeviceConfig.HistoricalDataLogFilter.HistoricalDataLogEvent event = new BleDeviceConfig.HistoricalDataLogFilter.HistoricalDataLogEvent(node, macAddress, uuid, data, epochTime, source); + + return event; + } + + static BleDeviceConfig.HistoricalDataLogFilter.Please getPlease(final BleNode node, final String macAddress, final UUID uuid, final byte[] data, final EpochTime epochTime, final BleDeviceConfig.HistoricalDataLogFilter.Source source) + { + final BleDeviceConfig.HistoricalDataLogFilter filter = getFilter(node); + + if( filter == null ) + { + return DO_NOT_LOG; + } + else + { + final BleDeviceConfig.HistoricalDataLogFilter.HistoricalDataLogEvent event = newEvent(node, macAddress, uuid, data, epochTime, source); + final BleDeviceConfig.HistoricalDataLogFilter.Please please = filter.onEvent(event); + + return please != null ? please : DO_NOT_LOG; + } + } + + static byte[] getAmendedData(final byte[] original, final BleDeviceConfig.HistoricalDataLogFilter.Please please) + { + return please.getAmendedData() != null ? please.getAmendedData() : original; + } + + static EpochTime getAmendedTimestamp(final EpochTime original, final BleDeviceConfig.HistoricalDataLogFilter.Please please) + { + return !please.getAmendedEpochTime().isNull() ? please.getAmendedEpochTime() : original; + } + + static boolean add_earlyOut(final Backend_HistoricalDataList list, final BleDeviceConfig.HistoricalDataLogFilter.Please please) + { + if( please.m_persistenceLevel == BleDeviceConfig.HistoricalDataLogFilter.PersistenceLevel_NONE ) + { + final long numberToDelete = please.getLimit() != Long.MAX_VALUE ? list.getCount(EpochTimeRange.FROM_MIN_TO_MAX)-please.getLimit() : 0; + + if( numberToDelete > 0 ) + { + list.delete_fromMemoryAndDatabase(EpochTimeRange.FROM_MIN_TO_MAX, numberToDelete); + } + + return true; + } + + return false; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PU_TaskQueue.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PU_TaskQueue.java new file mode 100644 index 0000000000000000000000000000000000000000..2d7ee9b784cd25be666c235bbc28752b177e6c87 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/PU_TaskQueue.java @@ -0,0 +1,62 @@ +package com.idevicesinc.sweetblue; + +import java.util.List; + + +/** + * + * + * + */ +class PU_TaskQueue +{ + static int findSoonestSpot(List<PA_Task> taskList, PA_Task taskToAdd) + { + if( taskList.size() == 0 ) return 0; + + for( int i = 0; i < taskList.size(); i++ ) + { + PA_Task ithQueuedTask = taskList.get(i); + + if( taskToAdd.isMoreImportantThan(ithQueuedTask) ) + { + return i; + } + } + + return -1; + } + + static boolean isMatch(PA_Task task, Class<? extends PA_Task> taskClass, BleManager mngr_nullable, BleDevice device_nullable, BleServer server_nullable ) + { + if( task == null ) return false; + + if( taskClass.isAssignableFrom(task.getClass()) ) + { + if( mngr_nullable == null ) + { + if( device_nullable == null && server_nullable == null ) + { + return true; + } + else if( device_nullable != null && device_nullable.equals(task.getDevice()) ) + { + return true; + } + else if( server_nullable != null && server_nullable.equals(task.getServer()) ) + { + return true; + } + } + else + { + if( mngr_nullable == task.getManager() ) + { + return true; + } + } + } + + return false; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_BleDevice_Listeners.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_BleDevice_Listeners.java new file mode 100644 index 0000000000000000000000000000000000000000..1f3b746cb54a7da9ce1cc9600e000606f73b47d0 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_BleDevice_Listeners.java @@ -0,0 +1,712 @@ +package com.idevicesinc.sweetblue; + +import java.util.UUID; + +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCallback; +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattDescriptor; +import android.bluetooth.BluetoothProfile; + +import com.idevicesinc.sweetblue.BleDevice.BondListener.Status; +import com.idevicesinc.sweetblue.BleNode.ConnectionFailListener.AutoConnectUsage; +import com.idevicesinc.sweetblue.PA_StateTracker.E_Intent; +import com.idevicesinc.sweetblue.P_Task_Bond.E_TransactionLockBehavior; +import com.idevicesinc.sweetblue.utils.Interval; +import com.idevicesinc.sweetblue.utils.Utils; + +class P_BleDevice_Listeners extends BluetoothGattCallback +{ + private final BleDevice m_device; + private final P_Logger m_logger; + private final P_TaskQueue m_queue; + + final PA_Task.I_StateListener m_taskStateListener = new PA_Task.I_StateListener() + { + @Override public void onStateChange(PA_Task task, PE_TaskState state) + { + if (task.getClass() == P_Task_Connect.class) + { + final P_Task_Connect connectTask = (P_Task_Connect) task; + + if (state.isEndingState()) + { + if (state == PE_TaskState.SUCCEEDED || state == PE_TaskState.REDUNDANT ) + { + if( state == PE_TaskState.SUCCEEDED ) + { + m_device.setToAlwaysUseAutoConnectIfItWorked(); + } + + if( state == PE_TaskState.REDUNDANT ) + { +// Log.e("", "redundant"); + } + + m_device.onNativeConnect(connectTask.isExplicit()); + } + else + { + m_device.onNativeConnectFail(state, connectTask.getGattStatus(), connectTask.getAutoConnectUsage()); + } + } + } + else if (task.getClass() == P_Task_Disconnect.class) + { + if (state == PE_TaskState.SUCCEEDED || state == PE_TaskState.REDUNDANT ) + { + P_Task_Disconnect task_cast = (P_Task_Disconnect) task; + + m_device.onNativeDisconnect(task_cast.isExplicit(), task_cast.getGattStatus(), /*doShortTermReconnect=*/true, /*saveLastDisconnect=*/task_cast.shouldSaveLastDisconnect()); + } + } + else if (task.getClass() == P_Task_DiscoverServices.class) + { + final P_Task_DiscoverServices discoverTask = (P_Task_DiscoverServices) task; + + if (state == PE_TaskState.EXECUTING) + { + // m_stateTracker.append(GETTING_SERVICES); + } + else if (state == PE_TaskState.SUCCEEDED) + { + final boolean simulateServiceDiscoveryFailure = false; + + if( simulateServiceDiscoveryFailure && m_device.getConnectionRetryCount() == 0 ) + { + m_device.disconnectWithReason(BleDevice.ConnectionFailListener.Status.DISCOVERING_SERVICES_FAILED, BleDevice.ConnectionFailListener.Timing.EVENTUALLY, discoverTask.getGattStatus(), BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE, m_device.NULL_READWRITE_EVENT()); + } + else + { + m_device.onServicesDiscovered(); + } + } + else if (state.isEndingState() ) + { + if( state == PE_TaskState.SOFTLY_CANCELLED ) + { + // pretty sure doing nothing is correct. + } + else if( state == PE_TaskState.FAILED_IMMEDIATELY ) + { + m_device.disconnectWithReason(BleDevice.ConnectionFailListener.Status.DISCOVERING_SERVICES_FAILED, BleDevice.ConnectionFailListener.Timing.IMMEDIATELY, discoverTask.getGattStatus(), BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE, m_device.NULL_READWRITE_EVENT()); + } + else if( state == PE_TaskState.TIMED_OUT ) + { + m_device.disconnectWithReason(BleDevice.ConnectionFailListener.Status.DISCOVERING_SERVICES_FAILED, BleDevice.ConnectionFailListener.Timing.TIMED_OUT, discoverTask.getGattStatus(), BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE, m_device.NULL_READWRITE_EVENT()); + } + else + { + m_device.disconnectWithReason(BleDevice.ConnectionFailListener.Status.DISCOVERING_SERVICES_FAILED, BleDevice.ConnectionFailListener.Timing.EVENTUALLY, discoverTask.getGattStatus(), BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE, m_device.NULL_READWRITE_EVENT()); + } + } + } + else if (task.getClass() == P_Task_Bond.class) + { + m_device.m_bondMngr.onBondTaskStateChange(task, state); + } + } + }; + + public P_BleDevice_Listeners(BleDevice device) + { + m_device = device; + m_logger = m_device.getManager().getLogger(); + m_queue = m_device.getTaskQueue(); + } + + private void post(final Runnable runnable) + { + final PI_UpdateLoop updateLoop = m_device.getManager().getUpdateLoop(); + + updateLoop.postIfNeeded(runnable); + } + + private boolean postNeeded() + { + return m_device.getManager().getUpdateLoop().postNeeded(); + } + + @Override public void onConnectionStateChange(final BluetoothGatt gatt, final int gattStatus, final int newState) + { + if( postNeeded() ) + { + post(new Runnable() + { + @Override + public void run() + { + onConnectionStateChange_mainThread(gatt, gattStatus, newState); + } + }); + } + else + { + onConnectionStateChange_mainThread(gatt, gattStatus, newState); + } + } + + private void onConnectionStateChange_mainThread(final BluetoothGatt gatt, final int gattStatus, final int newState) + { + //--- DRK > NOTE: For some devices disconnecting by turning off the peripheral comes back with a status of 8, which is BluetoothGatt.GATT_SERVER. + //--- For that same device disconnecting from the app the status is 0. Just an FYI to future developers in case they want to distinguish + //--- between the two as far as user intent or something. + m_logger.log_status(gattStatus, m_logger.gattConn(newState)); + + if (newState == BluetoothProfile.STATE_DISCONNECTED ) + { + m_device.m_nativeWrapper.updateNativeConnectionState(gatt, newState); + + final P_Task_Connect connectTask = m_queue.getCurrent(P_Task_Connect.class, m_device); + + if( connectTask != null ) + { + connectTask.onNativeFail(gattStatus); + } + else + { + final P_Task_Disconnect disconnectTask = m_queue.getCurrent(P_Task_Disconnect.class, m_device); + + m_device.m_nativeWrapper.closeGattIfNeeded(/*disconnectAlso=*/false); + + if( disconnectTask != null ) + { + disconnectTask.onNativeSuccess(gattStatus); + } + else + { + final boolean doShortTermReconnect = m_device.getManager().is(BleManagerState.ON); + m_device.onNativeDisconnect(/*explicit=*/false, gattStatus, doShortTermReconnect, /*saveLastDisconnect=*/true); + } + } + } + else if (newState == BluetoothProfile.STATE_CONNECTING) + { + if (Utils.isSuccess(gattStatus)) + { + m_device.m_nativeWrapper.updateNativeConnectionState(gatt, newState); + + m_device.onConnecting(/*definitelyExplicit=*/false, /*isReconnect=*/false, P_BondManager.OVERRIDE_EMPTY_STATES, /*bleConnect=*/true); + + if (!m_queue.isCurrent(P_Task_Connect.class, m_device)) + { + P_Task_Connect task = new P_Task_Connect(m_device, m_taskStateListener, /*explicit=*/false, PE_TaskPriority.FOR_IMPLICIT_BONDING_AND_CONNECTING); + m_queue.add(task); + } + + m_queue.fail(P_Task_Disconnect.class, m_device); + } + else + { + onNativeConnectFail(gatt, gattStatus); + } + } + else if (newState == BluetoothProfile.STATE_CONNECTED) + { + if (Utils.isSuccess(gattStatus)) + { + m_device.m_nativeWrapper.updateNativeConnectionState(gatt, newState); + + m_queue.fail(P_Task_Disconnect.class, m_device); + + if (!m_queue.succeed(P_Task_Connect.class, m_device)) + { + m_device.onNativeConnect(/*explicit=*/false); + } + } + else + { + onNativeConnectFail(gatt, gattStatus); + } + } + //--- DRK > NOTE: never seen this case happen. + else if (newState == BluetoothProfile.STATE_DISCONNECTING) + { + m_logger.e("Actually natively disconnecting!"); // DRK > error level just so it's noticeable...never seen this. + + m_device.m_nativeWrapper.updateNativeConnectionState(gatt, newState); + +// m_device.onDisconnecting(); + + if (!m_queue.isCurrent(P_Task_Disconnect.class, m_device)) + { + P_Task_Disconnect task = new P_Task_Disconnect(m_device, m_taskStateListener, /*explicit=*/false, PE_TaskPriority.FOR_IMPLICIT_BONDING_AND_CONNECTING, /*cancellable=*/true); + m_queue.add(task); + } + + m_queue.fail(P_Task_Connect.class, m_device); + } + else + { + m_device.m_nativeWrapper.updateNativeConnectionState(gatt); + } + } + + private void onNativeConnectFail(final BluetoothGatt gatt, final int gattStatus) + { + //--- DRK > NOTE: Making an assumption that the underlying stack agrees that the connection state is STATE_DISCONNECTED. + //--- This is backed up by basic testing, but even if the underlying stack uses a different value, it can probably + //--- be assumed that it will eventually go to STATE_DISCONNECTED, so SweetBlue library logic is sounder "living under the lie" for a bit regardless. + m_device.m_nativeWrapper.updateNativeConnectionState(gatt, BluetoothProfile.STATE_DISCONNECTED); + + final P_Task_Connect connectTask = m_queue.getCurrent(P_Task_Connect.class, m_device); + + if( connectTask != null ) + { + connectTask.onNativeFail(gattStatus); + } + else + { + m_device.onNativeConnectFail((PE_TaskState) null, gattStatus, AutoConnectUsage.UNKNOWN); + } + } + + @Override public void onServicesDiscovered(final BluetoothGatt gatt, final int gattStatus) + { + if( postNeeded() ) + { + post(new Runnable() + { + @Override + public void run() + { + onServicesDiscovered_mainThread(gatt, gattStatus); + } + }); + } + else + { + onServicesDiscovered_mainThread(gatt, gattStatus); + } + } + + private void onServicesDiscovered_mainThread(final BluetoothGatt gatt, final int gattStatus) + { + m_logger.log_status(gattStatus); + + if( Utils.isSuccess(gattStatus) ) + { + m_queue.succeed(P_Task_DiscoverServices.class, m_device); + } + else + { + final P_Task_DiscoverServices task = m_queue.getCurrent(P_Task_DiscoverServices.class, m_device); + + if( task != null ) + { + task.onNativeFail(gattStatus); + } + } + } + + @Override public void onCharacteristicRead(final BluetoothGatt gatt, final BluetoothGattCharacteristic characteristic, final int gattStatus) + { + final byte[] value = characteristic.getValue() == null ? null : characteristic.getValue().clone(); + + if( postNeeded() ) + { + post(new Runnable() + { + @Override + public void run() + { + onCharacteristicRead_mainThread(gatt, characteristic, gattStatus, value); + } + }); + } + else + { + onCharacteristicRead_mainThread(gatt, characteristic, gattStatus, value); + } + } + + private void onCharacteristicRead_mainThread(final BluetoothGatt gatt, final BluetoothGattCharacteristic characteristic, final int gattStatus, final byte[] value) + { + final UUID uuid = characteristic.getUuid(); + m_logger.i(m_logger.charName(uuid)); + m_logger.log_status(gattStatus); + + final P_Task_Read readTask = m_queue.getCurrent(P_Task_Read.class, m_device); + + if( readTask != null && readTask.isFor(characteristic) ) + { + readTask.onCharacteristicRead(gatt, characteristic.getUuid(), value, gattStatus); + } + else + { + final P_Task_BatteryLevel batteryTask = m_queue.getCurrent(P_Task_BatteryLevel.class, m_device); + if (batteryTask != null) + { + batteryTask.onCharacteristicRead(gatt, characteristic.getUuid(), value, gattStatus); + } + else + { + fireUnsolicitedEvent(characteristic, null, BleDevice.ReadWriteListener.Type.READ, BleDevice.ReadWriteListener.Target.CHARACTERISTIC, value, gattStatus); + } + } + } + + @Override public void onCharacteristicWrite(final BluetoothGatt gatt, final BluetoothGattCharacteristic characteristic, final int gattStatus) + { + final byte[] data = characteristic.getValue(); + + if( postNeeded() ) + { + post(new Runnable() + { + @Override + public void run() + { + onCharacteristicWrite_mainThread(gatt, characteristic, data, gattStatus); + } + }); + } + else + { + onCharacteristicWrite_mainThread(gatt, characteristic, data, gattStatus); + } + } + + private void onCharacteristicWrite_mainThread(final BluetoothGatt gatt, final BluetoothGattCharacteristic characteristic, final byte[] data, final int gattStatus) + { + final UUID uuid = characteristic.getUuid(); + m_logger.i(m_logger.charName(uuid)); + m_logger.log_status(gattStatus); + + final P_Task_Write task = m_queue.getCurrent(P_Task_Write.class, m_device); + + if (task != null && task.isFor(characteristic) ) + { + task.onCharacteristicWrite(gatt, characteristic.getUuid(), gattStatus); + } + else + { + fireUnsolicitedEvent(characteristic, null, BleDevice.ReadWriteListener.Type.WRITE, BleDevice.ReadWriteListener.Target.CHARACTERISTIC, data, gattStatus); + } + } + + private void fireUnsolicitedEvent(final BluetoothGattCharacteristic characteristic_nullable, final BluetoothGattDescriptor descriptor_nullable, BleDevice.ReadWriteListener.Type type, final BleDevice.ReadWriteListener.Target target, final byte[] data, final int gattStatus) + { + final BleDevice.ReadWriteListener.Type type_modified = characteristic_nullable != null ? P_DeviceServiceManager.modifyResultType(characteristic_nullable, type) : type; + final BleDevice.ReadWriteListener.Status status = Utils.isSuccess(gattStatus) ? BleDevice.ReadWriteListener.Status.SUCCESS : BleDevice.ReadWriteListener.Status.REMOTE_GATT_FAILURE; + + final UUID serviceUuid = characteristic_nullable != null ? characteristic_nullable.getService().getUuid() : BleDevice.ReadWriteListener.ReadWriteEvent.NON_APPLICABLE_UUID; + final UUID characteristicUuid = characteristic_nullable != null ? characteristic_nullable.getUuid() : BleDevice.ReadWriteListener.ReadWriteEvent.NON_APPLICABLE_UUID;; + final UUID descriptorUuid = descriptor_nullable != null ? descriptor_nullable.getUuid() : BleDevice.ReadWriteListener.ReadWriteEvent.NON_APPLICABLE_UUID; + + final double time = Interval.DISABLED.secs(); + final boolean solicited = false; + + final BleDevice.ReadWriteListener.ReadWriteEvent e; + + if( target == BleDevice.ReadWriteListener.Target.CHARACTERISTIC || target == BleDevice.ReadWriteListener.Target.DESCRIPTOR ) + { + e = new BleDevice.ReadWriteListener.ReadWriteEvent + ( + m_device, serviceUuid, characteristicUuid, descriptorUuid, type_modified, + target, data, status, gattStatus, time, time, solicited + ); + } + else if( target == BleDevice.ReadWriteListener.Target.RSSI ) + { + e = new BleDevice.ReadWriteListener.ReadWriteEvent + ( + m_device, type, m_device.getRssi(), status, gattStatus, time, time, solicited + ); + } + else if( target == BleDevice.ReadWriteListener.Target.MTU ) + { + e = new BleDevice.ReadWriteListener.ReadWriteEvent + ( + m_device, m_device.getMtu(), status, gattStatus, time, time, solicited + ); + } + else + { + return; + } + + m_device.invokeReadWriteCallback(null, e); + } + + @Override public void onReliableWriteCompleted(final BluetoothGatt gatt, final int gattStatus) + { + if( postNeeded() ) + { + post(new Runnable() + { + @Override public void run() + { + onReliableWriteCompleted_mainThread(gatt, gattStatus); + } + }); + } + else + { + onReliableWriteCompleted_mainThread(gatt, gattStatus); + } + } + + private void onReliableWriteCompleted_mainThread(final BluetoothGatt gatt, final int gattStatus) + { + m_logger.log_status(gattStatus); + + final P_Task_ExecuteReliableWrite task = m_queue.getCurrent(P_Task_ExecuteReliableWrite.class, m_device); + + if( task != null ) + { + task.onReliableWriteCompleted(gatt, gattStatus); + } + else + { + m_device.m_reliableWriteMngr.onReliableWriteCompleted_unsolicited(gatt, gattStatus); + } + } + + @Override public void onReadRemoteRssi(final BluetoothGatt gatt, final int rssi, final int gattStatus) + { + if( postNeeded() ) + { + post(new Runnable() + { + @Override public void run() + { + onReadRemoteRssi_mainThread(gatt, rssi, gattStatus); + } + }); + } + else + { + onReadRemoteRssi_mainThread(gatt, rssi, gattStatus); + } + } + + private void onReadRemoteRssi_mainThread(final BluetoothGatt gatt, final int rssi, final int gattStatus) + { + if( Utils.isSuccess(gattStatus) ) + { + m_device.updateRssi(rssi); + } + + final P_Task_ReadRssi task = m_queue.getCurrent(P_Task_ReadRssi.class, m_device); + + if( task != null ) + { + task.onReadRemoteRssi(gatt, rssi, gattStatus); + } + else + { + fireUnsolicitedEvent(null, null, BleDevice.ReadWriteListener.Type.READ, BleDevice.ReadWriteListener.Target.RSSI, BleDevice.EMPTY_BYTE_ARRAY, gattStatus); + } + } + + @Override public void onDescriptorWrite(final BluetoothGatt gatt, final BluetoothGattDescriptor descriptor, final int gattStatus) + { + final byte[] data = descriptor.getValue(); + + if( postNeeded() ) + { + post(new Runnable() + { + @Override public void run() + { + onDescriptorWrite_mainThread(gatt, descriptor, data, gattStatus); + } + }); + } + else + { + onDescriptorWrite_mainThread(gatt, descriptor, data, gattStatus); + } + } + + private void onDescriptorWrite_mainThread(final BluetoothGatt gatt, final BluetoothGattDescriptor descriptor, final byte[] data, final int gattStatus) + { + final UUID uuid = descriptor.getUuid(); + m_logger.i(m_logger.descriptorName(uuid)); + m_logger.log_status(gattStatus); + + final P_Task_WriteDescriptor task_write = m_queue.getCurrent(P_Task_WriteDescriptor.class, m_device); + + if( task_write != null && task_write.isFor(descriptor) ) + { + task_write.onDescriptorWrite(gatt, descriptor.getUuid(), gattStatus); + } + else + { + final P_Task_ToggleNotify task_toggleNotify = m_queue.getCurrent(P_Task_ToggleNotify.class, m_device); + + if( task_toggleNotify != null && task_toggleNotify.isFor(descriptor) ) + { + task_toggleNotify.onDescriptorWrite(gatt, uuid, gattStatus); + } + else + { + fireUnsolicitedEvent(descriptor.getCharacteristic(), descriptor, BleDevice.ReadWriteListener.Type.WRITE, BleDevice.ReadWriteListener.Target.DESCRIPTOR, data, gattStatus); + } + } + } + + @Override public void onDescriptorRead(final BluetoothGatt gatt, final BluetoothGattDescriptor descriptor, final int gattStatus) + { + final byte[] data = descriptor.getValue(); + + if( postNeeded() ) + { + post(new Runnable() + { + @Override public void run() + { + onDescriptorRead_mainThread(gatt, descriptor, data, gattStatus); + } + }); + } + else + { + onDescriptorRead_mainThread(gatt, descriptor, data, gattStatus); + } + } + + private void onDescriptorRead_mainThread(final BluetoothGatt gatt, final BluetoothGattDescriptor descriptor, final byte[] data, final int gattStatus) + { + final P_Task_ReadDescriptor task_read = m_queue.getCurrent(P_Task_ReadDescriptor.class, m_device); + + if( task_read != null && task_read.isFor(descriptor) ) + { + task_read.onDescriptorRead(gatt, descriptor.getUuid(), data, gattStatus); + } + else + { + final P_Task_BatteryLevel battery = m_queue.getCurrent(P_Task_BatteryLevel.class, m_device); + if (battery != null) + { + battery.onDescriptorRead(descriptor, data, gattStatus); + } + else + { + fireUnsolicitedEvent(descriptor.getCharacteristic(), descriptor, BleDevice.ReadWriteListener.Type.READ, BleDevice.ReadWriteListener.Target.DESCRIPTOR, data, gattStatus); + } + } + } + + @Override public void onCharacteristicChanged(final BluetoothGatt gatt, final BluetoothGattCharacteristic characteristic) + { + final byte[] value = characteristic.getValue() == null ? null : characteristic.getValue().clone(); + + if( postNeeded() ) + { + post(new Runnable() + { + @Override public void run() + { + onCharacteristicChanged_mainThread(gatt, characteristic, value); + } + }); + } + else + { + onCharacteristicChanged_mainThread(gatt, characteristic, value); + } + } + + private void onCharacteristicChanged_mainThread(final BluetoothGatt gatt, final BluetoothGattCharacteristic characteristic, final byte[] value) + { + final UUID characteristicUuid = characteristic.getUuid(); + final UUID serviceUuid = characteristic.getService().getUuid(); + + m_device.getPollManager().onCharacteristicChangedFromNativeNotify(serviceUuid, characteristicUuid, value); + } + + public void onNativeBondStateChanged_mainThread(int previousState, int newState, int failReason) + { + if (newState == BluetoothDevice.ERROR) + { + P_TaskQueue queue = m_device.getTaskQueue(); + queue.fail(P_Task_Bond.class, m_device); + queue.fail(P_Task_Unbond.class, m_device); + + m_logger.e("newState for bond is BluetoothDevice.ERROR!(?)"); + } + else if (newState == BluetoothDevice.BOND_NONE) + { + final P_Task_Bond bondTask = m_queue.getCurrent(P_Task_Bond.class, m_device); + + if( bondTask != null ) + { + bondTask.onNativeFail(failReason); + } + else if (!m_queue.succeed(P_Task_Unbond.class, m_device)) + { + if( previousState == BluetoothDevice.BOND_BONDING || previousState == BluetoothDevice.BOND_NONE ) + { + m_device.m_bondMngr.onNativeBondFailed(E_Intent.UNINTENTIONAL, Status.FAILED_EVENTUALLY, failReason); + } + else + { + m_device.m_bondMngr.onNativeUnbond(E_Intent.UNINTENTIONAL); + } + } + } + else if (newState == BluetoothDevice.BOND_BONDING) + { + final P_Task_Bond task = m_queue.getCurrent(P_Task_Bond.class, m_device); + E_Intent intent = task != null && task.isExplicit() ? E_Intent.INTENTIONAL : E_Intent.UNINTENTIONAL; + boolean isCurrent = task != null; // avoiding erroneous dead code warning from putting this directly in if-clause below. + m_device.m_bondMngr.onNativeBonding(intent); + + if ( !isCurrent ) + { + m_queue.add(new P_Task_Bond(m_device, /*explicit=*/false, /*partOfConnection=*/false, m_taskStateListener, PE_TaskPriority.FOR_IMPLICIT_BONDING_AND_CONNECTING, E_TransactionLockBehavior.PASSES)); + } + + m_queue.fail(P_Task_Unbond.class, m_device); + } + else if (newState == BluetoothDevice.BOND_BONDED) + { + m_queue.fail(P_Task_Unbond.class, m_device); + + if( false == m_queue.succeed(P_Task_Bond.class, m_device) ) + { + m_device.m_bondMngr.onNativeBond(E_Intent.UNINTENTIONAL); + } + } + } + + @Override public void onMtuChanged(final BluetoothGatt gatt, final int mtu, final int gattStatus) + { + if( postNeeded() ) + { + post(new Runnable() + { + @Override public void run() + { + onMtuChanged_mainThread(gatt, mtu, gattStatus); + } + }); + } + else + { + onMtuChanged_mainThread(gatt, mtu, gattStatus); + } + } + + private void onMtuChanged_mainThread(BluetoothGatt gatt, int mtu, int gattStatus) + { + if( Utils.isSuccess(gattStatus) ) + { + m_device.updateMtu(mtu); + } + + final P_Task_RequestMtu task = m_queue.getCurrent(P_Task_RequestMtu.class, m_device); + + if( task != null ) + { + task.onMtuChanged(gatt, mtu, gattStatus); + } + else + { + fireUnsolicitedEvent(null, null, BleDevice.ReadWriteListener.Type.WRITE, BleDevice.ReadWriteListener.Target.MTU, BleDevice.EMPTY_BYTE_ARRAY, gattStatus); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_BleManager_Listeners.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_BleManager_Listeners.java new file mode 100644 index 0000000000000000000000000000000000000000..fab1b521b858631e92f84a56ebcacfe97a3659d8 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_BleManager_Listeners.java @@ -0,0 +1,686 @@ +package com.idevicesinc.sweetblue; + +import static com.idevicesinc.sweetblue.BleManagerState.OFF; +import static com.idevicesinc.sweetblue.BleManagerState.ON; +import static com.idevicesinc.sweetblue.BleManagerState.SCANNING; +import static com.idevicesinc.sweetblue.BleManagerState.STARTING_SCAN; + +import com.idevicesinc.sweetblue.PA_StateTracker.E_Intent; + +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.util.Log; + +import com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOh; +import com.idevicesinc.sweetblue.utils.State; +import com.idevicesinc.sweetblue.utils.Utils; + +import java.lang.reflect.Method; + + +class P_BleManager_Listeners +{ + private static final String BluetoothDevice_EXTRA_REASON = "android.bluetooth.device.extra.REASON"; + private static final String BluetoothDevice_ACTION_DISAPPEARED = "android.bluetooth.device.action.DISAPPEARED"; + private static Method m_getLeState_marshmallow; + private Integer m_refState; + private Integer m_state; + + + final BluetoothAdapter.LeScanCallback m_scanCallback_preLollipop = new BluetoothAdapter.LeScanCallback() + { + @Override public void onLeScan(final BluetoothDevice device_native, final int rssi, final byte[] scanRecord) + { + if( postNeeded() ) + { + post(new Runnable() + { + @Override + public void run() + { + onLeScan_mainThread(device_native, rssi, scanRecord); + } + }); + } + else + { + onLeScan_mainThread(device_native, rssi, scanRecord); + } + } + }; + + private void onLeScan_mainThread(final BluetoothDevice device_native, final int rssi, final byte[] scanRecord) + { + m_mngr.getCrashResolver().notifyScannedDevice(device_native, m_scanCallback_preLollipop); + + m_mngr.onDiscoveredFromNativeStack(device_native, rssi, scanRecord); + } + + private final PA_Task.I_StateListener m_scanTaskListener = new PA_Task.I_StateListener() + { + @Override public void onStateChange(PA_Task task, PE_TaskState state) + { + if( task.getState().ordinal() <= PE_TaskState.QUEUED.ordinal() ) return; + + //--- DRK > Got this assert to trip by putting a breakpoint in constructor of NativeDeviceWrapper + //--- and waiting, but now can't reproduce. + if( !m_mngr.ASSERT(task.getClass() == P_Task_Scan.class && m_mngr.isAny(SCANNING, STARTING_SCAN)) ) return; + + if( state.isEndingState() ) + { + final P_Task_Scan scanTask = (P_Task_Scan) task; + final double totalTimeExecuting = scanTask.getTotalTimeExecuting(); + + if( state == PE_TaskState.INTERRUPTED || state == PE_TaskState.TIMED_OUT || state == PE_TaskState.SUCCEEDED ) + { + if( state == PE_TaskState.INTERRUPTED ) + { + m_mngr.getUpdateLoop().forcePost(new Runnable() + { + @Override public void run() + { + m_mngr.tryPurgingStaleDevices(totalTimeExecuting); + } + }); + } + else + { + m_mngr.tryPurgingStaleDevices(totalTimeExecuting); + } + } + + m_mngr.stopNativeScan(scanTask); + + if( state == PE_TaskState.INTERRUPTED ) + { + // task will be put back onto the queue presently...nothing to do here + } + else + { + m_mngr.clearScanningRelatedMembers(scanTask.isExplicit() ? E_Intent.INTENTIONAL : E_Intent.UNINTENTIONAL); + } + } + } + }; + + private final BroadcastReceiver m_receiver = new BroadcastReceiver() + { + @Override public void onReceive(final Context context, final Intent intent) + { + final String action = intent.getAction(); + + if ( action.equals(BluetoothAdapter.ACTION_STATE_CHANGED) ) + { + onNativeBleStateChangeFromBroadcastReceiver(context, intent); + } + else if( action.equals(BluetoothDevice.ACTION_BOND_STATE_CHANGED) ) + { + onNativeBondStateChanged(context, intent); + } + else if( action.equals(BluetoothDevice.ACTION_FOUND) ) + { + onDeviceFound_classic(context, intent); + } + else if( action.equals(BluetoothAdapter.ACTION_DISCOVERY_FINISHED) ) + { + onClassicDiscoveryFinished(); + } + + //--- DRK > This block doesn't do anything...just wrote it to see how these other events work and if they're useful. + //--- They don't seem to be but leaving it here for the future if needed anyway. + else if( action.contains("ACL") || action.equals(BluetoothDevice.ACTION_UUID) || action.equals(BluetoothDevice_ACTION_DISAPPEARED) ) + { + final BluetoothDevice device_native = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); + + if( action.equals(BluetoothDevice.ACTION_FOUND) ) + { +// device_native.fetchUuidsWithSdp(); + } + else if( action.equals(BluetoothDevice.ACTION_UUID) ) + { + m_mngr.getLogger().e(""); + } + + BleDevice device = m_mngr.getDevice(device_native.getAddress()); + + if( device != null ) + { +// m_mngr.getLogger().e("Known device " + device.getDebugName() + " " + action); + } + else + { +// m_mngr.getLogger().e("Mystery device " + device_native.getName() + " " + device_native.getAddress() + " " + action); + } + } + } + }; + + private final BleManager m_mngr; + + private int m_nativeState; + + P_BleManager_Listeners(BleManager bleMngr) + { + m_mngr = bleMngr; + + m_mngr.getApplicationContext().registerReceiver(m_receiver, newIntentFilter()); + } + + private static IntentFilter newIntentFilter() + { + final IntentFilter intentFilter = new IntentFilter(); + + intentFilter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED); + intentFilter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED); + + intentFilter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED); + intentFilter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED); + intentFilter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED); + + intentFilter.addAction(BluetoothDevice.ACTION_FOUND); + intentFilter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); + intentFilter.addAction(BluetoothDevice.ACTION_UUID); + intentFilter.addAction(BluetoothDevice_ACTION_DISAPPEARED); + + return intentFilter; + } + + private void post(final Runnable runnable) + { + final PI_UpdateLoop updateLoop = m_mngr.getUpdateLoop(); + + updateLoop.postIfNeeded(runnable); + } + + private boolean postNeeded() + { + return m_mngr.getUpdateLoop().postNeeded(); + } + + void onDestroy() + { + m_mngr.getApplicationContext().unregisterReceiver(m_receiver); + } + + PA_Task.I_StateListener getScanTaskListener() + { + return m_scanTaskListener; + } + + private void onDeviceFound_classic(Context context, Intent intent) + { + // If this was discovered via the hack to show the bond popup, then do not propogate this + // any further, as this scan is JUST to get the dialog to pop up (rather than show in the notification area) + P_Task_BondPopupHack hack = m_mngr.getTaskQueue().getCurrent(P_Task_BondPopupHack.class, m_mngr); + if (hack == null) + { + final BluetoothDevice device_native = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); + final int rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI, Short.MIN_VALUE); + + m_mngr.onDiscoveredFromNativeStack(device_native, rssi, null); + } + } + + private void onClassicDiscoveryFinished() + { + m_mngr.getTaskQueue().interrupt(P_Task_Scan.class, m_mngr); + } + + private void onNativeBleStateChangeFromBroadcastReceiver(Context context, Intent intent) + { + final int previousNativeState = intent.getExtras().getInt(BluetoothAdapter.EXTRA_PREVIOUS_STATE); + final int newNativeState = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR); + + int logLevel = newNativeState == BluetoothAdapter.ERROR || previousNativeState == BluetoothAdapter.ERROR ? Log.WARN : Log.INFO; + m_mngr.getLogger().log(logLevel, "previous=" + m_mngr.getLogger().gattBleState(previousNativeState) + " new=" + m_mngr.getLogger().gattBleState(newNativeState)); + + if( Utils.isMarshmallow() ) + { + if( previousNativeState == BleStatuses.STATE_ON && newNativeState == BleStatuses.STATE_TURNING_OFF ) + { + if( m_nativeState == BleStatuses.STATE_ON ) + { + m_nativeState = BleStatuses.STATE_TURNING_OFF; + + //--- DRK > We allow this code path in this particular case in marshmallow because STATE_TURNING_OFF is only active + //--- for a very short time, so polling might miss it. If polling detects it before this, fine, because we + //--- early-out above and never call this method. If afterwards, it skips it because m_nativeState is identical + //--- to what's reported from the native stack. + onNativeBleStateChange(previousNativeState, newNativeState); + } + } + } + else + { + onNativeBleStateChange(previousNativeState, newNativeState); + } + } + + private void onNativeBleStateChange(int previousNativeState, int newNativeState) + { + //--- DRK > Checking for inconsistent state at this point (instead of at bottom of function), + //--- simply because where this is where it was first observed. Checking at the bottom + //--- may not work because maybe this bug relied on a race condition. + //--- UPDATE: Not checking for inconsistent state anymore cause it can be legitimate due to native + //--- state changing while call to this method is sitting on the main thread queue. + BluetoothAdapter bluetoothAdapter = m_mngr.getNative().getAdapter(); + final int adapterState = bluetoothAdapter.getState(); +// boolean inconsistentState = adapterState != newNativeState; + PA_StateTracker.E_Intent intent = E_Intent.INTENTIONAL; + final boolean hitErrorState = newNativeState == BluetoothAdapter.ERROR; + + if( hitErrorState ) + { + newNativeState = adapterState; + + if( newNativeState /*still*/ == BluetoothAdapter.ERROR ) + { + return; // really not sure what we can do better here besides bailing out. + } + } + else if( newNativeState == BluetoothAdapter.STATE_OFF ) + { + m_mngr.m_wakeLockMngr.clear(); + + if( m_mngr.getTaskQueue().isCurrent(P_Task_TurnBleOn.class, m_mngr) ) + { + return; + } + + m_mngr.getTaskQueue().fail(P_Task_TurnBleOn.class, m_mngr); + P_Task_TurnBleOff turnOffTask = m_mngr.getTaskQueue().getCurrent(P_Task_TurnBleOff.class, m_mngr); + intent = turnOffTask == null || turnOffTask.isImplicit() ? E_Intent.UNINTENTIONAL : intent; + m_mngr.getTaskQueue().succeed(P_Task_TurnBleOff.class, m_mngr); + + //--- DRK > Should have already been handled by the "turning off" event, but this is just to be + //--- sure all devices are cleared in case something weird happens and we go straight + //--- from ON to OFF or something. + m_mngr.m_deviceMngr.undiscoverAllForTurnOff(m_mngr.m_deviceMngr_cache, intent); + } + else if( newNativeState == BluetoothAdapter.STATE_TURNING_ON ) + { + if( !m_mngr.getTaskQueue().isCurrent(P_Task_TurnBleOn.class, m_mngr) ) + { + m_mngr.getTaskQueue().add(new P_Task_TurnBleOn(m_mngr, /*implicit=*/true)); + intent = E_Intent.UNINTENTIONAL; + } + + m_mngr.getTaskQueue().fail(P_Task_TurnBleOff.class, m_mngr); + } + else if( newNativeState == BluetoothAdapter.STATE_ON ) + { + m_mngr.getTaskQueue().fail(P_Task_TurnBleOff.class, m_mngr); + P_Task_TurnBleOn turnOnTask = m_mngr.getTaskQueue().getCurrent(P_Task_TurnBleOn.class, m_mngr); + intent = turnOnTask == null || turnOnTask.isImplicit() ? E_Intent.UNINTENTIONAL : intent; + m_mngr.getTaskQueue().succeed(P_Task_TurnBleOn.class, m_mngr); + } + else if( newNativeState == BluetoothAdapter.STATE_TURNING_OFF ) + { + if( !m_mngr.getTaskQueue().isCurrent(P_Task_TurnBleOff.class, m_mngr) ) + { + m_mngr.m_deviceMngr.disconnectAllForTurnOff(PE_TaskPriority.CRITICAL); + +// m_mngr.m_deviceMngr.undiscoverAllForTurnOff(m_mngr.m_deviceMngr_cache, E_Intent.UNINTENTIONAL); + m_mngr.getTaskQueue().add(new P_Task_TurnBleOff(m_mngr, /*implicit=*/true)); + + if( m_mngr.m_server != null ) + { + m_mngr.m_server.disconnect_internal(BleServer.ServiceAddListener.Status.CANCELLED_FROM_BLE_TURNING_OFF, BleServer.ConnectionFailListener.Status.CANCELLED_FROM_BLE_TURNING_OFF, State.ChangeIntent.UNINTENTIONAL); + } + + intent = E_Intent.UNINTENTIONAL; + } + + m_mngr.getTaskQueue().fail(P_Task_TurnBleOn.class, m_mngr); + } + + //--- DRK > Can happen I suppose if newNativeState is an error and we revert to using the queried state and it's the same as previous state. + //---- Below logic should still be resilient to this, but early-outing just in case. + if( previousNativeState == newNativeState ) + { + return; + } + + BleManagerState previousState = BleManagerState.get(previousNativeState); + BleManagerState newState = BleManagerState.get(newNativeState); + + m_mngr.getLogger().e(previousNativeState + " " + newNativeState + " " + previousState + " " + newState); + + m_mngr.getNativeStateTracker().update(intent, BleStatuses.GATT_STATUS_NOT_APPLICABLE, previousState, false, newState, true); + m_mngr.getStateTracker().update(intent, BleStatuses.GATT_STATUS_NOT_APPLICABLE, previousState, false, newState, true); + + if( previousNativeState != BluetoothAdapter.STATE_ON && newNativeState == BluetoothAdapter.STATE_ON ) + { + m_mngr.m_deviceMngr.rediscoverDevicesAfterBleTurningBackOn(); + m_mngr.m_deviceMngr.reconnectDevicesAfterBleTurningBackOn(); + } + + if( hitErrorState ) + { + m_mngr.uhOh(UhOh.UNKNOWN_BLE_ERROR); + } + + if( previousNativeState == BluetoothAdapter.STATE_TURNING_OFF && newNativeState == BluetoothAdapter.STATE_ON ) + { + m_mngr.uhOh(UhOh.CANNOT_DISABLE_BLUETOOTH); + } + else if( previousNativeState == BluetoothAdapter.STATE_TURNING_ON && newNativeState == BluetoothAdapter.STATE_OFF ) + { + m_mngr.uhOh(UhOh.CANNOT_ENABLE_BLUETOOTH); + } +// else if( inconsistentState ) +// { +// m_mngr.uhOh(UhOh.INCONSISTENT_NATIVE_BLE_STATE); +// m_mngr.getLogger().w("adapterState=" + m_mngr.getLogger().gattBleState(adapterState) + " newState=" + m_mngr.getLogger().gattBleState(newNativeState)); +// } + } + + private void onNativeBondStateChanged(Context context, Intent intent) + { + final int previousState = intent.getIntExtra(BluetoothDevice.EXTRA_PREVIOUS_BOND_STATE, BluetoothDevice.ERROR); + final int newState = intent.getIntExtra(BluetoothDevice.EXTRA_BOND_STATE, BluetoothDevice.ERROR); + int logLevel = newState == BluetoothDevice.ERROR || previousState == BluetoothDevice.ERROR ? Log.WARN : Log.INFO; + m_mngr.getLogger().log(logLevel, "previous=" + m_mngr.getLogger().gattBondState(previousState) + " new=" + m_mngr.getLogger().gattBondState(newState)); + + final int failReason; + + if( newState == BluetoothDevice.BOND_NONE ) + { + //--- DRK > Can't access BluetoothDevice.EXTRA_REASON cause of stupid @hide annotation, so hardcoding string here. + failReason = intent.getIntExtra(BluetoothDevice_EXTRA_REASON, BluetoothDevice.ERROR); + + if( failReason != BleStatuses.BOND_SUCCESS ) + { + m_mngr.getLogger().w(m_mngr.getLogger().gattUnbondReason(failReason)); + } + } + else + { + failReason = BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE; + } + + final BluetoothDevice device_native = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); + + onNativeBondStateChanged(device_native, previousState, newState, failReason); + } + + private BleDevice getDeviceFromNativeDevice(final BluetoothDevice device_native) + { + BleDevice device = m_mngr.getDevice(device_native.getAddress()); + + if( device == null ) + { + final P_Task_Bond bondTask = m_mngr.getTaskQueue().getCurrent(P_Task_Bond.class, m_mngr); + + if( bondTask != null ) + { + if( bondTask.getDevice().getMacAddress().equals(device_native.getAddress()) ) + { + device = bondTask.getDevice(); + } + } + } + + if( device /*still*/== null ) + { + final P_Task_Unbond unbondTask = m_mngr.getTaskQueue().getCurrent(P_Task_Unbond.class, m_mngr); + + if( unbondTask != null ) + { + if( unbondTask.getDevice().getMacAddress().equals(device_native.getAddress()) ) + { + device = unbondTask.getDevice(); + } + } + } + + return device; + } + + private void onNativeBondStateChanged(BluetoothDevice device_native, int previousState, int newState, int failReason) + { + final BleDevice device = getDeviceFromNativeDevice(device_native); + + if( device != null ) + { + //--- DRK > Got an NPE here when restarting the app through the debugger. Pretty sure it's an impossible case + //--- for actual app usage cause the listeners member of the device is final. So some memory corruption issue + //--- associated with debugging most likely...still gating it for the hell of it. + if( device.getListeners() != null ) + { + device.getListeners().onNativeBondStateChanged_mainThread(previousState, newState, failReason); + } + } + +// if( previousState == BluetoothDevice.BOND_BONDING && newState == BluetoothDevice.BOND_NONE ) +// { +// m_mngr.uhOh(UhOh.WENT_FROM_BONDING_TO_UNBONDED); +// } + } + + private static boolean isBleStateFromPreM(final int state) + { + return + state == BleStatuses.STATE_ON || + state == BleStatuses.STATE_TURNING_OFF || + state == BleStatuses.STATE_OFF || + state == BleStatuses.STATE_TURNING_ON ; + } + + private void assertOnWeirdStateChange(final int oldState, final int newState) + { + //--- DRK > Note this is not an assert SweetBlue-logic-wise...just want to call out attention to state changes that I assumed were impossible. + //--- That said I will not be surprised if this trips. + m_mngr.ASSERT(false, "Weird BLE state change detected from polling: " + m_mngr.getLogger().gattBleState(oldState) + " -> " + m_mngr.getLogger().gattBleState(newState)); + } + + private void onNativeBleStateChange_fromPolling(final int oldState, final int newState) + { + if( false == isBleStateFromPreM(oldState) || false == isBleStateFromPreM(newState) ) + { + m_mngr.ASSERT(false, "Either " + m_mngr.getLogger().gattBleState(oldState) + " or " + m_mngr.getLogger().gattBleState(newState) + " are not valid pre-M BLE states!"); + } + else + { + onNativeBleStateChange(oldState, newState); + } + } + + /** + * See the copy/pasted log statements in {@link BleStatuses} for an example of how the state changes + * occur over the course of a few seconds in Android M. + */ + public void update() + { +// m_mngr.getLogger().e("*********************" + m_mngr.getLogger().gattBleState(getBleState())); + + if( Utils.isMarshmallow() ) + { + final int oldState = m_nativeState; + final int newState = getBleState(); + + if( oldState != newState ) + { + m_nativeState = newState; + + if( oldState == BleStatuses.STATE_ON ) + { + if( newState == BleStatuses.STATE_TURNING_OFF || newState == BleStatuses.STATE_BLE_TURNING_OFF ) + { + onNativeBleStateChange_fromPolling(BleStatuses.STATE_ON, BleStatuses.STATE_TURNING_OFF); + } + else if( newState == BleStatuses.STATE_OFF ) + { + onNativeBleStateChange_fromPolling(BleStatuses.STATE_ON, BleStatuses.STATE_OFF); + } + else + { + assertOnWeirdStateChange(oldState, newState); + } + } + else if( oldState == BleStatuses.STATE_TURNING_OFF ) + { + if( newState == BleStatuses.STATE_ON ) + { + //--- DRK > This is a "valid" case observed in pre-Android-M BroadcastReceiver callbacks. + //--- Down the line this will result in an UhOh and log errors and whatnot but we + //--- let it pass just because we did previously. + onNativeBleStateChange_fromPolling(BleStatuses.STATE_TURNING_OFF, BleStatuses.STATE_ON); + } + else if( newState == BleStatuses.STATE_OFF ) + { + //--- DRK > Based on limited testing, we *should* get STATE_TURNING_OFF->STATE_BLE_TURNING_OFF->STATE_OFF + //--- but it's possible we missed STATE_BLE_TURNING_OFF so no problem, behaves just like pre-M. + onNativeBleStateChange_fromPolling(BleStatuses.STATE_TURNING_OFF, BleStatuses.STATE_OFF); + } + else if( newState == BleStatuses.STATE_BLE_TURNING_OFF ) + { + //--- DRK > We skip this case cause we consider STATE_TURNING_OFF to be the "start" + //--- of the turning off process, and STATE_TURNING_OFF->STATE_BLE_TURNING_OFF to just be the "continuation". + } + else if( newState == BleStatuses.STATE_BLE_ON ) + { + //--- DRK > Ignoring this because even though oddly enough it's an observed state transition, it doesn't make + //--- sense from the perspective of onNativeBleStateChange(). Note that it happens pretty fast so sometimes we miss it, but no big deal. + } + else + { + assertOnWeirdStateChange(oldState, newState); + } + } + else if( oldState == BleStatuses.STATE_BLE_TURNING_OFF ) + { + if( newState == BleStatuses.STATE_OFF ) + { + onNativeBleStateChange_fromPolling(BleStatuses.STATE_TURNING_OFF, BleStatuses.STATE_OFF); + } + else + { + assertOnWeirdStateChange(oldState, newState); + } + } + else if( oldState == BleStatuses.STATE_OFF ) + { + if( newState == BleStatuses.STATE_ON ) + { + onNativeBleStateChange_fromPolling(BleStatuses.STATE_OFF, BleStatuses.STATE_ON); + } + else if( newState == BleStatuses.STATE_BLE_TURNING_ON || newState == BleStatuses.STATE_TURNING_ON ) + { + onNativeBleStateChange_fromPolling(BleStatuses.STATE_OFF, BleStatuses.STATE_TURNING_ON); + } + else + { + assertOnWeirdStateChange(oldState, newState); + } + } + else if( oldState == BleStatuses.STATE_BLE_TURNING_ON ) + { + if( newState == BleStatuses.STATE_ON ) + { + onNativeBleStateChange_fromPolling(BleStatuses.STATE_TURNING_ON, BleStatuses.STATE_ON); + } + else if( newState == BleStatuses.STATE_OFF ) + { + //--- DRK > Have never seen this case directly but *have* seen STATE_TURNING_ON->STATE_OFF so have UhOh/logging-logic + //--- in place to handle it. + onNativeBleStateChange_fromPolling(BleStatuses.STATE_TURNING_ON, BleStatuses.STATE_OFF); + } + else if( newState == BleStatuses.STATE_TURNING_ON ) + { + //--- DRK > We skip this case cause we consider STATE_BLE_TURNING_ON to be the "start" + //--- of the turning on process, and STATE_BLE_TURNING_ON->STATE_TURNING_ON to just be the "continuation". + } + else if( newState == BleStatuses.STATE_BLE_ON ) + { + //--- DRK > Also skipping this transition because we consider it the continuation of bluetooth turning on. + //--- Next state should be STATE_TURNING_ON. + } + else + { + assertOnWeirdStateChange(oldState, newState); + } + } + else if( oldState == BleStatuses.STATE_TURNING_ON ) + { + if( newState == BleStatuses.STATE_ON ) + { + onNativeBleStateChange_fromPolling(BleStatuses.STATE_TURNING_ON, BleStatuses.STATE_ON); + } + else if( newState == BleStatuses.STATE_OFF ) + { + //--- DRK > "Valid" case seen in the wild pre-M. UhOhs/logging are in place to catch it. + onNativeBleStateChange_fromPolling(BleStatuses.STATE_TURNING_ON, BleStatuses.STATE_OFF); + } + else + { + assertOnWeirdStateChange(oldState, newState); + } + } + + + //--- DRK > I've put line breaks before this else-if case to emphasize how it doesn't + //--- fit in nicely with the rest and should be looked down upon and even ridiculed. + else if( oldState == BleStatuses.STATE_BLE_ON ) + { + if( newState == BleStatuses.STATE_OFF ) + { + //--- DRK > This is to cover the case of STATE_ON->STATE_TURNING_OFF->STATE_BLE_ON->STATE_BLE_TURNING_OFF->STATE_OFF (see logcat in BleStatuses) + //--- but STATE_BLE_TURNING_OFF gets skipped for whatever reason because the timestep is large. + onNativeBleStateChange_fromPolling(BleStatuses.STATE_TURNING_OFF, BleStatuses.STATE_OFF); + } + else if( newState == BleStatuses.STATE_BLE_TURNING_OFF ) + { + //--- DRK > Skipping because this is just the continuation of the turning off process that should have been caught earlier. + } + else if( newState == BleStatuses.STATE_TURNING_ON ) + { + //--- DRK > Skipping because this is just the continuation of the bluetooth turning on process. + } + else + { + assertOnWeirdStateChange(oldState, newState); + } + } + } + } + } + + private int getBleState() + { + if( Utils.isMarshmallow() ) + { + try + { + if (m_getLeState_marshmallow == null) + { + m_getLeState_marshmallow = BluetoothAdapter.class.getDeclaredMethod("getLeState"); + } + m_refState = (Integer) m_getLeState_marshmallow.invoke(m_mngr.getNativeAdapter()); + m_state = m_mngr.getNativeAdapter().getState(); + // This is to fix an issue on the S7 (and perhaps other phones as well), where the OFF + // state is never returned from the getLeState method. This is because the BLE_ states represent if LE only mode is on/off. This does NOT + // relate to the Bluetooth radio being on/off. So, we check if STATE_BLE_ON, and the normal getState() method returns OFF, we + // will return a state of OFF here. + if (m_refState == BleStatuses.STATE_BLE_ON && m_state == OFF.getNativeCode()) + { + return m_state; + } + return m_refState; + } + catch (Exception e) + { + + return m_mngr.getNativeAdapter().getState(); + } + } + else + { + return m_mngr.getNativeAdapter().getState(); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_BleServer_Listeners.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_BleServer_Listeners.java new file mode 100644 index 0000000000000000000000000000000000000000..4893ae2b24c8b15cf6069b96d53276b0181a490b --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_BleServer_Listeners.java @@ -0,0 +1,545 @@ +package com.idevicesinc.sweetblue; + +import java.util.UUID; + +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattDescriptor; +import android.bluetooth.BluetoothGattServerCallback; +import android.bluetooth.BluetoothGattService; +import android.bluetooth.BluetoothProfile; + +import com.idevicesinc.sweetblue.BleServer.IncomingListener; +import static com.idevicesinc.sweetblue.BleServer.IncomingListener.*; +import static com.idevicesinc.sweetblue.BleServer.OutgoingListener.*; + +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Uuids; + +class P_BleServer_Listeners extends BluetoothGattServerCallback +{ + private final BleServer m_server; + private final P_Logger m_logger; + private final P_TaskQueue m_queue; + + final PA_Task.I_StateListener m_taskStateListener = new PA_Task.I_StateListener() + { + @Override public void onStateChange(PA_Task task, PE_TaskState state) + { + if ( task.getClass() == P_Task_DisconnectServer.class ) + { + if( state.isEndingState() ) + { + if( state == PE_TaskState.SUCCEEDED ) + { + final P_Task_DisconnectServer task_cast = (P_Task_DisconnectServer) task; + + m_server.onNativeDisconnect(task_cast.m_nativeDevice.getAddress(), task_cast.isExplicit(), task_cast.getGattStatus()); + } + } + } + else if( task.getClass() == P_Task_ConnectServer.class ) + { + if( state.isEndingState() ) + { + final P_Task_ConnectServer task_cast = (P_Task_ConnectServer) task; + + if( state == PE_TaskState.SUCCEEDED ) + { + m_server.onNativeConnect(task_cast.m_nativeDevice.getAddress(), task_cast.isExplicit()); + } + else if( state == PE_TaskState.REDUNDANT ) + { + // nothing to do, but maybe should assert? + } + else if( state == PE_TaskState.FAILED_IMMEDIATELY ) + { + final BleServer.ConnectionFailListener.Status status = task_cast.getStatus(); + + if( status == BleServer.ConnectionFailListener.Status.SERVER_OPENING_FAILED || status == BleServer.ConnectionFailListener.Status.NATIVE_CONNECTION_FAILED_IMMEDIATELY ) + { + m_server.onNativeConnectFail(task_cast.m_nativeDevice, status, task_cast.getGattStatus()); + } + else + { + m_server.getManager().ASSERT(false, "Didn't expect server failed-immediately status to be something else."); + + m_server.onNativeConnectFail(task_cast.m_nativeDevice, BleServer.ConnectionFailListener.Status.NATIVE_CONNECTION_FAILED_IMMEDIATELY, task_cast.getGattStatus()); + } + } + else if( state == PE_TaskState.FAILED ) + { + m_server.onNativeConnectFail(task_cast.m_nativeDevice, BleServer.ConnectionFailListener.Status.NATIVE_CONNECTION_FAILED_EVENTUALLY, task_cast.getGattStatus()); + } + else if( state == PE_TaskState.TIMED_OUT ) + { + m_server.onNativeConnectFail(task_cast.m_nativeDevice, BleServer.ConnectionFailListener.Status.TIMED_OUT, task_cast.getGattStatus()); + } + else if( state == PE_TaskState.SOFTLY_CANCELLED ) + { + // do nothing...this was handled upstream back in time + } + else + { + m_server.getManager().ASSERT(false, "Did not expect ending state " + state + " for connect task failure."); + + m_server.onNativeConnectFail(task_cast.m_nativeDevice, BleServer.ConnectionFailListener.Status.NATIVE_CONNECTION_FAILED_EVENTUALLY, task_cast.getGattStatus()); + } + } + } + } + }; + + public P_BleServer_Listeners( BleServer server ) + { + m_server = server; + m_logger = m_server.getManager().getLogger(); + m_queue = m_server.getManager().getTaskQueue(); + } + + private void post(final Runnable runnable) + { + final PI_UpdateLoop updateLoop = m_server.getManager().getUpdateLoop(); + + updateLoop.postIfNeeded(runnable); + } + + private boolean postNeeded() + { + return m_server.getManager().getUpdateLoop().postNeeded(); + } + + private boolean hasCurrentDisconnectTaskFor(final BluetoothDevice device) + { + final P_Task_DisconnectServer disconnectTask = m_queue.getCurrent(P_Task_DisconnectServer.class, m_server); + + return disconnectTask != null && disconnectTask.isFor(m_server, device.getAddress()); + } + + private boolean hasCurrentConnectTaskFor(final BluetoothDevice device) + { + final P_Task_ConnectServer connectTask = m_queue.getCurrent(P_Task_ConnectServer.class, m_server); + + return connectTask != null && connectTask.isFor(m_server, device.getAddress()); + } + + private void failDisconnectTaskIfPossibleFor(final BluetoothDevice device) + { + final P_Task_DisconnectServer disconnectTask = m_queue.getCurrent(P_Task_DisconnectServer.class, m_server); + + if( disconnectTask != null && disconnectTask.isFor(m_server, device.getAddress()) ) + { + m_queue.fail(P_Task_DisconnectServer.class, m_server); + } + } + + private boolean failConnectTaskIfPossibleFor(final BluetoothDevice device, final int gattStatus) + { + if( hasCurrentConnectTaskFor(device) ) + { + final P_Task_ConnectServer connectTask = m_queue.getCurrent(P_Task_ConnectServer.class, m_server); + + connectTask.onNativeFail(gattStatus); + + return true; + } + else + { + return false; + } + } + + private void onNativeConnectFail(final BluetoothDevice nativeDevice, final int gattStatus) + { + //--- DRK > NOTE: Making an assumption that the underlying stack agrees that the connection state is STATE_DISCONNECTED. + //--- This is backed up by basic testing, but even if the underlying stack uses a different value, it can probably + //--- be assumed that it will eventually go to STATE_DISCONNECTED, so SweetBlue library logic is sounder "living under the lie" for a bit regardless. + m_server.m_nativeWrapper.updateNativeConnectionState(nativeDevice.getAddress(), BluetoothProfile.STATE_DISCONNECTED); + + if( hasCurrentConnectTaskFor(nativeDevice) ) + { + final P_Task_ConnectServer connectTask = m_queue.getCurrent(P_Task_ConnectServer.class, m_server); + + connectTask.onNativeFail(gattStatus); + } + else + { + m_server.onNativeConnectFail(nativeDevice, BleServer.ConnectionFailListener.Status.NATIVE_CONNECTION_FAILED_EVENTUALLY, gattStatus); + } + } + + @Override public void onConnectionStateChange(final BluetoothDevice device, final int gattStatus, final int newState) + { + if( postNeeded() ) + { + post(new Runnable() + { + @Override public void run() + { + onConnectionStateChange_mainThread(device, gattStatus, newState); + } + }); + } + else + { + onConnectionStateChange_mainThread(device, gattStatus, newState); + } + } + + private void onConnectionStateChange_mainThread(final BluetoothDevice device, final int gattStatus, final int newState) + { + m_logger.log_status(gattStatus, m_logger.gattConn(newState)); + + if( newState == BluetoothProfile.STATE_DISCONNECTED ) + { + m_server.m_nativeWrapper.updateNativeConnectionState(device.getAddress(), newState); + + final boolean wasConnecting = hasCurrentConnectTaskFor(device); + + if( !failConnectTaskIfPossibleFor(device, gattStatus) ) + { + if( hasCurrentDisconnectTaskFor(device) ) + { + final P_Task_DisconnectServer disconnectTask = m_queue.getCurrent(P_Task_DisconnectServer.class, m_server); + + disconnectTask.onNativeSuccess(gattStatus); + } + else + { + m_server.onNativeDisconnect(device.getAddress(), /*explicit=*/false, gattStatus); + } + } + } + else if( newState == BluetoothProfile.STATE_CONNECTING ) + { + if( Utils.isSuccess(gattStatus) ) + { + m_server.m_nativeWrapper.updateNativeConnectionState(device.getAddress(), newState); + +// m_device.onConnecting(/*definitelyExplicit=*/false, /*isReconnect=*/false, P_BondManager.OVERRIDE_EMPTY_STATES, /*bleConnect=*/true); + + failDisconnectTaskIfPossibleFor(device); + + if( !hasCurrentConnectTaskFor(device) ) + { + final P_Task_ConnectServer task = new P_Task_ConnectServer(m_server, device, m_taskStateListener, /*explicit=*/false, PE_TaskPriority.FOR_IMPLICIT_BONDING_AND_CONNECTING); + + m_queue.add(task); + } + else + { + m_server.onNativeConnecting_implicit(device.getAddress()); + } + } + else + { + onNativeConnectFail(device, gattStatus); + } + } + else if( newState == BluetoothProfile.STATE_CONNECTED ) + { + if( Utils.isSuccess(gattStatus) ) + { + m_server.m_nativeWrapper.updateNativeConnectionState(device.getAddress(), newState); + + failDisconnectTaskIfPossibleFor(device); + + if( hasCurrentConnectTaskFor(device) ) + { + m_queue.succeed(P_Task_ConnectServer.class, m_server); + } + else + { + m_server.onNativeConnect(device.getAddress(), /*explicit=*/false); + } + } + else + { + onNativeConnectFail(device, gattStatus); + } + } + //--- DRK > NOTE: never seen this case happen with BleDevice, we'll see if it happens with the server. + else if( newState == BluetoothProfile.STATE_DISCONNECTING ) + { + m_server.m_nativeWrapper.updateNativeConnectionState(device.getAddress(), newState); + + //--- DRK > error level just so it's noticeable...never seen this with client connections so we'll see if it hits with server ones. + m_logger.e("Actually natively disconnecting server!"); + + if( !hasCurrentDisconnectTaskFor(device) ) + { + P_Task_DisconnectServer task = new P_Task_DisconnectServer(m_server, device, m_taskStateListener, /*explicit=*/false, PE_TaskPriority.FOR_IMPLICIT_BONDING_AND_CONNECTING); + + m_queue.add(task); + } + + failConnectTaskIfPossibleFor(device, gattStatus); + } + else + { + m_server.m_nativeWrapper.updateNativeConnectionState(device); + } + } + + @Override public void onServiceAdded(final int gattStatus, final BluetoothGattService service) + { + if( postNeeded() ) + { + post(new Runnable() + { + @Override public void run() + { + onServiceAdded_mainThread(gattStatus, service); + } + }); + } + else + { + onServiceAdded_mainThread(gattStatus, service); + } + } + + private void onServiceAdded_mainThread(final int gattStatus, final BluetoothGattService service) + { + final P_Task_AddService task = m_queue.getCurrent(P_Task_AddService.class, m_server); + + if( task != null && task.getService().equals(service) ) + { + task.onServiceAdded(gattStatus, service); + } + else + { + final BleServer.ServiceAddListener.Status status = Utils.isSuccess(gattStatus) ? BleServer.ServiceAddListener.Status.SUCCESS : BleServer.ServiceAddListener.Status.FAILED_EVENTUALLY; + final BleServer.ServiceAddListener.ServiceAddEvent e = new BleServer.ServiceAddListener.ServiceAddEvent + ( + m_server, service, status, gattStatus, /*solicited=*/false + ); + + m_server.serviceMngr_server().invokeListeners(e, null); + } + } + + private OutgoingEvent newEarlyOutResponse_Read(final BluetoothDevice device, final UUID serviceUuid, final UUID charUuid, final UUID descUuid_nullable, final int requestId, final int offset, final BleServer.OutgoingListener.Status status) + { + final Target target = descUuid_nullable == null ? Target.CHARACTERISTIC : Target.DESCRIPTOR; + + final OutgoingEvent e = new OutgoingEvent + ( + m_server, device, serviceUuid, charUuid, descUuid_nullable, Type.READ, target, BleServer.EMPTY_BYTE_ARRAY, BleServer.EMPTY_BYTE_ARRAY, + requestId, offset, /*responseNeeded=*/true, status, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BleStatuses.GATT_STATUS_NOT_APPLICABLE, /*solicited=*/true + ); + + return e; + } + + private void onReadRequest_mainThread(final BluetoothDevice device, final int requestId, final int offset, final UUID serviceUuid, final UUID charUuid, final UUID descUuid_nullable) + { + final Target target = descUuid_nullable == null ? Target.CHARACTERISTIC : Target.DESCRIPTOR; + + final IncomingListener listener = m_server.getListener_Incoming() != null ? m_server.getListener_Incoming() : m_server.getManager().m_defaultServerIncomingListener; + + if( listener == null ) + { + m_server.invokeOutgoingListeners(newEarlyOutResponse_Read(device, serviceUuid, charUuid, /*descUuid=*/null, requestId, offset, Status.NO_REQUEST_LISTENER_SET), null); + } + else + { + final IncomingEvent requestEvent = new IncomingEvent + ( + m_server, device, serviceUuid, charUuid, descUuid_nullable, Type.READ, target, BleServer.EMPTY_BYTE_ARRAY, requestId, offset, /*responseNeeded=*/true + ); + + final IncomingListener.Please please = listener.onEvent(requestEvent); + + if( please == null) + { + m_server.invokeOutgoingListeners(newEarlyOutResponse_Read(device, serviceUuid, charUuid, descUuid_nullable, requestId, offset, Status.NO_RESPONSE_ATTEMPTED), null); + } + else + { + final boolean attemptResponse = please.m_respond; + + if( attemptResponse ) + { + final P_Task_SendReadWriteResponse responseTask = new P_Task_SendReadWriteResponse(m_server, requestEvent, please); + + m_queue.add(responseTask); + } + else + { + m_server.invokeOutgoingListeners(newEarlyOutResponse_Read(device, serviceUuid, charUuid, descUuid_nullable, requestId, offset, Status.NO_RESPONSE_ATTEMPTED), please.m_outgoingListener); + } + } + } + } + + @Override public void onCharacteristicReadRequest(final BluetoothDevice device, final int requestId, final int offset, final BluetoothGattCharacteristic characteristic) + { + if( postNeeded() ) + { + post(new Runnable() + { + @Override public void run() + { + onReadRequest_mainThread(device, requestId, offset, characteristic.getService().getUuid(), characteristic.getUuid(), /*descUuid=*/null); + } + }); + } + else + { + onReadRequest_mainThread(device, requestId, offset, characteristic.getService().getUuid(), characteristic.getUuid(), /*descUuid=*/null); + } + } + + @Override public void onDescriptorReadRequest(final BluetoothDevice device, final int requestId, final int offset, final BluetoothGattDescriptor descriptor) + { + if( postNeeded() ) + { + post(new Runnable() + { + @Override public void run() + { + onReadRequest_mainThread(device, requestId, offset, descriptor.getCharacteristic().getService().getUuid(), descriptor.getCharacteristic().getUuid(), descriptor.getUuid()); + } + }); + } + else + { + onReadRequest_mainThread(device, requestId, offset, descriptor.getCharacteristic().getService().getUuid(), descriptor.getCharacteristic().getUuid(), descriptor.getUuid()); + } + } + + private OutgoingEvent newEarlyOutResponse_Write(final BluetoothDevice device, final Type type, final UUID serviceUuid, final UUID charUuid, final UUID descUuid_nullable, final int requestId, final int offset, final BleServer.OutgoingListener.Status status) + { + final Target target = descUuid_nullable == null ? Target.CHARACTERISTIC : Target.DESCRIPTOR; + + final OutgoingEvent e = new OutgoingEvent + ( + m_server, device, serviceUuid, charUuid, descUuid_nullable, type, target, BleServer.EMPTY_BYTE_ARRAY, BleServer.EMPTY_BYTE_ARRAY, + requestId, offset, /*responseNeeded=*/true, status, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BleStatuses.GATT_STATUS_NOT_APPLICABLE, /*solicited=*/true + ); + + return e; + } + + private void onWriteRequest_mainThread(final BluetoothDevice device, final byte[] data, final int requestId, final int offset, final boolean preparedWrite, final boolean responseNeeded, final UUID serviceUuid, final UUID charUuid, final UUID descUuid_nullable) + { + final Target target = descUuid_nullable == null ? Target.CHARACTERISTIC : Target.DESCRIPTOR; + final Type type = preparedWrite ? Type.PREPARED_WRITE : Type.WRITE; + + final IncomingListener listener = m_server.getListener_Incoming() != null ? m_server.getListener_Incoming() : m_server.getManager().m_defaultServerIncomingListener; + + if( listener == null ) + { + m_server.invokeOutgoingListeners(newEarlyOutResponse_Write(device, type, serviceUuid, charUuid, /*descUuid=*/null, requestId, offset, Status.NO_REQUEST_LISTENER_SET), null); + } + else + { + final IncomingEvent requestEvent = new IncomingEvent + ( + m_server, device, serviceUuid, charUuid, descUuid_nullable, type, target, data, requestId, offset, responseNeeded + ); + + final IncomingListener.Please please = listener.onEvent(requestEvent); + + if( please == null) + { + m_server.invokeOutgoingListeners(newEarlyOutResponse_Write(device, type, serviceUuid, charUuid, descUuid_nullable, requestId, offset, Status.NO_RESPONSE_ATTEMPTED), null); + } + else + { + final boolean attemptResponse = please.m_respond; + + if( attemptResponse ) + { + final P_Task_SendReadWriteResponse responseTask = new P_Task_SendReadWriteResponse(m_server, requestEvent, please); + + m_queue.add(responseTask); + } + else + { + m_server.invokeOutgoingListeners(newEarlyOutResponse_Write(device, type, serviceUuid, charUuid, descUuid_nullable, requestId, offset, Status.NO_RESPONSE_ATTEMPTED), please.m_outgoingListener); + } + } + } + } + + @Override public void onCharacteristicWriteRequest(final BluetoothDevice device, final int requestId, final BluetoothGattCharacteristic characteristic, final boolean preparedWrite, final boolean responseNeeded, final int offset, final byte[] value) + { + if( postNeeded() ) + { + post(new Runnable() + { + @Override public void run() + { + onWriteRequest_mainThread(device, value, requestId, offset, preparedWrite, responseNeeded, characteristic.getService().getUuid(), characteristic.getUuid(), /*descUuid=*/null); + } + }); + } + else + { + onWriteRequest_mainThread(device, value, requestId, offset, preparedWrite, responseNeeded, characteristic.getService().getUuid(), characteristic.getUuid(), /*descUuid=*/null); + } + } + + @Override public void onDescriptorWriteRequest( final BluetoothDevice device, final int requestId, final BluetoothGattDescriptor descriptor, final boolean preparedWrite, final boolean responseNeeded, final int offset, final byte[] value) + { + if( postNeeded() ) + { + post(new Runnable() + { + @Override public void run() + { + onWriteRequest_mainThread(device, value, requestId, offset, preparedWrite, responseNeeded, descriptor.getCharacteristic().getService().getUuid(), descriptor.getCharacteristic().getUuid(), descriptor.getUuid()); + } + }); + } + else + { + onWriteRequest_mainThread(device, value, requestId, offset, preparedWrite, responseNeeded, descriptor.getCharacteristic().getService().getUuid(), descriptor.getCharacteristic().getUuid(), descriptor.getUuid()); + } + } + + @Override public void onExecuteWrite(BluetoothDevice device, int requestId, boolean execute) + { + } + + @Override public void onNotificationSent( final BluetoothDevice device, final int gattStatus ) + { + if( postNeeded() ) + { + post(new Runnable() + { + @Override public void run() + { + onNotificationSent_mainThread(device, gattStatus); + } + }); + } + else + { + onNotificationSent_mainThread(device, gattStatus); + } + } + + private void onNotificationSent_mainThread(final BluetoothDevice device, final int gattStatus) + { + final P_Task_SendNotification task = m_queue.getCurrent(P_Task_SendNotification.class, m_server); + + if( task != null && task.m_macAddress.equals(device.getAddress()) ) + { + task.onNotificationSent(device, gattStatus); + } + else + { + final BleServer.OutgoingListener.OutgoingEvent e = new BleServer.OutgoingListener.OutgoingEvent + ( + m_server, device, Uuids.INVALID, Uuids.INVALID, BleServer.ExchangeListener.ExchangeEvent.NON_APPLICABLE_UUID, Type.NOTIFICATION, + BleServer.ExchangeListener.Target.CHARACTERISTIC, BleServer.EMPTY_BYTE_ARRAY, BleServer.EMPTY_BYTE_ARRAY, BleServer.ExchangeListener.ExchangeEvent.NON_APPLICABLE_REQUEST_ID, + /*offset=*/0, /*responseNeeded=*/false, BleServer.OutgoingListener.Status.SUCCESS, BleStatuses.GATT_STATUS_NOT_APPLICABLE, gattStatus, /*solicited=*/false + ); + + m_server.invokeOutgoingListeners(e, null); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_BleStateTracker.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_BleStateTracker.java new file mode 100644 index 0000000000000000000000000000000000000000..99f39a0fc6a2e17c9d9f686d3a95b8f4d42d06a5 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_BleStateTracker.java @@ -0,0 +1,36 @@ +package com.idevicesinc.sweetblue; + +import com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent; + + +class P_BleStateTracker extends PA_StateTracker +{ + private BleManager.StateListener m_stateListener; + private final BleManager m_mngr; + + P_BleStateTracker(BleManager mngr) + { + super(BleManagerState.VALUES()); + + m_mngr = mngr; + } + + public void setListener(BleManager.StateListener listener) + { + m_stateListener = listener; + } + + @Override protected void onStateChange(int oldStateBits, int newStateBits, int intentMask, int status) + { + if( m_stateListener != null ) + { + final StateEvent event = new StateEvent(m_mngr, oldStateBits, newStateBits, intentMask); + m_stateListener.onEvent(event); + } + } + + @Override public String toString() + { + return super.toString(BleManagerState.VALUES()); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_BluetoothCrashResolver.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_BluetoothCrashResolver.java new file mode 100644 index 0000000000000000000000000000000000000000..91878d37c78fae0921c00e07872d6142b3278851 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_BluetoothCrashResolver.java @@ -0,0 +1,485 @@ +package com.idevicesinc.sweetblue; + +import java.io.BufferedReader; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.util.Date; +import java.util.HashSet; +import java.util.Set; + +import android.annotation.TargetApi; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.AsyncTask; +import android.util.Log; + +/** + * + * This class provides relief for Android Bug 67272. This bug in the Bluedroid stack causes crashes + * in Android's BluetoothService when scanning for BLE devices encounters a large number of unique + * devices. It is rare for most users but can be problematic for those with apps scanning for + * Bluetooth LE devices in the background (e.g. iBeacon-enabled apps), especially when these users + * are around Bluetooth LE devices that randomize their mac address like Gimbal beacons. + * + * This class can both recover from crashes and prevent crashes from happening in the first place + * + * More details on the bug can be found at the following URLs: + * + * https://code.google.com/p/android/issues/detail?id=67272 + * https://github.com/RadiusNetworks/android-ibeacon-service/issues/16 + * + * Version 1.0 + * + * Created by dyoung on 3/24/14. + */ +@TargetApi(5) +class P_BluetoothCrashResolver { + private static final String TAG = "BluetoothCrashResolver"; + private static final boolean PREEMPTIVE_ACTION_ENABLED = true; + private boolean debugEnabled = false; + /** + * This is not the same file that bluedroid uses. This is just to maintain state of this module + */ + private static final String DISTINCT_BLUETOOTH_ADDRESSES_FILE = "BluetoothCrashResolverState.txt"; + private boolean recoveryInProgress = false; + private boolean discoveryStartConfirmed = false; + + private long lastBluetoothOffTime = 0l; + private long lastBluetoothTurningOnTime = 0l; + private long lastBluetoothCrashDetectionTime = 0l; + private int detectedCrashCount = 0; + private int recoveryAttemptCount = 0; + private boolean lastRecoverySucceeded = false; + private long lastStateSaveTime = 0l; + private static final long MIN_TIME_BETWEEN_STATE_SAVES_MILLIS = 60000l; + + private Context context = null; + private UpdateNotifier updateNotifier; + private Set<String> distinctBluetoothAddresses = new HashSet<String>(); + private DiscoveryCanceller discoveryCanceller = new DiscoveryCanceller(); + /** + // It is very likely a crash if Bluetooth turns off and comes + // back on in an extremely short interval. Testing on a Nexus 4 shows + // that when the BluetoothService crashes, the time between the STATE_OFF + // and the STATE_TURNING_ON ranges from 0ms-684ms + // Out of 3614 samples: + // 99.4% (3593) < 600 ms + // 84.7% (3060) < 500 ms + // So we will assume any power off sequence of < 600ms to be a crash + // + // While it is possible to manually turn bluetooth off then back on in + // about 600ms, but it is pretty hard to do. + // + */ + private static final long SUSPICIOUSLY_SHORT_BLUETOOTH_OFF_INTERVAL_MILLIS = 600l; + /** + * The Bluedroid stack can only track only 1990 unique Bluetooth mac addresses without crashing + */ + private static final int BLUEDROID_MAX_BLUETOOTH_MAC_COUNT = 1990; + /** + * The discovery process will pare back the mac address list to 256, but more may + * be found in the time we let the discovery process run, depending hon how many BLE + * devices are around. + */ + private static final int BLUEDROID_POST_DISCOVERY_ESTIMATED_BLUETOOTH_MAC_COUNT = 400; + /** + * It takes a little over 2 seconds after discovery is started before the pared-down mac file + * is written to persistent storage. We let discovery run for a few more seconds just to be + * sure. + */ + private static final int TIME_TO_LET_DISCOVERY_RUN_MILLIS = 5000; /* if 0, it means forever */ + + /** + * Constructor should be called only once per long-running process that does Bluetooth LE + * scanning. Must call start() to make it do anything. + * + * @param context the Activity or Service that is doing the Bluetooth scanning + */ + public P_BluetoothCrashResolver(Context context) { + this.context = context.getApplicationContext(); + if (isDebugEnabled()) Log.d(TAG, "constructed"); + loadState(); + } + + /** + * Starts looking for crashes of the Bluetooth LE system and taking proactive steps to stop + * crashes from happening. Proactive steps require calls to notifyScannedDevice(Device device) + * so that crashes can be predicted ahead of time. + */ + public void start() { + IntentFilter filter = new IntentFilter(); + filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED); + filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED); + filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); + context.registerReceiver(receiver, filter); + + if (isDebugEnabled()) Log.d(TAG, "started listening for BluetoothAdapter events"); + } + + /** + * Stops looking for crashes. Does not need to be called in normal operations, but may be + * useful for testing. + */ + public void stop() + { + try + { + context.unregisterReceiver(receiver); + } + catch(IllegalArgumentException e) + { + //--- DRK > unregisterReceiver can't be called more than once for a given receiver. + } + + if (isDebugEnabled()) Log.d(TAG, "stopped listening for BluetoothAdapter events"); + saveState(); + } + + /** + * Enable debug logging. By default no debug lines are logged. + */ + public void enableDebug() { + debugEnabled = true; + } + /** + * Disable debug logging + */ + public void disableDebug() { + debugEnabled = false; + } + + /** + * Call this method from your BluetoothAdapter.LeScanCallback method. + * Doing so is optional, but if you do, this class will be able to count the number of + * disctinct bluetooth devices scanned, and prevent crashes before they happen. + * + * This works very well if the app containing this class is the only one running bluetooth + * LE scans on the device, or it is constantly doing scans (e.g. is in the foreground for + * extended periods of time.) + * + * This will not work well if the application using this class is only scanning periodically + * (e.g. when in the background to save battery) and another application is also scanning on + * the same device, because this class will only get the counts from this application. + * + * Future augmentation of this class may improve this by somehow centralizing the list of + * unique scanned devices. + * + * @param device + */ + @TargetApi(18) + public void notifyScannedDevice(BluetoothDevice device, BluetoothAdapter.LeScanCallback scanner) { + int oldSize = 0, newSize = 0; + + if (isDebugEnabled()) oldSize = distinctBluetoothAddresses.size(); + + distinctBluetoothAddresses.add(device.getAddress()); + if (isDebugEnabled()) { + newSize = distinctBluetoothAddresses.size(); + if (oldSize != newSize && newSize % 100 == 0) { + if (isDebugEnabled()) Log.d(TAG, "Distinct bluetooth devices seen: "+distinctBluetoothAddresses.size()); + } + } + if (distinctBluetoothAddresses.size() > getCrashRiskDeviceCount()) { + if (PREEMPTIVE_ACTION_ENABLED && !recoveryInProgress) { + Log.w(TAG, "Large number of bluetooth devices detected: "+distinctBluetoothAddresses.size()+" Proactively attempting to clear out address list to prevent a crash"); + Log.w(TAG, "Stopping LE Scan"); + BluetoothAdapter.getDefaultAdapter().stopLeScan(scanner); + startRecovery(); + processStateChange(); + } + } + } + + public void crashDetected() { + if (android.os.Build.VERSION.SDK_INT < 18) { + if (isDebugEnabled()) Log.d(TAG, "Ignoring crashes before SDK 18, because BLE is unsupported."); + return; + } + Log.w(TAG, "BluetoothService crash detected"); + if (distinctBluetoothAddresses.size() > 0) { + if (isDebugEnabled()) Log.d(TAG, "Distinct bluetooth devices seen at crash: "+distinctBluetoothAddresses.size()); + } + long nowTimestamp = new Date().getTime(); + lastBluetoothCrashDetectionTime = nowTimestamp; + detectedCrashCount++; + + if (recoveryInProgress) { + if (isDebugEnabled()) Log.d(TAG, "Ignoring bluetooth crash because recovery is already in progress."); + } + else { + startRecovery(); + } + processStateChange(); + + } + + public long getLastBluetoothCrashDetectionTime() { + return lastBluetoothCrashDetectionTime; + } + public int getDetectedCrashCount() { + return detectedCrashCount; + } + public int getRecoveryAttemptCount() { + return recoveryAttemptCount; + } + public boolean isLastRecoverySucceeded() { + return lastRecoverySucceeded; + } + public boolean isRecoveryInProgress() { return recoveryInProgress; } + + public interface UpdateNotifier { + public void dataUpdated(); + } + + public void setUpdateNotifier(UpdateNotifier updateNotifier) { + this.updateNotifier = updateNotifier; + } + + /** + Used to force a recovery operation + */ + public void forceFlush() { + startRecovery(); + processStateChange(); + } + + private boolean isDebugEnabled() { + return debugEnabled; + } + + private int getCrashRiskDeviceCount() { + // 1990 distinct devices tracked by Bluedroid will cause a crash. But we don't know how many + // devices bluedroid is tracking, we only know how many we have seen, which will be smaller + // than the number tracked by bluedroid because the number we track does not include its + // initial state. We therefore assume that there are some devices being tracked by bluedroid + // after a recovery operation or on startup + return BLUEDROID_MAX_BLUETOOTH_MAC_COUNT-BLUEDROID_POST_DISCOVERY_ESTIMATED_BLUETOOTH_MAC_COUNT; + } + + private void processStateChange() { + if (updateNotifier != null) { + updateNotifier.dataUpdated(); + } + if (new Date().getTime() - lastStateSaveTime > MIN_TIME_BETWEEN_STATE_SAVES_MILLIS) { + saveState(); + } + } + + @TargetApi(17) + private void startRecovery() { + // The discovery operation will start by clearing out the bluetooth mac list to only the 256 + // most recently seen BLE mac addresses. + recoveryAttemptCount++; + BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); + if (isDebugEnabled()) Log.d(TAG, "about to check if discovery is active"); + if (!adapter.isDiscovering()) { + Log.w(TAG, "Recovery attempt started"); + recoveryInProgress = true; + discoveryStartConfirmed = false; + if (isDebugEnabled()) Log.d(TAG, "about to command discovery"); + if (!adapter.startDiscovery()) { + Log.w(TAG, "Can't start discovery. Is bluetooth turned on?"); + } + if (isDebugEnabled()) Log.d(TAG, "startDiscovery commanded. isDiscovering()="+adapter.isDiscovering()); + // We don't actually need to do a discovery -- we just need to kick one off so the + // mac list will be pared back to 256. Because discovery is an expensive operation in + // terms of battery, we will cancel it. + if (TIME_TO_LET_DISCOVERY_RUN_MILLIS > 0 ) { + if (isDebugEnabled()) Log.d(TAG, "We will be cancelling this discovery in "+TIME_TO_LET_DISCOVERY_RUN_MILLIS+" milliseconds."); + discoveryCanceller.doInBackground(); + } + else { + Log.d(TAG, "We will let this discovery run its course."); + } + } + else { + Log.w(TAG, "Already discovering. Recovery attempt abandoned."); + } + + } + private void finishRecovery() { + Log.w(TAG, "Recovery attempt finished"); + distinctBluetoothAddresses.clear(); + recoveryInProgress = false; + } + + private final BroadcastReceiver receiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + + if (action.equals(BluetoothAdapter.ACTION_DISCOVERY_FINISHED)) { + if (recoveryInProgress) { + if (isDebugEnabled()) Log.d(TAG, "Bluetooth discovery finished"); + finishRecovery(); + } + else { + if (isDebugEnabled()) Log.d(TAG, "Bluetooth discovery finished (external)"); + } + } + if (action.equals(BluetoothAdapter.ACTION_DISCOVERY_STARTED)) { + if (recoveryInProgress) { + discoveryStartConfirmed = true; + if (isDebugEnabled()) Log.d(TAG, "Bluetooth discovery started"); + } + else { + if (isDebugEnabled()) Log.d(TAG, "Bluetooth discovery started (external)"); + } + } + + if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) { + final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, + BluetoothAdapter.ERROR); + switch (state) { + case BluetoothAdapter.ERROR: + if (isDebugEnabled()) Log.d(TAG, "Bluetooth state is ERROR"); + break; + case BluetoothAdapter.STATE_OFF: + if (isDebugEnabled()) Log.d(TAG, "Bluetooth state is OFF"); + lastBluetoothOffTime = new Date().getTime(); + break; + case BluetoothAdapter.STATE_TURNING_OFF: + break; + case BluetoothAdapter.STATE_ON: + if (isDebugEnabled()) Log.d(TAG, "Bluetooth state is ON"); + if (isDebugEnabled()) Log.d(TAG, "Bluetooth was turned off for "+(lastBluetoothTurningOnTime - lastBluetoothOffTime)+" milliseconds"); + if (lastBluetoothTurningOnTime - lastBluetoothOffTime < SUSPICIOUSLY_SHORT_BLUETOOTH_OFF_INTERVAL_MILLIS) { + crashDetected(); + } + break; + case BluetoothAdapter.STATE_TURNING_ON: + lastBluetoothTurningOnTime = new Date().getTime(); + if (isDebugEnabled()) Log.d(TAG, "Bluetooth state is TURNING_ON"); + break; + } + } + } + }; + + + private void saveState() { + FileOutputStream outputStream = null; + OutputStreamWriter writer = null; + lastStateSaveTime = new Date().getTime(); + + try { + outputStream = context.openFileOutput(DISTINCT_BLUETOOTH_ADDRESSES_FILE, Context.MODE_PRIVATE); + writer = new OutputStreamWriter(outputStream); + writer.write(lastBluetoothCrashDetectionTime+"\n"); + writer.write(detectedCrashCount+"\n"); + writer.write(recoveryAttemptCount+"\n"); + writer.write(lastRecoverySucceeded ? "1\n" : "0\n"); + synchronized (distinctBluetoothAddresses) { + for (String mac : distinctBluetoothAddresses) { + writer.write(mac); + writer.write("\n"); + } + } + } catch (IOException e) { +// Log.w(TAG, "Can't write macs to "+DISTINCT_BLUETOOTH_ADDRESSES_FILE); + } + finally { + if (writer != null) { + try { + writer.close(); + } catch (IOException e1) { } + } + } + if (isDebugEnabled()) Log.d(TAG, "Wrote "+distinctBluetoothAddresses.size()+" bluetooth addresses"); + + } + + private void loadState() { + FileInputStream inputStream = null; + BufferedReader reader = null; + + try { + inputStream = context.openFileInput(DISTINCT_BLUETOOTH_ADDRESSES_FILE); + reader = new BufferedReader(new InputStreamReader(inputStream)); + String line; + line = reader.readLine(); + if (line != null) { + lastBluetoothCrashDetectionTime = Long.parseLong(line); + } + line = reader.readLine(); + if (line != null) { + detectedCrashCount = Integer.parseInt(line); + } + line = reader.readLine(); + if (line != null) { + recoveryAttemptCount = Integer.parseInt(line); + } + line = reader.readLine(); + if (line != null) { + lastRecoverySucceeded = false; + if (line.equals("1")) { + lastRecoverySucceeded = true; + } + } + + String mac; + while ((mac = reader.readLine()) != null) { + distinctBluetoothAddresses.add(mac); + } + + } catch (IOException e) { +// Log.w(TAG, "Can't read macs from "+DISTINCT_BLUETOOTH_ADDRESSES_FILE); + } catch (NumberFormatException e) { + Log.w(TAG, "Can't parse file "+DISTINCT_BLUETOOTH_ADDRESSES_FILE); + } + finally { + if (reader != null) { + try { + reader.close(); + } catch (IOException e1) { } + } + } + if (isDebugEnabled()) Log.d(TAG, "Read "+distinctBluetoothAddresses.size()+" bluetooth addresses"); + } + + private class DiscoveryCanceller extends AsyncTask<Void, Void, Void> { + @Override + protected Void doInBackground(Void... params) { + try { + Thread.sleep(TIME_TO_LET_DISCOVERY_RUN_MILLIS); + if (!discoveryStartConfirmed) { + Log.w(TAG, "BluetoothAdapter.ACTION_DISCOVERY_STARTED never received. Recovery may fail."); + } + + final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); + if (adapter.isDiscovering()) { + if (isDebugEnabled()) Log.d(TAG, "Cancelling discovery"); + adapter.cancelDiscovery(); + } + else { + if (isDebugEnabled()) Log.d(TAG, "Discovery not running. Won't cancel it"); + } + } catch (InterruptedException e) { + if (isDebugEnabled()) Log.d(TAG, "DiscoveryCanceller sleep interrupted."); + } + return null; + } + + @Override + protected void onPostExecute(Void result) { + } + + @Override + protected void onPreExecute() { + } + + @Override + protected void onProgressUpdate(Void... values) { + } + } + + +} + diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_BondManager.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_BondManager.java new file mode 100644 index 0000000000000000000000000000000000000000..abadb46c488849e41bbbb7e8476acec5924ae6c1 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_BondManager.java @@ -0,0 +1,288 @@ +package com.idevicesinc.sweetblue; + +import static com.idevicesinc.sweetblue.BleDeviceState.BONDED; +import static com.idevicesinc.sweetblue.BleDeviceState.BONDING; +import static com.idevicesinc.sweetblue.BleDeviceState.UNBONDED; + +import com.idevicesinc.sweetblue.BleDevice.BondListener.BondEvent; +import com.idevicesinc.sweetblue.BleDevice.BondListener; +import com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener; +import com.idevicesinc.sweetblue.BleDevice.BondListener.Status; +import com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter; +import com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOh; +import com.idevicesinc.sweetblue.PA_StateTracker.E_Intent; +import com.idevicesinc.sweetblue.utils.State; +import com.idevicesinc.sweetblue.utils.Utils; + +import java.util.UUID; + +class P_BondManager +{ + static final Object[] OVERRIDE_UNBONDED_STATES = {UNBONDED, true, BONDING, false, BONDED, false}; + static final Object[] OVERRIDE_BONDING_STATES = {UNBONDED, false, BONDING, true, BONDED, false}; + static final Object[] OVERRIDE_EMPTY_STATES = {}; + + private final BleDevice m_device; + + private BleDevice.BondListener m_listener; + + P_BondManager(BleDevice device) + { + m_device = device; + } + + public void setListener(BleDevice.BondListener listener_nullable) + { + m_listener = listener_nullable; + } + + void onBondTaskStateChange(final PA_Task task, final PE_TaskState state) + { + final E_Intent intent = task.isExplicit() ? E_Intent.INTENTIONAL : E_Intent.UNINTENTIONAL; + + if( task.getClass() == P_Task_Bond.class ) + { + final P_Task_Bond bondTask = (P_Task_Bond) task; + + if( state.isEndingState() ) + { + if( state == PE_TaskState.SUCCEEDED || state == PE_TaskState.REDUNDANT ) + { + this.onNativeBond(intent); + } + else if( state == PE_TaskState.SOFTLY_CANCELLED ) + { + + } + else + { + final int failReason = bondTask.getFailReason(); + final BondListener.Status status; + + if( state == PE_TaskState.TIMED_OUT ) + { + status = Status.TIMED_OUT; + } + else if( state == PE_TaskState.FAILED_IMMEDIATELY ) + { + status = Status.FAILED_IMMEDIATELY; + } + else + { + status = Status.FAILED_EVENTUALLY; + } + + this.onNativeBondFailed(intent, status, failReason); + } + } + } + else if( task.getClass() == P_Task_Unbond.class ) + { + if( state == PE_TaskState.SUCCEEDED || state == PE_TaskState.REDUNDANT ) + { + this.onNativeUnbond(intent); + } + else + { + // not sure what to do here, if anything + } + } + } + + void onNativeUnbond(final E_Intent intent) + { + m_device.stateTracker_updateBoth(intent, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BONDED, false, BONDING, false, UNBONDED, true); + } + + void onNativeBonding(final E_Intent intent) + { + m_device.stateTracker_updateBoth(intent, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BONDED, false, BONDING, true, UNBONDED, false); + } + + void onNativeBond(final E_Intent intent) + { + final boolean wasAlreadyBonded = m_device.is(BONDED); + + m_device.stateTracker_updateBoth(intent, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BONDED, true, BONDING, false, UNBONDED, false); + + if( !wasAlreadyBonded ) + { + invokeCallback(Status.SUCCESS, BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE, intent.convert()); + } + } + + private boolean failConnection(final BondListener.Status status) + { + if( status.canFailConnection() ) + { + if( m_device.is_internal(BleDeviceState.CONNECTING_OVERALL) ) + { + final boolean bondingFailFailsConnection = BleDeviceConfig.bool(m_device.conf_device().bondingFailFailsConnection, m_device.conf_mngr().bondingFailFailsConnection); + + if( bondingFailFailsConnection ) + { + return true; + } + } + } + + return false; + } + + Object[] getOverrideBondStatesForDisconnect(ConnectionFailListener.Status connectionFailReasonIfConnecting) + { + final Object[] overrideBondingStates; + + if( connectionFailReasonIfConnecting == ConnectionFailListener.Status.BONDING_FAILED ) + { + overrideBondingStates = OVERRIDE_UNBONDED_STATES; + } + else + { + overrideBondingStates = OVERRIDE_EMPTY_STATES; + } + + return overrideBondingStates; + } + + void onNativeBondFailed(final E_Intent intent, final BondListener.Status status, final int failReason) + { + if( isNativelyBondingOrBonded() ) + { + //--- DRK > This is for cases where the bond task has timed out, + //--- or otherwise failed without actually resetting internal bond state. + m_device.unbond_justAddTheTask(); + } + + if( m_device.is_internal(BleDeviceState.CONNECTED) || m_device.is_internal(BleDeviceState.CONNECTING) ) + { + saveNeedsBondingIfDesired(); + } + + if( failConnection(status) ) + { + final boolean doingReconnect_shortTerm = m_device.is(BleDeviceState.RECONNECTING_SHORT_TERM); + + m_device.disconnectWithReason(BleDevice.ConnectionFailListener.Status.BONDING_FAILED, status.timing(), BleStatuses.GATT_STATUS_NOT_APPLICABLE, failReason, m_device.NULL_READWRITE_EVENT()); + } + else + { + onNativeBondFailed_common(intent); + } + + invokeCallback(status, failReason, intent.convert()); + + if( status == Status.TIMED_OUT ) + { + m_device.getManager().uhOh(UhOh.BOND_TIMED_OUT); + } + } + + void saveNeedsBondingIfDesired() + { + final boolean tryBondingWhileDisconnected = BleDeviceConfig.bool(m_device.conf_device().tryBondingWhileDisconnected, m_device.conf_mngr().tryBondingWhileDisconnected); + + if( tryBondingWhileDisconnected ) + { + final boolean tryBondingWhileDisconnected_manageOnDisk = BleDeviceConfig.bool(m_device.conf_device().tryBondingWhileDisconnected_manageOnDisk, m_device.conf_mngr().tryBondingWhileDisconnected_manageOnDisk); + + m_device.getManager().m_diskOptionsMngr.saveNeedsBonding(m_device.getMacAddress(), tryBondingWhileDisconnected_manageOnDisk); + } + } + + private void onNativeBondFailed_common(final E_Intent intent) + { + m_device.stateTracker_updateBoth(intent, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BONDED, false, BONDING, false, UNBONDED, true); + } + + boolean bondIfNeeded(final UUID charUuid, final BondFilter.CharacteristicEventType type) + { + final BleDeviceConfig.BondFilter bondFilter = m_device.conf_device().bondFilter != null ? m_device.conf_device().bondFilter : m_device.conf_mngr().bondFilter; + + if( bondFilter == null ) return false; + + final BondFilter.CharacteristicEvent event = new BleDeviceConfig.BondFilter.CharacteristicEvent(m_device, charUuid, type); + + final BondFilter.Please please = bondFilter.onEvent(event); + + return applyPlease_BondFilter(please); + } + + boolean applyPlease_BondFilter(BondFilter.Please please_nullable) + { + if( please_nullable == null ) + { + return false; + } + + if (!Utils.isKitKat()) + { + return false; + } + + final Boolean bond = please_nullable.bond_private(); + + if( bond == null ) + { + return false; + } + + if( bond ) + { + m_device.bond(please_nullable.listener()); + } + else if( !bond ) + { + m_device.unbond(); + } + + return bond; + } + + BondEvent invokeCallback(Status status, int failReason, State.ChangeIntent intent) + { + final BondEvent event = new BondEvent(m_device, status, failReason, intent); + + invokeCallback(event); + + return event; + } + + void invokeCallback(final BondEvent event) + { + if( m_listener != null ) + { + m_listener.onEvent(event); + } + + if( m_device.getManager().m_defaultBondListener != null ) + { + m_device.getManager().m_defaultBondListener.onEvent(event); + } + } + + Object[] getNativeBondingStateOverrides() + { + return new Object[]{BONDING, m_device.m_nativeWrapper.isNativelyBonding(), BONDED, m_device.m_nativeWrapper.isNativelyBonded(), UNBONDED, m_device.m_nativeWrapper.isNativelyUnbonded()}; + } + + private boolean isNativelyBondingOrBonded() + { + //--- DRK > These asserts are here because, as far as I could discern from logs, the abstracted + //--- state for bonding/bonded was true, but when we did an encrypted write, it kicked + //--- off a bonding operation, implying that natively the bonding state silently changed + //--- since we discovered the device. I really don't know. + //--- UPDATE: Nevermind, the reason bonding wasn't happening after connection was because + //--- it was using the default config option of false. Leaving asserts here anywway + //--- cause they can't hurt. + //--- UPDATE AGAIN: Actually, these asserts can hit if you're connected to a device, you go + //--- into OS settings, unbond, which kicks off an implicit disconnect which then kicks off + //--- an implicit reconnect...race condition makes it so that you can query the bond state + //--- and get its updated value before the bond state callback gets sent + //--- UPDATE AGAIN AGAIN: Nevermind, it seems getBondState *can* actually lie, so original comment sorta stands...wow. +// m_mngr.ASSERT(m_stateTracker.checkBitMatch(BONDED, isNativelyBonded())); +// m_mngr.ASSERT(m_stateTracker.checkBitMatch(BONDING, isNativelyBonding())); + + return m_device.m_nativeWrapper.isNativelyBonded() || m_device.m_nativeWrapper.isNativelyBonding(); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ClientManager.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ClientManager.java new file mode 100644 index 0000000000000000000000000000000000000000..508c1aaeab36dc903a845706c633cd4fa367b6d4 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ClientManager.java @@ -0,0 +1,198 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothGattServer; + +import com.idevicesinc.sweetblue.utils.ForEach_Breakable; +import com.idevicesinc.sweetblue.utils.ForEach_Void; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.NoSuchElementException; + +class P_ClientManager +{ + private static final int[] CONNECTING_OR_CONNECTED = {BluetoothGattServer.STATE_CONNECTING, BluetoothGattServer.STATE_CONNECTED}; + + private final BleServer m_server; + private final HashSet<String> m_allConnectingOrConnectedClients = new HashSet<String>(); + + + P_ClientManager(final BleServer server) + { + m_server = server; + } + + public void onConnecting(final String macAddress) + { + m_allConnectingOrConnectedClients.add(macAddress); + } + + public void onConnected(final String macAddress) + { + m_allConnectingOrConnectedClients.add(macAddress); + } + +// public void onDisconnected(final String macAddress) +// { +// m_allConnectingOrConnectedClients.remove(macAddress); +// } + + + public void getClients(final ForEach_Void<String> forEach, final int stateMask) + { + getClients_private(forEach, getClients(stateMask)); + } + + private void getClients_private(final ForEach_Void<String> forEach, final Iterator<String> iterator) + { + while( iterator.hasNext() ) + { + final String client = iterator.next(); + + forEach.next(client); + } + } + + public void getClients(final ForEach_Breakable<String> forEach, final int stateMask) + { + getClients_private(forEach, getClients(stateMask)); + } + + private void getClients_private(final ForEach_Breakable<String> forEach, final Iterator<String> iterator) + { + while( iterator.hasNext() ) + { + final String client = iterator.next(); + + final ForEach_Breakable.Please please = forEach.next(client); + + if( please.shouldContinue() == false ) + { + break; + } + } + } + + public Iterator<String> getClients(final int stateMask) + { + return new ClientIterator(stateMask); + } + + public List<String> getClients_List(final int stateMask) + { + if( getClientCount() == 0 ) + { + return newEmptyList(); + } + else + { + final Iterator<String> iterator = getClients(stateMask); + final ArrayList<String> toReturn = new ArrayList<String>(); + + while( iterator.hasNext() ) + { + toReturn.add(iterator.next()); + } + + return toReturn; + } + } + + public int getClientCount() + { + return m_allConnectingOrConnectedClients.size(); + } + + public int getClientCount(final int stateMask) + { + final Iterator<String> iterator = getClients(stateMask); + int count = 0; + + while( iterator.hasNext() ) + { + final String client = iterator.next(); + + count++; + } + + return count; + } + + private List<String> newEmptyList() + { + return new ArrayList<String>(); + } + + private class ClientIterator implements Iterator<String> + { + private final int m_stateMask; + + private String m_next = null; + private String m_returned = null; + + private final Iterator<String> m_all = m_allConnectingOrConnectedClients.iterator(); + + ClientIterator(final int stateMask) + { + m_stateMask = stateMask; + + findNext(); + } + + private void findNext() + { + while( m_all.hasNext() ) + { + final String client = m_all.next(); + + if( m_stateMask != 0x0 && m_server.isAny(client, m_stateMask) ) + { + m_next = client; + + break; + } + else if( m_stateMask == 0x0 ) + { + m_next = client; + + break; + } + } + } + + @Override public boolean hasNext() + { + return m_next != null; + } + + @Override public String next() + { + m_returned = m_next; + + if( m_next == null ) + { + throw new NoSuchElementException("No more clients associated with this server."); + } + + m_next = null; + findNext(); + + return m_returned; + } + + @Override public void remove() + { + if( m_returned == null ) + { + throw new IllegalStateException("remove() was already called."); + } + + final String toRemove = m_returned; + m_returned = null; + m_all.remove(); + m_server.disconnect(toRemove); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ConnectionFailManager.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ConnectionFailManager.java new file mode 100644 index 0000000000000000000000000000000000000000..1e08ae10be3583b86546157e834f5a66ffa92261 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ConnectionFailManager.java @@ -0,0 +1,187 @@ +package com.idevicesinc.sweetblue; + +import static com.idevicesinc.sweetblue.BleDeviceState.RECONNECTING_LONG_TERM; + +import java.util.ArrayList; + +import com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener; +import com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.ConnectionFailEvent; +import com.idevicesinc.sweetblue.BleNode.ConnectionFailListener.Please; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener; +import com.idevicesinc.sweetblue.PA_StateTracker.E_Intent; +import com.idevicesinc.sweetblue.utils.Interval; + +class P_ConnectionFailManager +{ + private final BleDevice m_device; + + private ConnectionFailListener m_connectionFailListener = BleDevice.DEFAULT_CONNECTION_FAIL_LISTENER; + + private int m_failCount = 0; + private BleDeviceState m_highestStateReached_total = null; + + private Long m_timeOfFirstConnect = null; + private Long m_timeOfLastConnectFail = null; + + private final ArrayList<ConnectionFailEvent> m_history = new ArrayList<ConnectionFailEvent>(); + + P_ConnectionFailManager(BleDevice device) + { + m_device = device; + + resetFailCount(); + } + + void onExplicitDisconnect() + { + resetFailCount(); + } + + void onFullyInitialized() + { + resetFailCount(); + } + + void onExplicitConnectionStarted() + { + resetFailCount(); + + m_timeOfFirstConnect = System.currentTimeMillis(); + } + + private void resetFailCount() + { + m_failCount = 0; + m_highestStateReached_total = null; + m_timeOfFirstConnect = m_timeOfLastConnectFail = null; + m_history.clear(); + } + + int getRetryCount() + { + int retryCount = m_failCount; + + return retryCount; + } + + int/*__PE_Please*/ onConnectionFailed(ConnectionFailListener.Status reason_nullable, ConnectionFailListener.Timing timing, boolean isAttemptingReconnect_longTerm, int gattStatus, int bondFailReason, BleDeviceState highestStateReached, ConnectionFailListener.AutoConnectUsage autoConnectUsage, ReadWriteListener.ReadWriteEvent txnFailReason) + { + if( reason_nullable == null ) return ConnectionFailListener.Please.PE_Please_DO_NOT_RETRY; + + final long currentTime = System.currentTimeMillis(); + + //--- DRK > Can be null if this is a spontaneous connect (can happen with autoConnect sometimes for example). + m_timeOfFirstConnect = m_timeOfFirstConnect != null ? m_timeOfFirstConnect : currentTime; + final Long timeOfLastConnectFail = m_timeOfLastConnectFail != null ? m_timeOfLastConnectFail : m_timeOfFirstConnect; + final Interval attemptTime_latest = Interval.delta(timeOfLastConnectFail, currentTime); + final Interval attemptTime_total = Interval.delta(m_timeOfFirstConnect, currentTime); + + m_device.getManager().getLogger().w(reason_nullable+", timing="+timing); + + if( isAttemptingReconnect_longTerm ) + { + m_failCount = 1; + } + else + { + m_failCount++; + } + + if( m_highestStateReached_total == null ) + { + m_highestStateReached_total = highestStateReached; + } + else + { + if( highestStateReached != null && highestStateReached.getConnectionOrdinal() > m_highestStateReached_total.getConnectionOrdinal() ) + { + m_highestStateReached_total = highestStateReached; + } + } + + final ConnectionFailEvent moreInfo = new ConnectionFailEvent + ( + m_device, reason_nullable, timing, m_failCount, attemptTime_latest, attemptTime_total, gattStatus, + highestStateReached, m_highestStateReached_total, autoConnectUsage, bondFailReason, txnFailReason, + m_history + ); + + m_history.add(moreInfo); + + //--- DRK > Not invoking callback if we're attempting short-term reconnect. + int retryChoice__PE_Please = m_device.is(BleDeviceState.RECONNECTING_SHORT_TERM) ? Please.PE_Please_DO_NOT_RETRY : invokeCallback(moreInfo); + + //--- DRK > Retry choice doesn't matter if we're attempting reconnect. + retryChoice__PE_Please = !isAttemptingReconnect_longTerm ? retryChoice__PE_Please : Please.PE_Please_DO_NOT_RETRY; + + //--- DRK > Disabling retry if app-land decided to call connect() themselves in fail callback...hopefully fringe but must check for now. + retryChoice__PE_Please = m_device.is_internal(BleDeviceState.CONNECTING_OVERALL) ? Please.PE_Please_DO_NOT_RETRY : retryChoice__PE_Please; + + if( reason_nullable != null && reason_nullable.wasCancelled() ) + { + retryChoice__PE_Please = Please.PE_Please_DO_NOT_RETRY; + } + else + { + final P_ReconnectManager reconnectMngr = m_device.reconnectMngr(); + final int gattStatusOfOriginalDisconnect = reconnectMngr.gattStatusOfOriginalDisconnect(); + final boolean wasRunning = reconnectMngr.isRunning(); + + reconnectMngr.onConnectionFailed(moreInfo); + + if( wasRunning && !reconnectMngr.isRunning() ) + { + if( m_device.is(RECONNECTING_LONG_TERM) ) + { + //--- DRK > State change may be redundant. + m_device.stateTracker_main().update(E_Intent.UNINTENTIONAL, gattStatus, RECONNECTING_LONG_TERM, false); + } + else if( m_device.is(BleDeviceState.RECONNECTING_SHORT_TERM) ) + { + retryChoice__PE_Please = Please.PE_Please_DO_NOT_RETRY; + m_device.onNativeDisconnect(/*wasExplicit=*/false, gattStatusOfOriginalDisconnect, /*doShortTermReconnect=*/false, /*saveLastDisconnect=*/true); + } + } + } + + if( retryChoice__PE_Please != Please.PE_Please_NULL && Please.isRetry(retryChoice__PE_Please) ) + { + m_device.attemptReconnect(); + } + else + { + m_failCount = 0; + } + + return retryChoice__PE_Please; + } + + int/*__PE_Please*/ invokeCallback(final ConnectionFailEvent moreInfo) + { + int retryChoice__PE_Please = Please.PE_Please_NULL; + + if( m_connectionFailListener != null ) + { + final Please please = m_connectionFailListener.onEvent(moreInfo); + retryChoice__PE_Please = please != null ? please.please() : null; + + m_device.getManager().getLogger().checkPlease(please, Please.class); + } + else if( m_device.getManager().m_defaultConnectionFailListener != null ) + { + final Please please = m_device.getManager().m_defaultConnectionFailListener.onEvent(moreInfo); + retryChoice__PE_Please = please != null ? please.please() : null; + + m_device.getManager().getLogger().checkPlease(please, Please.class); + } + + retryChoice__PE_Please = retryChoice__PE_Please != Please.PE_Please_NULL ? retryChoice__PE_Please : Please.PE_Please_DO_NOT_RETRY; + + return retryChoice__PE_Please; + } + + public void setListener(ConnectionFailListener listener) + { + m_connectionFailListener = listener; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_DeviceManager.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_DeviceManager.java new file mode 100644 index 0000000000000000000000000000000000000000..ef61bcb3dfd35cb6ea6c3a79254efaec3eac6aa5 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_DeviceManager.java @@ -0,0 +1,566 @@ +package com.idevicesinc.sweetblue; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; + +import com.idevicesinc.sweetblue.BleDevice.BondListener; +import com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener; +import com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.Status; +import com.idevicesinc.sweetblue.BleManager.DiscoveryListener.DiscoveryEvent; +import com.idevicesinc.sweetblue.BleManager.DiscoveryListener.LifeCycle; +import com.idevicesinc.sweetblue.PA_StateTracker.E_Intent; +import com.idevicesinc.sweetblue.utils.ForEach_Breakable; +import com.idevicesinc.sweetblue.utils.ForEach_Void; +import com.idevicesinc.sweetblue.utils.Interval; +import com.idevicesinc.sweetblue.utils.State; + +class P_DeviceManager +{ + private final HashMap<String, BleDevice> m_map = new HashMap<String, BleDevice>(); + private final ArrayList<BleDevice> m_list = new ArrayList<BleDevice>(); + + private final P_Logger m_logger; + private final BleManager m_mngr; + + private boolean m_updating = false; + + + P_DeviceManager(BleManager mngr) + { + m_mngr = mngr; + m_logger = m_mngr.getLogger(); + } + + public ArrayList<BleDevice> getList() + { + return getList_private(false); + } + + public ArrayList<BleDevice> getList_sorted() + { + return getList_private(true); + } + + private ArrayList<BleDevice> getList_private(boolean sort) + { + if (sort && m_mngr.m_config.defaultListComparator != null) + { + Collections.sort(m_list, m_mngr.m_config.defaultListComparator); + } + return m_list; + } + + void forEach(final Object forEach, final Object... query) + { + final boolean isQueryValid = query != null && query.length > 0; + + for (int i = 0; i < m_mngr.getDeviceCount(); i++) + { + final BleDevice ith = m_mngr.getDeviceAt(i); + + if (isQueryValid) + { + if (ith.is(query)) + { + if (!forEach_invoke(forEach, ith)) + { + break; + } + } + } + else + { + if (!forEach_invoke(forEach, ith)) + { + break; + } + } + } + } + + private boolean forEach_invoke(final Object forEach, final BleDevice device) + { + if (forEach instanceof ForEach_Breakable) + { + ForEach_Breakable<BleDevice> forEach_cast = (ForEach_Breakable<BleDevice>) forEach; + + final ForEach_Breakable.Please please = forEach_cast.next(device); + + return please.shouldContinue(); + } + else if (forEach instanceof ForEach_Void) + { + ForEach_Void<BleDevice> forEach_cast = (ForEach_Void<BleDevice>) forEach; + + forEach_cast.next(device); + + return true; + } + + return false; + } + + BleDevice getDevice_offset(final BleDevice device, final int offset, Object... query) + { + final int index = m_mngr.getDeviceIndex(device); + final int offset_override = offset < 0 ? -1 : 1; + final boolean isQueryValid = query != null && query.length > 0; + + if (index >= 0) + { + BleDevice device_ith = BleDevice.NULL; + int nextIndex = index + offset_override; + do + { + if (nextIndex < 0) + { + nextIndex = m_mngr.getDeviceCount() - 1; + } + else if (nextIndex >= m_mngr.getDeviceCount()) + { + nextIndex = 0; + } + else + { + nextIndex = nextIndex; + } + + device_ith = m_mngr.getDeviceAt(nextIndex); + + if (isQueryValid) + { + if (device_ith.is(query)) + { + return device_ith; + } + } + else + { + return device_ith; + } + + nextIndex += offset_override; + } + while (!device_ith.equals(device) && !device_ith.equals(BleDevice.NULL)); + } + else + { + if (isQueryValid) + { + if (m_mngr.hasDevice(query)) + { + return m_mngr.getDevice(query); + } + else + { + return BleDevice.NULL; + } + } + else + { + if (m_mngr.hasDevices()) + { + return m_mngr.getDevice(); + } + else + { + return BleDevice.NULL; + } + } + } + + return BleDevice.NULL; + } + + public BleDevice getDevice(final int mask_BleDeviceState) + { + for (int i = 0; i < getCount(); i++) + { + BleDevice device = get(i); + + if (device.isAny(mask_BleDeviceState)) + { + return device; + } + } + + return BleDevice.NULL; + } + + public List<BleDevice> getDevices_List(boolean sort, Object... query) + { + final ArrayList<BleDevice> toReturn = new ArrayList<BleDevice>(); + + for (int i = 0; i < this.getCount(); i++) + { + final BleDevice device_ith = this.get(i); + + if (device_ith.is(query)) + { + toReturn.add(device_ith); + } + } + if (sort && m_mngr.m_config.defaultListComparator != null) + { + Collections.sort(toReturn, m_mngr.m_config.defaultListComparator); + } + return toReturn; + } + + public List<BleDevice> getDevices_List(boolean sort, final BleDeviceState state) + { + final ArrayList<BleDevice> toReturn = new ArrayList<BleDevice>(); + + for (int i = 0; i < this.getCount(); i++) + { + final BleDevice device_ith = this.get(i); + + if (device_ith.is(state)) + { + toReturn.add(device_ith); + } + } + if (sort && m_mngr.m_config.defaultListComparator != null) + { + Collections.sort(toReturn, m_mngr.m_config.defaultListComparator); + } + return toReturn; + } + + public List<BleDevice> getDevices_List(boolean sort, final int mask_BleDeviceState) + { + final ArrayList<BleDevice> toReturn = new ArrayList<BleDevice>(); + + for (int i = 0; i < this.getCount(); i++) + { + final BleDevice device_ith = this.get(i); + + if (device_ith.isAny(mask_BleDeviceState)) + { + toReturn.add(device_ith); + } + } + if (sort && m_mngr.m_config.defaultListComparator != null) + { + Collections.sort(toReturn, m_mngr.m_config.defaultListComparator); + } + return toReturn; + } + + public boolean has(BleDevice device) + { + for (int i = 0; i < m_list.size(); i++) + { + BleDevice device_ith = m_list.get(i); + + if (device_ith == device) return true; + } + + return false; + } + + public BleDevice get(int i) + { + return m_list.get(i); + } + + int getCount(Object[] query) + { + int count = 0; + + for (int i = 0; i < m_list.size(); i++) + { + BleDevice device_ith = m_list.get(i); + + if (device_ith.is(query)) + { + count++; + } + } + + return count; + } + + int getCount(BleDeviceState state) + { + int count = 0; + + for (int i = 0; i < m_list.size(); i++) + { + BleDevice device_ith = m_list.get(i); + + if (device_ith.is(state)) + { + count++; + } + } + + return count; + } + + int getCount() + { + return m_list.size(); + } + + public BleDevice get(String uniqueId) + { + return m_map.get(uniqueId); + } + + void add(BleDevice device) + { + if (m_map.containsKey(device.getMacAddress())) + { + m_logger.e("Already registered device " + device.getMacAddress()); + + return; + } + + m_list.add(device); + m_map.put(device.getMacAddress(), device); + } + + void remove(BleDevice device, P_DeviceManager cache) + { + m_mngr.ASSERT(!m_updating, "Removing device while updating!"); + m_mngr.ASSERT(m_map.containsKey(device.getMacAddress())); + + m_list.remove(device); + m_map.remove(device.getMacAddress()); + + final boolean cacheDevice = BleDeviceConfig.bool(device.conf_device().cacheDeviceOnUndiscovery, device.conf_mngr().cacheDeviceOnUndiscovery); + + if (cacheDevice && cache != null) + { + cache.add(device); + } + } + + void update(double timeStep) + { + //--- DRK > The asserts here and keeping track of "is updating" is because + //--- once upon a time we iterated forward through the list with an end + //--- condition based on the length assigned to a local variable before + //--- looping (i.e. not checking the length of the array itself every iteration). + //--- On the last iteration we got an out of bounds exception, so it seems somehow + //--- that the array was modified up the call stack from this method, or from another + //--- thread. After heavily auditing the code it's not clear how either situation could + //--- happen. Note that we were using Collections.serializedList (or something, check SVN), + //--- and not plain old ArrayList like we are now, if that has anything to do with it. + + if (m_updating) + { + m_mngr.ASSERT(false, "Already updating."); + + return; + } + + m_updating = true; + + for (int i = m_list.size() - 1; i >= 0; i--) + { + BleDevice ithDevice = m_list.get(i); + ithDevice.update(timeStep); + } + + m_updating = false; + } + + void unbondAll(PE_TaskPriority priority, BondListener.Status status) + { + for (int i = m_list.size() - 1; i >= 0; i--) + { + BleDevice device = get(i); + + if (device.m_nativeWrapper.isNativelyBonded() || device.m_nativeWrapper.isNativelyBonding()) + { + device.unbond_internal(priority, status); + } + } + } + + void undiscoverAll() + { + for (int i = m_list.size() - 1; i >= 0; i--) + { + final BleDevice device = get(i); + + device.undiscover(); + } + } + + void disconnectAll() + { + for (int i = m_list.size() - 1; i >= 0; i--) + { + final BleDevice device = get(i); + + device.disconnect(); + } + } + + void disconnectAll_remote() + { + for (int i = m_list.size() - 1; i >= 0; i--) + { + final BleDevice device = get(i); + + device.disconnect_remote(); + } + } + + void disconnectAllForTurnOff(PE_TaskPriority priority) + { + for (int i = m_list.size() - 1; i >= 0; i--) + { + final BleDevice device = get(i); + + //--- DRK > Just an early-out performance check here. + if (device.isAny(BleDeviceState.CONNECTING_OVERALL, BleDeviceState.CONNECTED)) + { + device.disconnectWithReason(priority, Status.BLE_TURNING_OFF, ConnectionFailListener.Timing.NOT_APPLICABLE, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE, device.NULL_READWRITE_EVENT()); + } + } + } + + void rediscoverDevicesAfterBleTurningBackOn() + { + for (int i = m_list.size() - 1; i >= 0; i--) + { + BleDevice device = (BleDevice) m_list.get(i); + + if (!device.is(BleDeviceState.DISCOVERED)) + { + device.onNewlyDiscovered(device.getNative(), null, device.getRssi(), null, device.getOrigin()); + + if (m_mngr.m_discoveryListener != null) + { + DiscoveryEvent event = new DiscoveryEvent(device, LifeCycle.DISCOVERED); + m_mngr.m_discoveryListener.onEvent(event); + } + } + } + } + + void reconnectDevicesAfterBleTurningBackOn() + { + for (int i = m_list.size() - 1; i >= 0; i--) + { + final BleDevice device = (BleDevice) m_list.get(i); + + final boolean autoReconnectDeviceWhenBleTurnsBackOn = BleDeviceConfig.bool(device.conf_device().autoReconnectDeviceWhenBleTurnsBackOn, device.conf_mngr().autoReconnectDeviceWhenBleTurnsBackOn); + + if (autoReconnectDeviceWhenBleTurnsBackOn && device.lastDisconnectWasBecauseOfBleTurnOff()) + { + device.connect(); + } + } + } + + void undiscoverAllForTurnOff(final P_DeviceManager cache, final PA_StateTracker.E_Intent intent) + { + m_mngr.ASSERT(!m_updating, "Undiscovering devices while updating!"); + + for (int i = m_list.size() - 1; i >= 0; i--) + { + final BleDevice device_ith = m_list.get(i); + + if (device_ith.is(BleDeviceState.CONNECTED)) + { + device_ith.m_nativeWrapper.updateNativeConnectionState(device_ith.getNativeGatt()); + } + + final boolean retainDeviceWhenBleTurnsOff = BleDeviceConfig.bool(device_ith.conf_device().retainDeviceWhenBleTurnsOff, device_ith.conf_mngr().retainDeviceWhenBleTurnsOff); + + if (false == retainDeviceWhenBleTurnsOff) + { + undiscoverAndRemove(device_ith, m_mngr.m_discoveryListener, cache, intent); + } + else + { + final boolean undiscoverDeviceWhenBleTurnsOff = BleDeviceConfig.bool(device_ith.conf_device().undiscoverDeviceWhenBleTurnsOff, device_ith.conf_mngr().undiscoverDeviceWhenBleTurnsOff); + + if (true == undiscoverDeviceWhenBleTurnsOff) + { + undiscoverDevice(device_ith, m_mngr.m_discoveryListener, intent); + } + } + } + } + + private static void undiscoverDevice(BleDevice device, BleManager.DiscoveryListener listener, PA_StateTracker.E_Intent intent) + { + if (!device.is(BleDeviceState.DISCOVERED)) return; + + device.onUndiscovered(intent); + + if (listener != null) + { + DiscoveryEvent event = new DiscoveryEvent(device, LifeCycle.UNDISCOVERED); + listener.onEvent(event); + } + } + + void undiscoverAndRemove(BleDevice device, BleManager.DiscoveryListener discoveryListener, P_DeviceManager cache, E_Intent intent) + { + remove(device, cache); + + undiscoverDevice(device, discoveryListener, intent); + } + + void purgeStaleDevices(final double scanTime, final P_DeviceManager cache, final BleManager.DiscoveryListener listener) + { + if (m_updating) + { + m_mngr.ASSERT(false, "Purging devices in middle of updating!"); + + return; + } + + for (int i = m_list.size() - 1; i >= 0; i--) + { + BleDevice device = get(i); + + Interval minScanTimeToInvokeUndiscovery = BleDeviceConfig.interval(device.conf_device().minScanTimeNeededForUndiscovery, device.conf_mngr().minScanTimeNeededForUndiscovery); + if (Interval.isDisabled(minScanTimeToInvokeUndiscovery)) continue; + + Interval scanKeepAlive_interval = BleDeviceConfig.interval(device.conf_device().undiscoveryKeepAlive, device.conf_mngr().undiscoveryKeepAlive); + if (Interval.isDisabled(scanKeepAlive_interval)) continue; + + if (scanTime < Interval.secs(minScanTimeToInvokeUndiscovery)) continue; + + final boolean purgeable = device.getOrigin() != BleDeviceOrigin.EXPLICIT && ((device.getStateMask() & ~BleDeviceState.PURGEABLE_MASK) == 0x0); + + if (purgeable) + { + if (device.getTimeSinceLastDiscovery() > scanKeepAlive_interval.secs()) + { + undiscoverAndRemove(device, listener, cache, E_Intent.UNINTENTIONAL); + } + } + } + } + + boolean hasDevice(BleDeviceState... filter) + { + if (filter == null || filter.length == 0) + { + return m_list.size() > 0; + } + + for (int i = m_list.size() - 1; i >= 0; i--) + { + BleDevice device = get(i); + + if (device.isAny(filter)) + { + return true; + } + } + + return false; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_DeviceServiceManager.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_DeviceServiceManager.java new file mode 100644 index 0000000000000000000000000000000000000000..36e24f35c0b155983ce5edf10f61d2302e0214c1 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_DeviceServiceManager.java @@ -0,0 +1,195 @@ +package com.idevicesinc.sweetblue; + +import java.util.List; +import java.util.UUID; +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattDescriptor; +import android.bluetooth.BluetoothGattService; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Target; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Type; +import com.idevicesinc.sweetblue.utils.FutureData; + + +final class P_DeviceServiceManager extends PA_ServiceManager +{ + private final BleDevice m_device; + + public P_DeviceServiceManager(BleDevice device) + { + m_device = device; + } + + private BleDevice.ReadWriteListener.ReadWriteEvent newNoMatchingTargetEvent(Type type, Target target, byte[] data, UUID serviceUuid, UUID characteristicUuid, UUID descriptorUuid) + { + final int gattStatus = BleStatuses.GATT_STATUS_NOT_APPLICABLE; + + return new ReadWriteEvent(m_device, serviceUuid, characteristicUuid, descriptorUuid, type, target, data, Status.NO_MATCHING_TARGET, gattStatus, 0.0, 0.0, /*solicited=*/true); + } + + final BleDevice.ReadWriteListener.ReadWriteEvent getEarlyOutEvent(UUID serviceUuid, UUID characteristicUuid, UUID descriptorUuid, FutureData futureData, BleDevice.ReadWriteListener.Type type, final Target target) + { + final int gattStatus = BleStatuses.GATT_STATUS_NOT_APPLICABLE; + + if( m_device.isNull() ) + { + return new ReadWriteEvent(m_device, serviceUuid, characteristicUuid, descriptorUuid, type, target, futureData.getData(), Status.NULL_DEVICE, gattStatus, 0.0, 0.0, /*solicited=*/true); + } + + if( false == m_device.is(BleDeviceState.CONNECTED) ) + { + if( type != BleDevice.ReadWriteListener.Type.ENABLING_NOTIFICATION && type != BleDevice.ReadWriteListener.Type.DISABLING_NOTIFICATION) + { + return new ReadWriteEvent(m_device, serviceUuid, characteristicUuid, descriptorUuid, type, target, futureData.getData(), Status.NOT_CONNECTED, gattStatus, 0.0, 0.0, /*solicited=*/true); + } + else + { + return null; + } + } + + if( target == Target.RSSI || target == Target.MTU || target == Target.CONNECTION_PRIORITY ) return null; + + final BluetoothGattCharacteristic characteristic = m_device.getNativeCharacteristic(serviceUuid, characteristicUuid); + final BluetoothGattDescriptor descriptor = m_device.getNativeDescriptor(serviceUuid, characteristicUuid, descriptorUuid); + + if( target == Target.CHARACTERISTIC && characteristic == null || target == Target.DESCRIPTOR && descriptor == null) + { + return newNoMatchingTargetEvent(type, target, futureData.getData(), serviceUuid, characteristicUuid, descriptorUuid); + } + + if( target == Target.CHARACTERISTIC ) + { + type = modifyResultType(characteristic, type); + } + + if( type != null && type.isWrite() ) + { + if( futureData == null ) + { + return new ReadWriteEvent(m_device, serviceUuid, characteristicUuid, null, type, target, (byte[]) null, Status.NULL_DATA, gattStatus, 0.0, 0.0, /*solicited=*/true); + } + } + + if( target == Target.CHARACTERISTIC ) + { + int property = getProperty(type); + + if( (characteristic.getProperties() & property) == 0x0 ) + { + //TODO: Use correct gatt status even though we never reach gatt layer? + ReadWriteEvent result = new ReadWriteEvent(m_device, serviceUuid, characteristicUuid, null, type, target, futureData.getData(), Status.OPERATION_NOT_SUPPORTED, gattStatus, 0.0, 0.0, /*solicited=*/true); + + return result; + } + } + + return null; + } + + static BleDevice.ReadWriteListener.Type modifyResultType(BluetoothGattCharacteristic char_native, BleDevice.ReadWriteListener.Type type) + { + if( char_native != null ) + { + if( type == Type.NOTIFICATION ) + { + if( (char_native.getProperties() & BluetoothGattCharacteristic.PROPERTY_NOTIFY) == 0x0 ) + { + if( (char_native.getProperties() & BluetoothGattCharacteristic.PROPERTY_INDICATE) != 0x0 ) + { + type = Type.INDICATION; + } + } + } + else if( type == Type.WRITE ) + { + if( (char_native.getProperties() & BluetoothGattCharacteristic.PROPERTY_WRITE) == 0x0 ) + { + if( (char_native.getProperties() & BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE) != 0x0 ) + { + type = Type.WRITE_NO_RESPONSE; + } + else if( (char_native.getProperties() & BluetoothGattCharacteristic.PROPERTY_SIGNED_WRITE) != 0x0 ) + { + type = Type.WRITE_SIGNED; + } + } + } + } + + return type; + } + + private static int getProperty(BleDevice.ReadWriteListener.Type type) + { + switch(type) + { + case READ: + case POLL: + case PSUEDO_NOTIFICATION: return BluetoothGattCharacteristic.PROPERTY_READ; + + case WRITE_NO_RESPONSE: return BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE; + case WRITE_SIGNED: return BluetoothGattCharacteristic.PROPERTY_SIGNED_WRITE; + case WRITE: return BluetoothGattCharacteristic.PROPERTY_WRITE; + + case ENABLING_NOTIFICATION: + case DISABLING_NOTIFICATION: + case NOTIFICATION: + case INDICATION: return BluetoothGattCharacteristic.PROPERTY_INDICATE | + BluetoothGattCharacteristic.PROPERTY_NOTIFY ; + } + + return 0x0; + } + + @Override public final BluetoothGattService getServiceDirectlyFromNativeNode(UUID serviceUuid) + { + final BluetoothGatt gatt = m_device.getNativeGatt(); + + if( gatt == null ) + { + return null; + } + else + { + BluetoothGattService service = null; + try + { + service = gatt.getService(serviceUuid); + } + catch (Exception e) + { + m_device.getManager().getLogger().e("Got a " + e.getClass().getSimpleName() + " with a message of " + e.getMessage() + " when trying to get the native service!"); + } + return service; + } + } + + @Override protected final List<BluetoothGattService> getNativeServiceList_original() + { + final BluetoothGatt gatt = m_device.getNativeGatt(); + + if( gatt == null ) + { + return EMPTY_SERVICE_LIST; + } + else + { + List<BluetoothGattService> list_native = null; + + try + { + list_native = gatt.getServices(); + } + catch (Exception e) + { + m_device.getManager().getLogger().e("Got a " + e.getClass().getSimpleName() + " with a message of " + e.getMessage() + " when trying to get the list of native services!"); + } + + return list_native == null ? EMPTY_SERVICE_LIST : list_native; + } + } +} + diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_DeviceStateTracker.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_DeviceStateTracker.java new file mode 100644 index 0000000000000000000000000000000000000000..93d146fedcf948f9b19ab7ecba25aed5ae85eb27 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_DeviceStateTracker.java @@ -0,0 +1,93 @@ +package com.idevicesinc.sweetblue; + +import com.idevicesinc.sweetblue.BleDevice.StateListener; +import com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent; +import com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter; +import com.idevicesinc.sweetblue.utils.State; + +class P_DeviceStateTracker extends PA_StateTracker +{ + private StateListener m_stateListener; + private final BleDevice m_device; + private final boolean m_forShortTermReconnect; + + private boolean m_syncing = false; + + P_DeviceStateTracker(BleDevice device, final boolean forShortTermReconnect) + { + super(BleDeviceState.VALUES(), /*trackTimes=*/forShortTermReconnect==false); + + m_device = device; + m_forShortTermReconnect = forShortTermReconnect; + } + + public void setListener(StateListener listener) + { + m_stateListener = listener; + } + + void sync(P_DeviceStateTracker otherTracker) + { + m_syncing = true; + + this.copy(otherTracker); + + m_syncing = false; + } + + @Override protected void onStateChange(int oldStateBits, int newStateBits, int intentMask, int gattStatus) + { + if( m_device.isNull() ) return; + if( m_syncing ) return; + + StateEvent event = null; + + if( m_stateListener != null ) + { + event = event != null ? event : new StateEvent(m_device, oldStateBits, newStateBits, intentMask, gattStatus); + m_stateListener.onEvent(event); + } + + if( !m_forShortTermReconnect && m_device.getManager().m_defaultDeviceStateListener != null ) + { + event = event != null ? event : new StateEvent(m_device, oldStateBits, newStateBits, intentMask, gattStatus); + m_device.getManager().m_defaultDeviceStateListener.onEvent(event); + } + + final BleDeviceConfig.BondFilter bondFilter = BleDeviceConfig.filter(m_device.conf_device().bondFilter, m_device.conf_mngr().bondFilter); + + if( bondFilter == null ) return; + + final BondFilter.StateChangeEvent bondStateChangeEvent = new BondFilter.StateChangeEvent(m_device, oldStateBits, newStateBits, intentMask, gattStatus); + + final BondFilter.Please please = bondFilter.onEvent(bondStateChangeEvent); + + m_device.getManager().getLogger().checkPlease(please, BondFilter.Please.class); + + m_device.m_bondMngr.applyPlease_BondFilter(please); + +// m_device.getManager().getLogger().e(this.toString()); + } + + @Override protected void append_assert(State newState) + { + if( newState.ordinal() > BleDeviceState.CONNECTING.ordinal() ) + { + //--- DRK > No longer valid...during the connection flow a rogue disconnect can come in. + //--- This immediately changes the native state of the device but the actual callback + //--- for the disconnect is sent to the update thread so for a brief time we can be + //--- abstractly connected/connecting but actually not natively connected. +// m_device.getManager().ASSERT(m_device.m_nativeWrapper.isNativelyConnected()); + } + + if( newState == BleDeviceState.BONDING ) + { + int a; + } + } + + @Override public String toString() + { + return super.toString(BleDeviceState.VALUES()); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_DiskOptionsManager.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_DiskOptionsManager.java new file mode 100644 index 0000000000000000000000000000000000000000..386d2c34832612b145574e212af265d42c9d9c40 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_DiskOptionsManager.java @@ -0,0 +1,231 @@ +package com.idevicesinc.sweetblue; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import android.content.Context; +import android.content.SharedPreferences; + +import com.idevicesinc.sweetblue.utils.EmptyIterator; +import com.idevicesinc.sweetblue.utils.State; + +class P_DiskOptionsManager +{ + private static final int ACCESS_MODE = Context.MODE_PRIVATE; + + //--- DRK > Just adding some salt to these to mitigate any possible conflict. + private static enum E_Namespace + { + LAST_DISCONNECT("sweetblue_16l@{&a}"), + NEEDS_BONDING("sweetblue_p59=F%k"), + DEVICE_NAME("sweetblue_qurhzpoc"); + + + private final String m_key; + + private E_Namespace(final String key) + { + m_key = key; + } + + public String key() + { + return m_key; + } + } + + private final Context m_context; + + private final HashMap<String, Integer> m_inMemoryDb_lastDisconnect = new HashMap<String, Integer>(); + private final HashMap<String, Boolean> m_inMemoryDb_needsBonding = new HashMap<String, Boolean>(); + private final HashMap<String, String> m_inMemoryDb_name = new HashMap<String, String>(); + + private final HashMap[] m_inMemoryDbs = new HashMap[E_Namespace.values().length]; + + public P_DiskOptionsManager(Context context) + { + m_context = context; + + m_inMemoryDbs[E_Namespace.LAST_DISCONNECT.ordinal()] = m_inMemoryDb_lastDisconnect; + m_inMemoryDbs[E_Namespace.NEEDS_BONDING.ordinal()] = m_inMemoryDb_needsBonding; + m_inMemoryDbs[E_Namespace.DEVICE_NAME.ordinal()] = m_inMemoryDb_name; + + final E_Namespace[] values = E_Namespace.values(); + + for( int i = 0; i < values.length; i++ ) + { + Object ith = m_inMemoryDbs[i]; + + if( ith == null ) + { + throw new Error("Expected in-memory DB to be not null"); + } + } + } + + private SharedPreferences prefs(E_Namespace namespace) + { + final SharedPreferences prefs = m_context.getSharedPreferences(namespace.key(), ACCESS_MODE); + + return prefs; + } + + public void saveLastDisconnect(final String mac, final State.ChangeIntent changeIntent, final boolean hitDisk) + { + final int diskValue = State.ChangeIntent.toDiskValue(changeIntent); + m_inMemoryDb_lastDisconnect.put(mac, diskValue); + + if( !hitDisk ) return; + + prefs(E_Namespace.LAST_DISCONNECT).edit().putInt(mac, diskValue).commit(); + } + + public State.ChangeIntent loadLastDisconnect(final String mac, final boolean hitDisk) + { + final Integer value_memory = m_inMemoryDb_lastDisconnect.get(mac); + + if( value_memory != null ) + { + final State.ChangeIntent lastDisconnect_memory = State.ChangeIntent.fromDiskValue(value_memory); + + return lastDisconnect_memory; + } + + if( !hitDisk ) return State.ChangeIntent.NULL; + + final SharedPreferences prefs = prefs(E_Namespace.LAST_DISCONNECT); + + final int value_disk = prefs.getInt(mac, State.ChangeIntent.NULL.toDiskValue()); + + final State.ChangeIntent lastDisconnect = State.ChangeIntent.fromDiskValue(value_disk); + + return lastDisconnect; + } + + public void saveNeedsBonding(final String mac, final boolean hitDisk) + { + m_inMemoryDb_needsBonding.put(mac, true); + + if( !hitDisk ) return; + + prefs(E_Namespace.NEEDS_BONDING).edit().putBoolean(mac, true).commit(); + } + + public boolean loadNeedsBonding(final String mac, final boolean hitDisk) + { + final Boolean value_memory = m_inMemoryDb_needsBonding.get(mac); + + if( value_memory != null ) + { + return value_memory; + } + + if( !hitDisk ) return false; + + final SharedPreferences prefs = prefs(E_Namespace.NEEDS_BONDING); + + final boolean value_disk = prefs.getBoolean(mac, false); + + return value_disk; + } + + public void saveName(final String mac, final String name, final boolean hitDisk) + { + final String name_override = name != null ? name : ""; + + m_inMemoryDb_name.put(mac, name_override); + + if( !hitDisk ) return; + + prefs(E_Namespace.DEVICE_NAME).edit().putString(mac, name_override).commit(); + } + + public String loadName(final String mac, final boolean hitDisk) + { + final String value_memory = m_inMemoryDb_name.get(mac); + + if( value_memory != null ) + { + return value_memory; + } + + if( !hitDisk ) return null; + + final SharedPreferences prefs = prefs(E_Namespace.DEVICE_NAME); + + final String value_disk = prefs.getString(mac, null); + + return value_disk; + } + + void clear() + { + final E_Namespace[] values = E_Namespace.values(); + + for( int i = 0; i < values.length; i++ ) + { + final SharedPreferences prefs = prefs(values[i]); + prefs.edit().clear().commit(); + + final HashMap ith = m_inMemoryDbs[i]; + + if( ith != null ) + { + ith.clear(); + } + } + } + + void clearName(final String macAddress) + { + final E_Namespace namespace = E_Namespace.DEVICE_NAME; + + clearNamespace(macAddress, namespace); + } + + private void clearNamespace(final String macAddress, final E_Namespace namespace) + { + final int ordinal = namespace.ordinal(); + final SharedPreferences prefs = prefs(namespace); + prefs.edit().remove(macAddress).commit(); + + final HashMap ith = m_inMemoryDbs[ordinal]; + + if( ith != null ) + { + ith.remove(macAddress); + } + } + + void clear(final String macAddress) + { + final E_Namespace[] values = E_Namespace.values(); + + for( int i = 0; i < values.length; i++ ) + { + clearNamespace(macAddress, values[i]); + } + } + + Iterator<String> getPreviouslyConnectedDevices() + { + final SharedPreferences prefs = prefs(E_Namespace.LAST_DISCONNECT); + + Map<String, ?> map = prefs.getAll(); + + if( map != null ) + { + List<String> keys = new ArrayList<String>(map.keySet()); + Collections.sort(keys); + return keys.iterator(); + } + else + { + return new EmptyIterator<String>(); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_HistoricalDataManager.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_HistoricalDataManager.java new file mode 100644 index 0000000000000000000000000000000000000000..9ea4e9e01b2cfef28493ab906521f5a667e8582c --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_HistoricalDataManager.java @@ -0,0 +1,555 @@ +package com.idevicesinc.sweetblue; + +import static com.idevicesinc.sweetblue.BleNodeConfig.HistoricalDataLogFilter.*; + +import com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList; +import com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase; +import com.idevicesinc.sweetblue.utils.EmptyIterator; +import com.idevicesinc.sweetblue.utils.EpochTime; +import com.idevicesinc.sweetblue.utils.EpochTimeRange; +import com.idevicesinc.sweetblue.utils.ForEach_Returning; +import com.idevicesinc.sweetblue.utils.HistoricalData; +import com.idevicesinc.sweetblue.utils.HistoricalDataCursor; +import com.idevicesinc.sweetblue.utils.UpdateLoop; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.UUID; + +class P_HistoricalDataManager +{ + private static final byte[] EMPTY_BYTE_ARRAY = new byte[0]; + private static final EmptyIterator<HistoricalData> EMPTY_ITERATOR = new EmptyIterator<HistoricalData>(); + + private final Object LIST_CREATE_MUTEX = new Object(); + + private final HashMap<UUID, Backend_HistoricalDataList> m_lists = new HashMap<UUID, Backend_HistoricalDataList>(); + private final BleNode m_endPoint; + private final String m_macAddress; + private static final UpdateLoop s_updateLoop = UpdateLoop.newAnonThreadLoop(); + + private BleDevice.HistoricalDataLoadListener m_defaultListener = null; + + private final P_HistoricalDataManager_PreviousUuids m_previousUuidsWithDataAdded; + + P_HistoricalDataManager(final BleNode endpoint, final String macAddress) + { + m_endPoint = endpoint; + m_macAddress = macAddress; + + m_previousUuidsWithDataAdded = new P_HistoricalDataManager_PreviousUuids(m_endPoint.getManager().getApplicationContext(), macAddress); + } + + void setListener(final BleDevice.HistoricalDataLoadListener listener) + { + m_defaultListener = listener; + } + + Backend_HistoricalDatabase getDatabase() + { + return m_endPoint.getManager().m_historicalDatabase; + } + + //GOOD + private Backend_HistoricalDataList getList_doNotCreate(final UUID uuid) + { + synchronized(LIST_CREATE_MUTEX) + { + final Backend_HistoricalDataList existingList = m_lists.get(uuid); + + return existingList; + } + } + + //GOOD + private Backend_HistoricalDataList getList_onlyCreateIfDataIsOnDisk(final UUID uuid) + { + synchronized(LIST_CREATE_MUTEX) + { + final Backend_HistoricalDataList existingList = m_lists.get(uuid); + + if( existingList == null ) + { + final boolean tableExists = getDatabase().doesDataExist(m_macAddress, uuid); + + if( tableExists ) + { + final String uuidName = m_endPoint.getManager().getLogger().charName(uuid); + final Backend_HistoricalDataList newList = PU_HistoricalData.newList(getDatabase(), s_updateLoop, m_macAddress, uuid, uuidName, tableExists); + m_lists.put(uuid, newList); + + return newList; + } + } + + return existingList; + } + } + + //GOOD + private Backend_HistoricalDataList getList_createIfNotExists(final UUID uuid) + { + synchronized(LIST_CREATE_MUTEX) + { + final Backend_HistoricalDataList existingList = m_lists.get(uuid); + + if( existingList == null ) + { + final boolean tableExists = getDatabase().doesDataExist(m_macAddress, uuid); + final String uuidName = m_endPoint.getManager().getLogger().charName(uuid); + + final Backend_HistoricalDataList newList = PU_HistoricalData.newList(getDatabase(), s_updateLoop, m_macAddress, uuid, uuidName, tableExists); + m_lists.put(uuid, newList); + + return newList; + } + else + { + return existingList; + } + } + } + + //GOOD + public void add_single(final UUID uuid, final byte[] data, final EpochTime epochTime, final BleNodeConfig.HistoricalDataLogFilter.Source source) + { + final Backend_HistoricalDataList list = getList_createIfNotExists(uuid); + + final BleNodeConfig.HistoricalDataLogFilter.Please please = PU_HistoricalData.getPlease(m_endPoint, m_macAddress, uuid, data, epochTime, source); + + if( PU_HistoricalData.add_earlyOut(list, please) ) return; + + final HistoricalData historicalData = m_endPoint.newHistoricalData(PU_HistoricalData.getAmendedData(data, please), PU_HistoricalData.getAmendedTimestamp(epochTime, please)); + + m_previousUuidsWithDataAdded.addUuid(uuid); + + list.add_single(historicalData, please.m_persistenceLevel, please.getLimit()); + } + + //GOOD + public void add_single(final UUID uuid, final HistoricalData historicalData, final Source source) + { + final Backend_HistoricalDataList list = getList_createIfNotExists(uuid); + + final Please please = PU_HistoricalData.getPlease(m_endPoint, m_macAddress, uuid, historicalData.getBlob(), historicalData.getEpochTime(), source); + + final HistoricalData historicalData_override; + + if( please.getAmendedData() != null || !please.getAmendedEpochTime().isNull() ) + { + historicalData_override = m_endPoint.newHistoricalData(PU_HistoricalData.getAmendedData(historicalData.getBlob(), please), PU_HistoricalData.getAmendedTimestamp(historicalData.getEpochTime(), please)); + } + else + { + historicalData_override = historicalData; + } + + if( PU_HistoricalData.add_earlyOut(list, please) ) return; + + m_previousUuidsWithDataAdded.addUuid(uuid); + + list.add_single(historicalData_override, please.m_persistenceLevel, please.getLimit()); + } + + //GOOD + public void add_multiple(final UUID uuid, final Iterator<HistoricalData> historicalData) + { + final Backend_HistoricalDataList list = getList_createIfNotExists(uuid); + + final Please please = PU_HistoricalData.getPlease(m_endPoint, m_macAddress, uuid, EMPTY_BYTE_ARRAY, EpochTime.NULL, Source.MULTIPLE_MANUAL_ADDITIONS); + + if( PU_HistoricalData.add_earlyOut(list, please) ) return; + + m_previousUuidsWithDataAdded.addUuid(uuid); + + list.add_multiple(historicalData, please.m_persistenceLevel, please.getLimit()); + } + + //GOOD + public void add_multiple(final UUID uuid, final ForEach_Returning<HistoricalData> historicalData) + { + final Backend_HistoricalDataList list = getList_createIfNotExists(uuid); + + final Please please = PU_HistoricalData.getPlease(m_endPoint, m_macAddress, uuid, EMPTY_BYTE_ARRAY, EpochTime.NULL, Source.MULTIPLE_MANUAL_ADDITIONS); + + if( PU_HistoricalData.add_earlyOut(list, please) ) return; + + m_previousUuidsWithDataAdded.addUuid(uuid); + + list.add_multiple(historicalData, please.m_persistenceLevel, please.getLimit()); + } + + //GOOD + public HistoricalData getWithOffset(final UUID uuid, final EpochTimeRange range, final int offset) + { + final Backend_HistoricalDataList list = getList_onlyCreateIfDataIsOnDisk(uuid); + + if( list == null ) + { + return HistoricalData.NULL; + } + else + { + return list.get(range, offset); + } + } + + //GOOD + public void delete(final UUID uuid, final EpochTimeRange range, final long limit, final boolean memoryOnly) + { + final Backend_HistoricalDataList list = getList_doNotCreate(uuid); + + if( memoryOnly ) + { + if( list != null ) + { + list.delete_fromMemoryOnly(range, limit); + } + } + else + { + if( list != null ) + { + list.delete_fromMemoryAndDatabase(range, limit); + } + else + { + getDatabase().delete_singleUuid_inRange(m_macAddress, uuid, range, limit); + } + } + } + + // GOOD + public void clearEverything() + { + delete_all(EpochTimeRange.FROM_MIN_TO_MAX, Long.MAX_VALUE, false); + + m_previousUuidsWithDataAdded.clearAll(); + } + + //GOOD + public void delete_all(final EpochTimeRange range, final long limit, final boolean memoryOnly) + { + final Iterator<UUID> knownUuids = m_previousUuidsWithDataAdded.getUuids(); + + final UUID[] uuids = !memoryOnly ? new UUID[m_previousUuidsWithDataAdded.getCount()] : null; + final String[] macs = uuids != null ? new String[uuids.length] : null; + + int i = 0; + + while( knownUuids.hasNext() ) + { + final UUID ith = knownUuids.next(); + + if( uuids != null ) + { + uuids[i] = ith; + macs[i] = m_macAddress; + } + + i++; + + Backend_HistoricalDataList list = getList_doNotCreate(ith); + + if( list == null ) continue; + + if( memoryOnly ) + { + list.delete_fromMemoryOnly(range, limit); + } + else + { + list.delete_fromMemoryOnlyForNowButDatabaseSoon(range, limit); + } + } + + if( !memoryOnly ) + { + getDatabase().delete_multipleUuids(macs, uuids, range, Long.MAX_VALUE); + } + } + + //GOOD + public Iterator<HistoricalData> getIterator(final UUID uuid, final EpochTimeRange range) + { + final Backend_HistoricalDataList list = getList_onlyCreateIfDataIsOnDisk(uuid); + + if( list != null ) + { + return list.getIterator(range); + } + else + { + return EMPTY_ITERATOR; + } + } + + //GOOD + public boolean doForEach(final UUID uuid, final EpochTimeRange range, Object forEach) + { + final Backend_HistoricalDataList list = getList_onlyCreateIfDataIsOnDisk(uuid); + + if( list != null ) + { + return list.doForEach(range, forEach); + } + else + { + return false; + } + } + + //GOOD + public int getCount(UUID uuid, final EpochTimeRange range) + { + final Backend_HistoricalDataList list = getList_onlyCreateIfDataIsOnDisk(uuid); + + return list != null ? list.getCount(range) : 0; + } + + //GOOD + public HistoricalDataCursor getCursor(final UUID uuid, final EpochTimeRange range) + { + final Backend_HistoricalDataList list = getList_doNotCreate(uuid); + + if( list != null ) + { + return list.getCursor(range); + } + else + { + return getDatabase().getCursor(m_macAddress, uuid, range); + } + } + + //GOOD + public boolean hasHistoricalData(final UUID uuid, final EpochTimeRange range) + { + return getCount(uuid, range) > 0; + } + + //GOOD + public boolean hasHistoricalData(final EpochTimeRange range) + { + final boolean memoryOnly = false; + final Iterator<UUID> previousUuids = m_previousUuidsWithDataAdded.getUuids(); + + while( previousUuids.hasNext() ) + { + final UUID ithUuid = previousUuids.next(); + + final Backend_HistoricalDataList ithList = getList_doNotCreate(ithUuid); + + if( memoryOnly ) + { + if( ithList != null && ithList.getCount(range) > 0 ) + { + return true; + } + } + else + { + if( ithList != null && ithList.getCount(range) > 0 ) + { + return true; + } + else + { + if( getDatabase().getCount(m_macAddress, ithUuid, range) > 0 ) + { + return true; + } + } + } + } + + return false; + } + + //TODO: Need to implement the uui==null case + public void load(final UUID uuid_nullable, final BleDevice.HistoricalDataLoadListener listener_nullable) + { + if( isLoaded(uuid_nullable) ) + { + if( uuid_nullable != null ) + { + final Backend_HistoricalDataList list = getList_doNotCreate(uuid_nullable); + + if( list != null ) + { + invokeListeners(uuid_nullable, list.getRange(), BleDevice.HistoricalDataLoadListener.Status.ALREADY_LOADED, listener_nullable); + } + else + { + m_endPoint.getManager().ASSERT(false, "list should not have been null."); + } + } + else + { + + } + } + else + { + if( uuid_nullable != null ) + { + if( hasHistoricalData(uuid_nullable, EpochTimeRange.FROM_MIN_TO_MAX) ) + { + final Backend_HistoricalDataList list = getList_createIfNotExists(uuid_nullable); + + if( list.getLoadState() == Backend_HistoricalDataList.LOAD_STATE__LOADING ) + { + invokeListeners(uuid_nullable, EpochTimeRange.NULL, BleDevice.HistoricalDataLoadListener.Status.ALREADY_LOADING, listener_nullable); + } + else + { + invokeListeners(uuid_nullable, EpochTimeRange.NULL, BleDevice.HistoricalDataLoadListener.Status.STARTED_LOADING, listener_nullable); + } + + list.load(new Backend_HistoricalDataList.AsyncLoadCallback() + { + @Override public void onDone() + { + m_endPoint.getManager().getUpdateLoop().postIfNeeded(new Runnable() + { + @Override public void run() + { + if( list.getLoadState() == Backend_HistoricalDataList.LOAD_STATE__LOADED ) + { + invokeListeners(uuid_nullable, list.getRange(), BleDevice.HistoricalDataLoadListener.Status.LOADED, listener_nullable); + } + else if( list.getLoadState() == Backend_HistoricalDataList.LOAD_STATE__NOT_LOADED ) + { + //--- DRK > Should be fringe but technically possible if user is doing things on multiple threads (they shouldn't but if they do...). + invokeListeners(uuid_nullable, EpochTimeRange.NULL, BleDevice.HistoricalDataLoadListener.Status.NOTHING_TO_LOAD, listener_nullable); + } + else + { + m_endPoint.getManager().ASSERT(false, "Didn't expect to still be loading historical data."); + } + } + }); + + } + }); + } + else + { + invokeListeners(uuid_nullable, EpochTimeRange.NULL, BleDevice.HistoricalDataLoadListener.Status.NOTHING_TO_LOAD, listener_nullable); + } + } + else + { + + } + } + } + + //GOOD + public boolean isLoaded(final UUID uuid_nullable) + { + if( uuid_nullable != null ) + { + final Backend_HistoricalDataList list = getList_doNotCreate(uuid_nullable); + + if( list != null ) + { + return list.getLoadState() == Backend_HistoricalDataList.LOAD_STATE__LOADED; + } + else + { + return false; + } + } + else + { + final Iterator<UUID> previousUuids = m_previousUuidsWithDataAdded.getUuids(); + + while( previousUuids.hasNext() ) + { + final UUID ithUuid = previousUuids.next(); + + final Backend_HistoricalDataList ithList = getList_doNotCreate(ithUuid); + + if( ithList == null || ithList.getLoadState() != Backend_HistoricalDataList.LOAD_STATE__LOADED ) + { + return false; + } + } + + return true; + } + } + + //GOOD + public boolean isLoading(final UUID uuid_nullable) + { + if( uuid_nullable != null ) + { + final Backend_HistoricalDataList list = getList_doNotCreate(uuid_nullable); + + if( list != null ) + { + return list.getLoadState() == Backend_HistoricalDataList.LOAD_STATE__LOADING; + } + else + { + return false; + } + } + else + { + final Iterator<UUID> previousUuids = m_previousUuidsWithDataAdded.getUuids(); + + while( previousUuids.hasNext() ) + { + final UUID ithUuid = previousUuids.next(); + + final Backend_HistoricalDataList ithList = getList_doNotCreate(ithUuid); + + if( ithList == null ) continue; + + if( ithList.getLoadState() == Backend_HistoricalDataList.LOAD_STATE__LOADING ) + { + return true; + } + } + + return false; + } + } + + //GOOD + void invokeListeners(final UUID uuid, final EpochTimeRange range, final BleDevice.HistoricalDataLoadListener.Status status, final BleDevice.HistoricalDataLoadListener listener_nullable) + { + BleDevice.HistoricalDataLoadListener.HistoricalDataLoadEvent event = null; + + event = invokeListener(uuid, range, listener_nullable, status, event); + event = invokeListener(uuid, range, m_defaultListener, status, event); + event = invokeListener(uuid, range, m_endPoint.getManager().m_historicalDataLoadListener, status, event); + } + + //GOOD + private BleDevice.HistoricalDataLoadListener.HistoricalDataLoadEvent invokeListener(final UUID uuid, final EpochTimeRange range, final BleDevice.HistoricalDataLoadListener listener_nullable, BleDevice.HistoricalDataLoadListener.Status status, BleDevice.HistoricalDataLoadListener.HistoricalDataLoadEvent event_nullable) + { + if( listener_nullable != null ) + { + event_nullable = event_nullable != null ? event_nullable : new BleDevice.HistoricalDataLoadListener.HistoricalDataLoadEvent(m_endPoint, m_macAddress, uuid, range, status); + + listener_nullable.onEvent(event_nullable); + } + + return event_nullable; + } + + //GOOD + public String getTableName(final UUID uuid) + { + return getDatabase().getTableName(m_macAddress, uuid); + } + + public static void post(final Runnable runnable) + { + s_updateLoop.forcePost(runnable); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_HistoricalDataManager_PreviousUuids.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_HistoricalDataManager_PreviousUuids.java new file mode 100644 index 0000000000000000000000000000000000000000..fb78d2c32dfe335b3b19bd87557cd93ff232c6a1 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_HistoricalDataManager_PreviousUuids.java @@ -0,0 +1,141 @@ +package com.idevicesinc.sweetblue; + +import android.content.Context; +import android.content.SharedPreferences; + +import com.idevicesinc.sweetblue.utils.Uuids; + +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; +import java.util.UUID; + +class P_HistoricalDataManager_PreviousUuids +{ + private static final int ACCESS_MODE = Context.MODE_PRIVATE; + private static final String NAMESPACE = "sweetblue__previous_historical_data_uuids"; + + private final String m_macAddress; + private final Context m_context; + + private final Set<UUID> m_uuids = new HashSet<UUID>(); + + private boolean m_loaded = false; + + public P_HistoricalDataManager_PreviousUuids(final Context context, final String macAddress) + { + m_context = context; + m_macAddress = macAddress; + } + + public void addUuid(final UUID uuid) + { + synchronized(this) + { + load(); + + if( m_uuids.contains(uuid) ) return; + + m_uuids.add(uuid); + + save(); + } + } + + public void clearUuid(final UUID uuid) + { + synchronized(this) + { + load(); + + m_uuids.remove(uuid); + + save(); + } + } + + public void clearAll() + { + synchronized(this) + { + m_uuids.clear(); + prefs().edit().clear().commit(); + } + } + + public int getCount() + { + synchronized(this) + { + load(); + + return m_uuids.size(); + } + } + + public Iterator<UUID> getUuids() + { + synchronized(this) + { + load(); + + return m_uuids.iterator(); + } + } + + private SharedPreferences prefs() + { + final SharedPreferences prefs = m_context.getSharedPreferences(NAMESPACE, ACCESS_MODE); + + return prefs; + } + + private void load() + { + if( m_loaded ) return; + + final SharedPreferences prefs = prefs(); + + if( prefs.contains(m_macAddress) ) + { + final Set<String> uuids = prefs.getStringSet(m_macAddress, null); + + if( uuids != null && !uuids.isEmpty() ) + { + final Iterator<String> iterator = uuids.iterator(); + + while( iterator.hasNext() ) + { + final String uuid_string = iterator.next(); + + if( uuid_string == null || uuid_string.isEmpty() ) continue; + + final UUID uuid = Uuids.fromString(uuid_string); + + m_uuids.add(uuid); + } + } + } + + m_loaded = true; + } + + private void save() + { + if( m_uuids.isEmpty() ) return; + + final Iterator<UUID> iterator = m_uuids.iterator(); + final Set<String> toSave = new HashSet<String>(); + + while( iterator.hasNext() ) + { + final UUID uuid = iterator.next(); + + if( uuid == null ) continue; + + toSave.add(uuid.toString()); + } + + prefs().edit().putStringSet(m_macAddress, toSave).commit(); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Logger.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Logger.java new file mode 100644 index 0000000000000000000000000000000000000000..00db60d713c31a83ba3bce80486fa70474d80aea --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Logger.java @@ -0,0 +1,460 @@ +package com.idevicesinc.sweetblue; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.List; +import java.util.UUID; + +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothProfile; +import android.os.Build; +import android.os.Process; +import android.util.Log; + +import com.idevicesinc.sweetblue.utils.ReflectionUuidNameMap; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Utils_Reflection; +import com.idevicesinc.sweetblue.utils.UuidNameMap; +import com.idevicesinc.sweetblue.utils.UuidNameMap_ListWrapper; + +class P_Logger +{ + + private String[] m_debugThreadNamePool; + private int m_poolIndex = 0; + private final HashMap<Integer, String> m_threadNames = new HashMap<Integer, String>(); + private HashMap<Integer, String> m_gattStatusCodes = null; + private HashMap<Integer, String> m_gattConnStates = null; + private HashMap<Integer, String> m_gattBleStates = null; + private HashMap<Integer, String> m_gattBondStates = null; + private HashMap<Integer, String> m_unbondReasonCodes = null; + private boolean m_enabled; + private final UuidNameMap_ListWrapper m_nameMap; + private SweetLogger m_logger = null; + + + public P_Logger(String[] debugThreadNamePool, List<UuidNameMap> debugUuidNameDicts, boolean enabled, SweetLogger logger) + { + m_logger = logger; + m_debugThreadNamePool = debugThreadNamePool; + m_nameMap = new UuidNameMap_ListWrapper(debugUuidNameDicts); + m_enabled = enabled; + + //--- DRK > Most of the time this will give the first alphabetical thread name to the main thread. + //--- Just a convenience. + if( m_enabled ) + { + getThreadName(Process.myTid()); + } + } + + public void printBuildInfo() + { + if( !m_enabled ) return; + + int level = Log.DEBUG; + + for( Field field : Build.class.getFields() ) + { + String fieldName = field.getName(); + String fieldValue = Utils_Reflection.fieldStringValue(field); + + this.log(level, fieldName + ": " + fieldValue); + } + } + + public boolean isEnabled() + { + return m_enabled; + } + + public synchronized String getDebugAction(String action) + { + String[] action_split = action.split("\\."); + String action_debug = action_split[action_split.length-1]; + + return action_debug; + } + + public synchronized String getThreadName(int threadId) + { + String threadName = null; + + if( m_threadNames != null ) + { + threadName = m_threadNames.get(threadId); + + if( threadName == null ) + { + threadName = m_debugThreadNamePool[m_poolIndex % m_debugThreadNamePool.length]; + threadName = threadName + "(" + threadId +")"; + + m_threadNames.put(threadId, threadName); + + m_poolIndex++; + } + } + + return threadName == null ? "" : threadName; + } + + private StackTraceElement getSoonestTrace() + { + StackTraceElement[] trace = new Exception().getStackTrace(); + return getSoonestTrace(trace); + } + + private StackTraceElement getSoonestTrace(StackTraceElement[] trace) + { + for(int i = 0; i < trace.length; i++ ) + { + if( !trace[i].getClassName().equals(this.getClass().getName()) ) + { + return trace[i]; + } + } + + return null; + } + + private String prefixMessage(String methodName, String message) + { + String threadName = getThreadName(Process.myTid()); + message = threadName + " " + methodName + "() - " + message; + + return message; + } + + public void log(int level, String message) + { + if( !m_enabled ) return; + + StackTraceElement trace = getSoonestTrace(); + String className = trace.getClassName(); + String[] className_split = className.split("\\."); + className = className_split[className_split.length-1]; + log_private(level, className, message, trace); + } + + public void log_status(int gattStatus) + { + log_status(gattStatus, ""); + } + + public void log_status(int gattStatus, String message) + { + if( !m_enabled ) return; + + int level = Utils.isSuccess(gattStatus) ? Log.INFO : Log.WARN; + message = gattStatus(gattStatus) + " " + message; + + log(level, message); + } + + public void log(int level, String tag, String message) + { + if( !m_enabled ) return; + + StackTraceElement trace = getSoonestTrace(); + log_private(level, tag, message, trace); + } + + private void log_private(int level, String tag, String message, StackTraceElement trace) + { + message = prefixMessage(trace.getMethodName(), message); + if (m_logger != null) + { + m_logger.onLogEntry(level, tag, message); + } + else + { + Log.println(level, tag, message); + } + } + + public void d(String tag, String message) + { + log(Log.DEBUG, tag, message); + } + + public void i(String tag, String message) + { + log(Log.INFO, tag, message); + } + + public void v(String tag, String message) + { + log(Log.VERBOSE, tag, message); + } + + public void e(String tag, String message) + { + log(Log.ERROR, tag, message); + } + + public void w(String tag, String message) + { + log(Log.WARN, tag, message); + } + + + public void d(String message) + { + log(Log.DEBUG, message); + } + + public void i(String message) + { + log(Log.INFO, message); + } + + public void v(String message) + { + log(Log.VERBOSE, message); + } + + public void e(String message) + { + log(Log.ERROR, message); + } + + public void w(String message) + { + log(Log.WARN, message); + } + + + + + public String gattConn(int code) + { + String name = "NO_NAME"; + + if( m_gattConnStates == null && m_enabled ) + { + initConnStates(); + } + + if( m_gattConnStates != null ) + { + String actualName = m_gattConnStates.get(code); + name = actualName != null ? actualName : name; + } + + return name+"("+code+")"; + } + + private synchronized void initConnStates() + { + if( m_gattConnStates != null ) return; + + m_gattConnStates = new HashMap<Integer, String>(); + + initFromReflection(BluetoothProfile.class, "STATE_", m_gattConnStates); + } + + + + + + public String gattStatus(int code) + { + String errorName = "GATT_STATUS_NOT_APPLICABLE"; + + if( m_gattStatusCodes == null && m_enabled ) + { + initGattStatusCodes(); + } + + if( m_gattStatusCodes != null ) + { + String actualErrorName = m_gattStatusCodes != null ? m_gattStatusCodes.get(code) : null; + errorName = actualErrorName != null ? actualErrorName : errorName; + } + + return errorName+"("+code+")"; + } + + private synchronized void initGattStatusCodes() + { + if( m_gattStatusCodes != null ) return; + + m_gattStatusCodes = new HashMap<Integer, String>(); + + initFromReflection(BluetoothGatt.class, "GATT_", m_gattStatusCodes); + initFromReflection(BleDeviceConfig.class, "GATT_", m_gattStatusCodes); + initFromReflection(BleStatuses.class, "GATT_", m_gattStatusCodes); + } + + + + + public String gattBleState(int code) + { + String name = "NO_NAME"; + + if( m_gattBleStates == null && m_enabled ) + { + initGattBleStates(); + } + + if( m_gattBleStates != null ) + { + String actualName = m_gattBleStates.get(code); + name = actualName != null ? actualName : name; + } + + return name+"("+code+")"; + } + + private synchronized void initGattBleStates() + { + if( m_gattBleStates != null ) return; + + m_gattBleStates = new HashMap<Integer, String>(); + + initFromReflection(BluetoothAdapter.class, "STATE_", m_gattBleStates); + + m_gattBleStates.put(BluetoothAdapter.ERROR, "ERROR"); + } + + + + + public String gattUnbondReason(int code) + { + String name = "NO_NAME"; + + if( m_unbondReasonCodes == null && m_enabled ) + { + initUnbondReasonCodes(); + } + + if( m_unbondReasonCodes != null ) + { + String actualName = m_unbondReasonCodes.get(code); + name = actualName != null ? actualName : name; + } + + return name+"("+code+")"; + } + + private synchronized void initUnbondReasonCodes() + { + if( m_unbondReasonCodes != null ) return; + + m_unbondReasonCodes = new HashMap<Integer, String>(); + + initFromReflection(BluetoothDevice.class, "UNBOND_REASON_", m_unbondReasonCodes); + initFromReflection(BleStatuses.class, "BOND_FAIL_REASON", m_unbondReasonCodes); + } + + + + + + + + + public String gattBondState(int code) + { + String name = "NO_NAME"; + + if( m_gattBondStates == null && m_enabled ) + { + initGattBondStates(); + } + + if( m_gattBondStates != null ) + { + String actualName = m_gattBondStates.get(code); + name = actualName != null ? actualName : name; + } + + return name+"("+code+")"; + } + + private synchronized void initGattBondStates() + { + if( m_gattBondStates != null ) return; + + m_gattBondStates = new HashMap<Integer, String>(); + + initFromReflection(BluetoothDevice.class, "BOND_", m_gattBondStates); + } + + + private static void initFromReflection(Class<?> clazz, String fieldSuffix, HashMap<Integer, String> map) + { + for( Field field : clazz.getFields() ) + { + String fieldName = field.getName(); + + if( !fieldName.contains(fieldSuffix) ) continue; + + Integer fieldValue = -1; + + try { + fieldValue = field.getInt(null); + } catch (IllegalAccessException e) { +// e.printStackTrace(); + } catch (IllegalArgumentException e) { +// e.printStackTrace(); + } + + if( !map.containsKey(fieldValue) ) + { + map.put(fieldValue, fieldName); + } + } + } + + private String uuidToString(UUID uuid_nullable) + { + return uuid_nullable == null ? "null-uuid" : uuid_nullable.toString(); + } + + public String descriptorName(UUID uuid) + { + return uuidName(uuidToString(uuid), "descriptor"); + } + + public String charName(UUID uuid) + { + return uuidName(uuidToString(uuid), "char"); + } + + public String serviceName(UUID uuid) + { + return uuidName(uuidToString(uuid), "service"); + } + + public String uuidName(UUID uuid) + { + return uuidName(uuidToString(uuid)); + } + + public String uuidName(String uuid) + { + return uuidName(uuid, null); + } + + public String uuidName(String uuid, String type) + { + String debugName = m_nameMap.getUuidName(uuid); + + return (type == null ? debugName : type+"="+debugName); + } + + <T> void checkPlease(final T please_nullable, final Class<T> please_class) + { + final Class<? extends Object> class_Listener = please_class.getEnclosingClass(); + + if( please_nullable == null ) + { + w("WARNING: The " +please_class.getSimpleName() + " returned from " +class_Listener.getSimpleName() +".onEvent() is null. Consider returning a valid instance using static constructor methods."); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_NativeBleStateTracker.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_NativeBleStateTracker.java new file mode 100644 index 0000000000000000000000000000000000000000..18df4fe24767fc7159b1733a15796958ad45eafe --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_NativeBleStateTracker.java @@ -0,0 +1,32 @@ +package com.idevicesinc.sweetblue; + +import com.idevicesinc.sweetblue.BleManager.NativeStateListener.NativeStateEvent; + + +class P_NativeBleStateTracker extends PA_StateTracker +{ + private BleManager.NativeStateListener m_stateListener; + private final BleManager m_mngr; + + P_NativeBleStateTracker(BleManager mngr) + { + super(BleManagerState.VALUES()); + + m_mngr = mngr; + } + + public void setListener(BleManager.NativeStateListener listener) + { + m_stateListener = listener; + } + + @Override protected void onStateChange(int oldStateBits, int newStateBits, int intentMask, int status) + { + if( m_stateListener != null ) + { + final NativeStateEvent event = new NativeStateEvent(m_mngr, oldStateBits, newStateBits, intentMask); + + m_stateListener.onEvent(event); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_NativeDeviceWrapper.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_NativeDeviceWrapper.java new file mode 100644 index 0000000000000000000000000000000000000000..08c4b6453ddca8783bc1ea065d2547ac7af41224 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_NativeDeviceWrapper.java @@ -0,0 +1,378 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGatt; +import com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOh; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Utils_String; + + +class P_NativeDeviceWrapper +{ + private final BleDevice m_device; + private BluetoothDevice m_device_native; + private BluetoothGatt m_gatt; + private final String m_address; + + private String m_name_native; + private String m_name_normalized; + private String m_name_debug; + private String m_name_override; + + //--- DRK > We have to track connection state ourselves because using + //--- BluetoothManager.getConnectionState() is slightly out of date + //--- in some cases. Tracking ourselves from callbacks seems accurate. + private Integer m_nativeConnectionState = null; + + public P_NativeDeviceWrapper(BleDevice device, BluetoothDevice device_native, String name_normalized, String name_native) + { + m_device = device; + m_device_native = device_native; + m_address = m_device_native == null || m_device_native.getAddress() == null ? BleDevice.NULL_MAC() : m_device_native.getAddress(); + + updateName(name_native, name_normalized); + + //--- DRK > Manager can be null for BleDevice.NULL. + final boolean hitDiskForOverrideName = true; + final String name_disk = getManager() != null ? getManager().m_diskOptionsMngr.loadName(m_address, hitDiskForOverrideName) : null; + + if( name_disk != null ) + { + setName_override(name_disk); + } + else + { + setName_override(m_name_native); + final boolean saveToDisk = BleDeviceConfig.bool(m_device.conf_device().saveNameChangesToDisk, m_device.conf_mngr().saveNameChangesToDisk); + getManager().m_diskOptionsMngr.saveName(m_address, m_name_native, saveToDisk); + } + } + + private BleManager getManager() + { + return m_device.getManager(); + } + + private P_Logger getLogger() + { + return m_device.getManager().getLogger(); + } + + void updateNativeDevice(final BluetoothDevice device_native) + { + final String name_native = device_native.getName(); + + updateNativeName(name_native); + + m_device_native = device_native; + } + + void setName_override(final String name) + { + m_name_override = name != null ? name : ""; + } + + void updateNativeName(final String name_native) + { + final String name_native_override; + + if( name_native != null ) + { + name_native_override = name_native; + } + else + { + //--- DRK > After a ble reset using cached devices, calling updateNativeDevice with the old native BluetoothDevice + //--- instance gives you a null name...not sure how long this has been the case, but I think only > 5.0 + name_native_override = m_name_native; + } + + final String name_normalized = Utils_String.normalizeDeviceName(name_native_override); + + updateName(name_native_override, name_normalized); + } + + void clearName_override() + { + setName_override(m_name_native); + } + + private void updateName(String name_native, String name_normalized) + { + name_native = name_native != null ? name_native : ""; + m_name_native = name_native; + + m_name_normalized = name_normalized; + + String[] address_split = m_address.split(":"); + String lastFourOfMac = address_split[address_split.length - 2] + address_split[address_split.length - 1]; + String debugName = m_name_normalized.length() == 0 ? "<no_name>" : m_name_normalized; + m_name_debug = m_device_native != null ? debugName + "_" + lastFourOfMac : debugName; + } + + public String getAddress() + { + if( m_device_native != null ) + { + m_device.getManager().ASSERT(m_address.equals(m_device_native.getAddress())); + } + + return m_address; + } + + public String getNormalizedName() + { + return m_name_normalized; + } + + public String getNativeName() + { + return m_name_native; + } + + public String getName_override() + { + return m_name_override; + } + + public String getDebugName() + { + return m_name_debug; + } + + public BluetoothDevice getDevice() + { + if( m_device.isNull() ) + { + return m_device.getManager().newNativeDevice(BleDevice.NULL_MAC()); + } + else + { + return m_device_native; + } + } + + public BluetoothGatt getGatt() + { + return m_gatt; + } + + private void updateGattFromCallback(BluetoothGatt gatt) + { + if (gatt == null) + { + getLogger().w("Gatt object from callback is null."); + } + else + { + setGatt(gatt); + } + } + + void updateGattInstance(BluetoothGatt gatt) + { + updateGattFromCallback(gatt); + } + + void updateNativeConnectionState(BluetoothGatt gatt) + { + updateNativeConnectionState(gatt, null); + } + + void updateNativeConnectionState(BluetoothGatt gatt, Integer state) + { + if( state == null ) + { + m_nativeConnectionState = getNativeConnectionState(); + } + else + { + m_nativeConnectionState = state; + } + + updateGattFromCallback(gatt); + + getLogger().i(getLogger().gattConn(m_nativeConnectionState)); + } + + public int getNativeBondState() + { + final int bondState_native = m_device_native != null ? m_device_native.getBondState() : BluetoothDevice.BOND_NONE; + + return bondState_native; + } + + boolean isNativelyBonding() + { + return getNativeBondState() == BluetoothDevice.BOND_BONDING; + } + + boolean isNativelyBonded() + { + return getNativeBondState() == BluetoothDevice.BOND_BONDED; + } + + boolean isNativelyUnbonded() + { + return getNativeBondState() == BluetoothDevice.BOND_NONE; + } + + boolean isNativelyConnected() + { + synchronized (this) + { + return getConnectionState() == BluetoothGatt.STATE_CONNECTED; + } + } + + boolean isNativelyConnecting() + { + return getConnectionState() == BluetoothGatt.STATE_CONNECTING; + } + + boolean isNativelyDisconnecting() + { + return getConnectionState() == BluetoothGatt.STATE_DISCONNECTING; + } + + public int getNativeConnectionState() + { + return m_device.getManager().getNative().getConnectionState(m_device_native, BluetoothGatt.GATT_SERVER ); + } + + public int getConnectionState() + { + synchronized (this) + { + final int reportedNativeConnectionState = getNativeConnectionState(); + int connectedStateThatWeWillGoWith = reportedNativeConnectionState; + + if( m_nativeConnectionState != null ) + { + if( m_nativeConnectionState != reportedNativeConnectionState ) + { + getLogger().e("Tracked native state " + getLogger().gattConn(m_nativeConnectionState) + " doesn't match reported state " + getLogger().gattConn(reportedNativeConnectionState) + "."); + } + + connectedStateThatWeWillGoWith = m_nativeConnectionState; + } + + if( connectedStateThatWeWillGoWith != BluetoothGatt.STATE_DISCONNECTED ) + { + if( m_gatt == null ) + { + //--- DRK > Can't assert here because gatt can legitmately be null even though we have a connecting/ed native state. + //--- This was observed on the moto G right after app start up...getNativeConnectionState() reported connecting/ed + //--- but we haven't called connect yet. Really rare...only seen once after 4 months. + if( m_nativeConnectionState == null ) + { + getLogger().e("Gatt is null with " + getLogger().gattConn(connectedStateThatWeWillGoWith)); + + connectedStateThatWeWillGoWith = BluetoothGatt.STATE_DISCONNECTED; + + getManager().uhOh(UhOh.CONNECTED_WITHOUT_EVER_CONNECTING); + } + else + { + getManager().ASSERT(false, "Gatt is null with tracked native state: " + getLogger().gattConn(connectedStateThatWeWillGoWith)); + } + } + } + else + { + //--- DRK > Had this assert here but must have been a brain fart because we can be disconnected + //--- but still have gatt be not null cause we're trying to reconnect. + // if( !m_mngr.ASSERT(m_gatt == null) ) + // { + // m_logger.e(m_logger.gattConn(connectedStateThatWeWillGoWith)); + // } + } + + return connectedStateThatWeWillGoWith; + } + } + + void closeGattIfNeeded(boolean disconnectAlso) + { + m_device.m_reliableWriteMngr.onDisconnect(); + + if( m_gatt == null ) return; + + closeGatt(disconnectAlso); + } + + private void closeGatt(boolean disconnectAlso) + { + if( m_gatt == null ) return; + + //--- DRK > Tried this to see if it would kill autoConnect, but alas it does not, at least on S5. + //--- Don't want to keep it here because I'm afraid it has a better chance to do bad than good. +// if( disconnectAlso ) +// { +// m_gatt.disconnect(); +// } + + //--- DRK > This can randomly throw an NPE down stream...NOT from m_gatt being null, but a few methods downstream. + //--- See below for more info. + try + { + m_gatt.close(); + } + catch(NullPointerException e) + { + //--- DRK > From Flurry crash reports...happened several times on S4 running 4.4.4 but was not able to reproduce. +// This error occurred: java.lang.NullPointerException +// android.os.Parcel.readException(Parcel.java:1546) +// android.os.Parcel.readException(Parcel.java:1493) +// android.bluetooth.IBluetoothGatt$Stub$Proxy.unregisterClient(IBluetoothGatt.java:905) +// android.bluetooth.BluetoothGatt.unregisterApp(BluetoothGatt.java:710) +// android.bluetooth.BluetoothGatt.close(BluetoothGatt.java:649) +// com.idevicesinc.sweetblue.P_NativeDeviceWrapper.closeGatt(P_NativeDeviceWrapper.java:238) +// com.idevicesinc.sweetblue.P_NativeDeviceWrapper.closeGattIfNeeded(P_NativeDeviceWrapper.java:221) +// com.idevicesinc.sweetblue.BleDevice.onNativeConnectFail(BleDevice.java:2193) +// com.idevicesinc.sweetblue.P_BleDevice_Listeners$1.onStateChange_synchronized(P_BleDevice_Listeners.java:78) +// com.idevicesinc.sweetblue.P_BleDevice_Listeners$1.onStateChange(P_BleDevice_Listeners.java:49) +// com.idevicesinc.sweetblue.PA_Task.setState(PA_Task.java:118) +// com.idevicesinc.sweetblue.PA_Task.setEndingState(PA_Task.java:242) +// com.idevicesinc.sweetblue.P_TaskQueue.endCurrentTask(P_TaskQueue.java:220) +// com.idevicesinc.sweetblue.P_TaskQueue.tryEndingTask(P_TaskQueue.java:267) +// com.idevicesinc.sweetblue.P_TaskQueue.fail(P_TaskQueue.java:260) +// com.idevicesinc.sweetblue.P_BleDevice_Listeners.onConnectionStateChange_synchronized(P_BleDevice_Listeners.java:168) + m_device.getManager().uhOh(UhOh.RANDOM_EXCEPTION); + } + + m_nativeConnectionState = BluetoothGatt.STATE_DISCONNECTED; + m_gatt = null; + } + + private void setGatt(BluetoothGatt gatt) + { + if( m_gatt != null ) + { + //--- DRK > This tripped with an S5 and iGrillv2 with low battery (not sure that matters). + //--- AV was able to replicate twice but was not attached to debugger and now can't replicate. + //--- As a result of a brief audit, moved gatt object setting from the ending state + //--- handler of the connect task in P_BleDevice_Listeners to the execute method of the connect task itself. + //--- Doesn't solve any particular issue found, but seems more logical. + getManager().ASSERT(m_gatt == gatt, "Different gatt object set."); + + if( m_gatt != gatt ) + { + closeGatt(/*disconnectAlso=*/false); + } + else + { + return; + } + } + + if( gatt == null ) + { + m_gatt = null; + } + else + { + m_gatt = gatt; + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_NativeServerWrapper.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_NativeServerWrapper.java new file mode 100644 index 0000000000000000000000000000000000000000..4ff5edbddd2c44f1c0326c24479d3265c2ba6636 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_NativeServerWrapper.java @@ -0,0 +1,200 @@ +package com.idevicesinc.sweetblue; + +import android.annotation.TargetApi; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattServer; +import android.bluetooth.BluetoothManager; +import android.bluetooth.le.ScanCallback; +import android.bluetooth.le.ScanResult; +import android.os.Build; + +import java.util.HashMap; +import java.util.HashSet; + +class P_NativeServerWrapper +{ + private final BleServer m_server; + private final BleManager m_mngr; + + private BluetoothGattServer m_native; + private String m_name = ""; + + private final HashMap<String, Integer> m_nativeConnectionStates = new HashMap<String, Integer>(); + private final HashSet<String> m_ignoredDisconnects = new HashSet<String>(); + + public P_NativeServerWrapper(BleServer server ) + { + m_server = server; + m_mngr = m_server.getManager(); + + if( server.isNull() ) + { + m_name = BleDevice.NULL_STRING(); + m_native = null; + } + else + { + m_name = ""; //TODO + } + } + + public void ignoreNextImplicitDisconnect(final String macAddress) + { + m_ignoredDisconnects.add(macAddress); + } + + public boolean shouldIgnoreImplicitDisconnect(final String macAddress) + { + final boolean toReturn = m_ignoredDisconnects.contains(macAddress); + + clearImplicitDisconnectIgnoring(macAddress); + + return toReturn; + } + + public void clearImplicitDisconnectIgnoring(final String macAddress) + { + m_ignoredDisconnects.remove(macAddress); + } + + + + public void closeServer() + { + if( m_native == null ) + { + m_mngr.ASSERT(false, "Native server is already closed and nulled out."); + } + else + { + final BluetoothGattServer native_local = m_native; + + m_native = null; + + native_local.close(); + } + } + + public boolean openServer() + { + if( m_native != null ) + { + m_mngr.ASSERT(false, "Native server is already not null!"); + + return true; + } + else + { + assertThatAllClientsAreDisconnected(); + + clearAllConnectionStates(); + + m_native = m_mngr.getNative().openGattServer(m_mngr.getApplicationContext(), m_server.m_listeners); + + if( m_native == null ) + { + return false; + } + else + { + return true; + } + } + } + + private void assertThatAllClientsAreDisconnected() + { + if( m_nativeConnectionStates.size() == 0 ) return; + + for( String macAddress : m_nativeConnectionStates.keySet() ) + { + final Integer state = m_nativeConnectionStates.get(macAddress); + + if( state != null && state != BluetoothGattServer.STATE_DISCONNECTED ) + { + m_mngr.ASSERT(false, "Found a server connection state that is not disconnected when it should be."); + + return; + } + } + } + + public boolean isDisconnecting(final String macAddress) + { + return getNativeState(macAddress) == BluetoothGattServer.STATE_DISCONNECTING; + } + + public boolean isDisconnected(final String macAddress) + { + return getNativeState(macAddress) == BluetoothGattServer.STATE_DISCONNECTED; + } + + public boolean isConnected(final String macAddress) + { + return getNativeState(macAddress) == BluetoothGattServer.STATE_CONNECTED; + } + + public boolean isConnecting(final String macAddress) + { + return getNativeState(macAddress) == BluetoothGattServer.STATE_CONNECTING; + } + + public boolean isConnectingOrConnected(final String macAddress) + { + final int nativeState = getNativeState(macAddress); + + return nativeState == BluetoothGattServer.STATE_CONNECTING || nativeState == BluetoothGattServer.STATE_CONNECTED; + } + + public boolean isDisconnectingOrDisconnected(final String macAddress) + { + final int nativeState = getNativeState(macAddress); + + return nativeState == BluetoothGattServer.STATE_DISCONNECTING || nativeState == BluetoothGattServer.STATE_DISCONNECTED; + } + + private void clearAllConnectionStates() + { + m_nativeConnectionStates.clear(); + } + + public int getNativeState(final String macAddress) + { + if( m_nativeConnectionStates.containsKey(macAddress) ) + { + return m_nativeConnectionStates.get(macAddress); + } + else + { + return BluetoothGattServer.STATE_DISCONNECTED; + } + } + + BluetoothGattServer getNative() + { + return m_native; + } + + void updateNativeConnectionState(final String macAddress, final int state) + { + m_nativeConnectionStates.put(macAddress, state); + } + + void updateNativeConnectionState(final BluetoothDevice device) + { + if( m_native == null ) + { + m_mngr.ASSERT(false, "Did not expect native server to be null when implicitly refreshing state."); + } + else + { +// final int nativeState = m_native.getConnectionState(device); + + final int nativeState = m_server.getManager().getNative().getConnectionState( device, BluetoothGatt.GATT ); + + updateNativeConnectionState(device.getAddress(), nativeState); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_PollManager.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_PollManager.java new file mode 100644 index 0000000000000000000000000000000000000000..aca13575d93eb57e6c3b0a42b2e9891ef964627e --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_PollManager.java @@ -0,0 +1,426 @@ +package com.idevicesinc.sweetblue; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.UUID; + +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCharacteristic; +import android.os.Handler; + +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Target; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Type; +import com.idevicesinc.sweetblue.BleDeviceConfig.BondFilter.CharacteristicEventType; +import com.idevicesinc.sweetblue.utils.Interval; +import com.idevicesinc.sweetblue.utils.Uuids; + +class P_PollManager +{ + static final int E_NotifyState__NOT_ENABLED = 0; + static final int E_NotifyState__ENABLING = 1; + static final int E_NotifyState__ENABLED = 2; + + private static class PollingReadListener extends P_WrappingReadWriteListener + { + protected CallbackEntry m_entry; + private ReadWriteListener m_overrideListener; + + PollingReadListener(ReadWriteListener readWriteListener, Handler handler, boolean postToMain) + { + super(null, handler, postToMain); + + addListener(readWriteListener); + } + + private boolean hasListener(ReadWriteListener listener) + { + return listener == m_overrideListener; + } + + private void addListener(ReadWriteListener listener) + { + m_overrideListener = listener; + } + + private void init(CallbackEntry entry) + { + m_entry = entry; + } + + @Override public void onEvent(ReadWriteEvent result) + { + m_entry.onSuccessOrFailure(); + + super.onEvent(m_overrideListener, result); + } + } + + private static class TrackingWrappingReadListener extends PollingReadListener + { + private byte[] m_lastValue = null; + + TrackingWrappingReadListener(ReadWriteListener readWriteListener, Handler handler, boolean postToMain) + { + super(readWriteListener, handler, postToMain); + } + + @Override public void onEvent(ReadWriteEvent event) + { + if( event.status() == Status.SUCCESS ) + { + if( event.type().isNativeNotification() || m_lastValue == null || !Arrays.equals(m_lastValue, event.data()) ) + { + super.onEvent(event); + } + else + { + m_entry.onSuccessOrFailure(); + } + + m_lastValue = event.data(); + } + else + { + m_lastValue = null; + + super.onEvent(event); + } + } + } + + private static class CallbackEntry + { + private final BleDevice m_device; + private final PollingReadListener m_pollingReadListener; + private double m_interval; + private final UUID m_charUuid; + private final UUID m_serviceUuid; + private final boolean m_usingNotify; + private int/*_E_NotifyState*/ m_notifyState; + + private double m_timeTracker; + private boolean m_waitingForResponse; + + public CallbackEntry(BleDevice device, final UUID serviceUuid, UUID charUuid, double interval, ReadWriteListener readWriteListener, boolean trackChanges, boolean usingNotify) + { + m_serviceUuid = serviceUuid; + m_charUuid = charUuid; + m_interval = interval; + m_device = device; + m_usingNotify = usingNotify; + m_notifyState = E_NotifyState__NOT_ENABLED; + + m_timeTracker = interval; // to get it to do a first read pretty much instantly. + + if( trackChanges || m_usingNotify) + { + m_pollingReadListener = new TrackingWrappingReadListener(readWriteListener, m_device.getManager().m_mainThreadHandler, m_device.getManager().m_config.postCallbacksToMainThread); + } + else + { + m_pollingReadListener = new PollingReadListener(readWriteListener, m_device.getManager().m_mainThreadHandler, m_device.getManager().m_config.postCallbacksToMainThread); + } + + m_pollingReadListener.init(this); + } + + boolean trackingChanges() + { + return m_pollingReadListener instanceof TrackingWrappingReadListener; + } + + boolean usingNotify() + { + return m_usingNotify; + } + + boolean isFor(final UUID serviceUuid, final UUID charUuid, Double interval_nullable, ReadWriteListener readWriteListener_nullable, boolean usingNotify) + { + return + usingNotify == m_usingNotify && + (m_serviceUuid == null || serviceUuid == null || m_serviceUuid.equals(serviceUuid)) && + charUuid.equals(m_charUuid) && + (Interval.isDisabled(interval_nullable) || interval_nullable == m_interval) && + (readWriteListener_nullable == null || m_pollingReadListener.hasListener(readWriteListener_nullable)) ; + } + + boolean isFor(final UUID serviceUuid, final UUID charUuid) + { + if( serviceUuid == null || m_serviceUuid == null ) + { + return charUuid.equals(m_charUuid); + } + else + { + return charUuid.equals(m_charUuid) && m_serviceUuid != null && m_serviceUuid.equals(serviceUuid); + } + } + + void onCharacteristicChangedFromNativeNotify(byte[] value) + { + //--- DRK > The early-outs in this method are for when, for example, a native onNotify comes in on a random thread, + //--- BleDevice#disconnect() is called on main thread before notify gets passed to main thread (to here). + //--- Explicit disconnect clears all service/characteristic state and notify shouldn't get sent to app-land + //--- regardless. + if( m_device.is(BleDeviceState.DISCONNECTED) ) return; + + BluetoothGattCharacteristic characteristic = m_device.getNativeCharacteristic(m_serviceUuid, m_charUuid); + + if( characteristic == null ) return; + + Type type = P_DeviceServiceManager.modifyResultType(characteristic, Type.NOTIFICATION); + int gattStatus = BleStatuses.GATT_STATUS_NOT_APPLICABLE; + + if( value == null ) + { + ReadWriteEvent result = new ReadWriteEvent(m_device, m_serviceUuid, m_charUuid, null, type, Target.CHARACTERISTIC, value, Status.NULL_DATA, gattStatus, 0.0, 0.0, /*solicited=*/true); + + m_device.invokeReadWriteCallback(m_pollingReadListener, result); + } + else + { + if( value.length == 0 ) + { + ReadWriteEvent result = new ReadWriteEvent(m_device, m_serviceUuid, m_charUuid, null, type, Target.CHARACTERISTIC, value, Status.EMPTY_DATA, gattStatus, 0.0, 0.0, /*solicited=*/true); + m_device.invokeReadWriteCallback(m_pollingReadListener, result); + } + else + { + ReadWriteEvent result = new ReadWriteEvent(m_device, m_serviceUuid, m_charUuid, null, type, Target.CHARACTERISTIC, value, Status.SUCCESS, gattStatus, 0.0, 0.0, /*solicited=*/true); + m_device.invokeReadWriteCallback(m_pollingReadListener, result); + } + } + + m_timeTracker = 0.0; + } + + void onSuccessOrFailure() + { + m_waitingForResponse = false; + m_timeTracker = 0.0; + } + + void update(double timeStep) + { + if( m_interval <= 0.0 ) return; + if( m_interval == Interval.INFINITE.secs() ) return; + + m_timeTracker += timeStep; + + if( m_timeTracker >= m_interval ) + { + m_timeTracker = 0.0; + + if( m_device.is(BleDeviceState.INITIALIZED) && !m_device.is(BleDeviceState.RECONNECTING_SHORT_TERM) ) + { + if( !m_waitingForResponse ) + { + m_waitingForResponse = true; + Type type = trackingChanges() ? Type.PSUEDO_NOTIFICATION : Type.POLL; + m_device.read_internal(m_serviceUuid, m_charUuid, Uuids.INVALID, type, m_pollingReadListener); + } + } + } + } + } + + private final BleDevice m_device; + private final ArrayList<CallbackEntry> m_entries = new ArrayList<CallbackEntry>(); + + + P_PollManager(BleDevice device) + { + m_device = device; + } + + void clear() + { + m_entries.clear(); + } + + void startPoll(final UUID serviceUuid, final UUID charUuid, double interval, ReadWriteListener listener, boolean trackChanges, boolean usingNotify) + { + if( m_device.isNull() ) return; + + boolean allowDuplicatePollEntries = BleDeviceConfig.bool(m_device.conf_device().allowDuplicatePollEntries, m_device.conf_mngr().allowDuplicatePollEntries); + + if( !allowDuplicatePollEntries ) + { + for( int i = m_entries.size()-1; i >= 0; i-- ) + { + CallbackEntry ithEntry = m_entries.get(i); + + if( ithEntry.m_charUuid.equals(charUuid) ) + { + ithEntry.m_interval = interval; + } + + if( ithEntry.isFor(serviceUuid, charUuid, interval, /*listener=*/null, usingNotify) ) + { + if( ithEntry.trackingChanges() == trackChanges) + { + ithEntry.m_pollingReadListener.addListener(listener); + + return; + } + } + } + } + + CallbackEntry newEntry = new CallbackEntry(m_device, serviceUuid, charUuid, interval, listener, trackChanges, usingNotify); + + if( usingNotify ) + { + final int/*_E_NotifyState*/ state = getNotifyState(serviceUuid, charUuid); + newEntry.m_notifyState = state; + } + + m_entries.add(newEntry); + } + + void stopPoll(final UUID serviceUuid, final UUID characteristicUuid, Double interval_nullable, ReadWriteListener listener, boolean usingNotify) + { + if( m_device.isNull() ) return; + + for( int i = m_entries.size()-1; i >= 0; i-- ) + { + CallbackEntry ithEntry = m_entries.get(i); + + if( ithEntry.isFor(serviceUuid, characteristicUuid, interval_nullable, listener, usingNotify) ) + { + m_entries.remove(i); + } + } + } + + void update(double timeStep) + { + for( int i = 0; i < m_entries.size(); i++ ) + { + CallbackEntry ithEntry = m_entries.get(i); + + ithEntry.update(timeStep); + } + } + + void onCharacteristicChangedFromNativeNotify(final UUID serviceUuid, final UUID charUuid, byte[] value) + { + for( int i = 0; i < m_entries.size(); i++ ) + { + CallbackEntry ithEntry = m_entries.get(i); + + if( ithEntry.isFor(serviceUuid, charUuid) && ithEntry.usingNotify() ) + { + ithEntry.onCharacteristicChangedFromNativeNotify(value); + } + } + } + + int/*__E_NotifyState*/ getNotifyState(final UUID serviceUuid, final UUID charUuid) + { + int/*__E_NotifyState*/ highestState = E_NotifyState__NOT_ENABLED; + + for( int i = 0; i < m_entries.size(); i++ ) + { + CallbackEntry ithEntry = m_entries.get(i); + + if( ithEntry.isFor(serviceUuid, charUuid) ) + { + if( ithEntry.m_notifyState > highestState ) + { + highestState = ithEntry.m_notifyState; + } + } + } + + return highestState; + } + + void onNotifyStateChange(final UUID serviceUuid, final UUID charUuid, int/*__E_NotifyState*/ state) + { + for( int i = 0; i < m_entries.size(); i++ ) + { + CallbackEntry ithEntry = m_entries.get(i); + + if( ithEntry.usingNotify() && ithEntry.isFor(serviceUuid, charUuid) ) + { + ithEntry.m_notifyState = state; + } + } + } + + void resetNotifyStates() + { + for( int i = 0; i < m_entries.size(); i++ ) + { + CallbackEntry ithEntry = m_entries.get(i); + + ithEntry.m_notifyState = E_NotifyState__NOT_ENABLED; + } + } + + void enableNotifications_assumesWeAreConnected() + { + for( int i = 0; i < m_entries.size(); i++ ) + { + CallbackEntry ithEntry = m_entries.get(i); + + if( ithEntry.usingNotify() ) + { + int/*__E_NotifyState*/ notifyState = getNotifyState(ithEntry.m_serviceUuid, ithEntry.m_charUuid); + + BluetoothGattCharacteristic characteristic = m_device.getNativeCharacteristic(ithEntry.m_serviceUuid, ithEntry.m_charUuid); + + //--- DRK > This was observed to happen while doing iterative testing on a dev board that was changing + //--- its gatt database again and again...I guess service discovery "succeeded" but the service + //--- wasn't actually found, so downstream we got an NPE. + if( characteristic == null ) + { + continue; + } + + if( notifyState == E_NotifyState__NOT_ENABLED ) + { + BleDevice.ReadWriteListener.ReadWriteEvent earlyOutResult = m_device.serviceMngr_device().getEarlyOutEvent(ithEntry.m_serviceUuid, ithEntry.m_charUuid, Uuids.INVALID, BleDevice.EMPTY_FUTURE_DATA, BleDevice.ReadWriteListener.Type.ENABLING_NOTIFICATION, Target.CHARACTERISTIC); + + if( earlyOutResult != null ) + { + ithEntry.m_pollingReadListener.onEvent(earlyOutResult); + } + else + { + if (m_device.conf_device().autoEnableNotifiesOnReconnect) + { + m_device.m_bondMngr.bondIfNeeded(characteristic.getUuid(), CharacteristicEventType.ENABLE_NOTIFY); + + m_device.getManager().getTaskQueue().add(new P_Task_ToggleNotify(m_device, characteristic, /*enable=*/true, null, ithEntry.m_pollingReadListener, m_device.getOverrideReadWritePriority())); + + notifyState = E_NotifyState__ENABLING; + } + } + } + + if( notifyState == E_NotifyState__ENABLED && ithEntry.m_notifyState != E_NotifyState__ENABLED ) + { + ReadWriteEvent result = newAlreadyEnabledEvent(characteristic, ithEntry.m_serviceUuid, ithEntry.m_charUuid); + ithEntry.m_pollingReadListener.onEvent(result); + } + + ithEntry.m_notifyState = notifyState; + } + } + } + + ReadWriteEvent newAlreadyEnabledEvent(BluetoothGattCharacteristic characteristic, final UUID serviceUuid, final UUID characteristicUuid) + { + //--- DRK > Just being anal with the null check here. + byte[] writeValue = characteristic != null ? P_Task_ToggleNotify.getWriteValue(characteristic, /*enable=*/true) : BleDevice.EMPTY_BYTE_ARRAY; + int gattStatus = BluetoothGatt.GATT_SUCCESS; + ReadWriteEvent result = new ReadWriteEvent(m_device, serviceUuid, characteristicUuid, Uuids.CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID, Type.ENABLING_NOTIFICATION, Target.DESCRIPTOR, writeValue, Status.SUCCESS, gattStatus, 0.0, 0.0, /*solicited=*/true); + + return result; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ReconnectManager.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ReconnectManager.java new file mode 100644 index 0000000000000000000000000000000000000000..e852b50013bbf1429432079007cc97d2ceef2641 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ReconnectManager.java @@ -0,0 +1,215 @@ +package com.idevicesinc.sweetblue; + +import static com.idevicesinc.sweetblue.BleDeviceState.RECONNECTING_LONG_TERM; + +import com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener; +import com.idevicesinc.sweetblue.PA_StateTracker.E_Intent; +import com.idevicesinc.sweetblue.utils.Interval; +import com.idevicesinc.sweetblue.BleNodeConfig.*; + +class P_ReconnectManager +{ + private static final double NOT_RUNNING = -1.0; + private final BleDevice m_device; + + private double m_totalTime; + private int m_attemptCount; + private double m_delay = 0.0; + private double m_timeTracker = NOT_RUNNING; + + private int m_gattStatusOfOriginalDisconnect = BleStatuses.GATT_STATUS_NOT_APPLICABLE; + + private ConnectionFailListener.ConnectionFailEvent m_connectionFailEvent; + + private final boolean m_isShortTerm; + + private static final BleNodeConfig.ReconnectFilter.ReconnectEvent EVENT = new BleNodeConfig.ReconnectFilter.ReconnectEvent(); + + P_ReconnectManager(final BleDevice device, final boolean isShortTerm) + { + m_device = device; + + m_isShortTerm = isShortTerm; + + m_connectionFailEvent = m_device.NULL_CONNECTIONFAIL_INFO(); + } + + void attemptStart(final int gattStatusOfDisconnect) + { + m_totalTime = 0.0; + m_attemptCount = 0; + m_connectionFailEvent = m_device.NULL_CONNECTIONFAIL_INFO(); + + m_delay = getNextTime(m_device.NULL_CONNECTIONFAIL_INFO()); + + if( m_delay < 0.0 ) + { + m_timeTracker = NOT_RUNNING; + m_gattStatusOfOriginalDisconnect = BleStatuses.GATT_STATUS_NOT_APPLICABLE; + } + else + { + if( !isRunning() ) + { + m_device.getManager().pushWakeLock(); + } + + m_timeTracker = 0.0; + m_gattStatusOfOriginalDisconnect = gattStatusOfDisconnect; + } + + //--- DRK > If delay is zero we still wait until the first time step to actually attempt first (re)connect. + //--- May change in future for API-consistency's sake. + } + + int gattStatusOfOriginalDisconnect() + { + return m_gattStatusOfOriginalDisconnect; + } + + boolean isRunning() + { + if( m_timeTracker >= 0.0 ) + { +// m_device.getManager().ASSERT(m_device.is(E_DeviceState.ATTEMPTING_RECONNECT)); + + return true; + } + else + { +// m_device.getManager().ASSERT(!m_device.is(E_DeviceState.ATTEMPTING_RECONNECT)); + + return false; + } + } + + private ReconnectFilter getFilter() + { + final ReconnectFilter filter = m_device.conf_device().reconnectFilter; + + return filter != null ? filter : m_device.conf_mngr().reconnectFilter; + } + + private double getNextTime(ConnectionFailListener.ConnectionFailEvent connectionFailInfo) + { + final ReconnectFilter filter = getFilter(); + + if( filter == null ) + { + return Interval.DISABLED.secs(); + } + else + { + final ReconnectFilter.Type type = m_isShortTerm ? ReconnectFilter.Type.SHORT_TERM__SHOULD_TRY_AGAIN : ReconnectFilter.Type.LONG_TERM__SHOULD_TRY_AGAIN; + + EVENT.init(m_device, m_device.getMacAddress(), m_attemptCount, Interval.secs(m_totalTime), Interval.secs(m_delay), connectionFailInfo, type); + final ReconnectFilter.Please please = filter.onEvent(EVENT); + + m_device.getManager().getLogger().checkPlease(please, ReconnectFilter.Please.class); + + if( false == please.shouldPersist() ) + { + return Interval.DISABLED.secs(); + } + else + { + final Interval delay = please != null ? please.interval() : null; + + return delay != null ? delay.secs() : Interval.DISABLED.secs(); + } + } + } + + void onConnectionFailed(final ConnectionFailListener.ConnectionFailEvent connectionFailInfo) + { + if( !isRunning() ) + { + return; + } + + m_attemptCount++; + m_timeTracker = 0.0; + + final double delay = getNextTime(connectionFailInfo); + + if( delay < 0.0 ) + { + stop(); + } + else + { + m_connectionFailEvent = connectionFailInfo; + m_delay = delay; + m_timeTracker = 0.0; + } + } + + void update(double timeStep) + { + if( !isRunning() ) return; + + m_totalTime += timeStep; + + if( !m_isShortTerm && !m_device.is(BleDeviceState.RECONNECTING_LONG_TERM) ) return; + if( m_isShortTerm && !m_device.is(BleDeviceState.RECONNECTING_SHORT_TERM) ) return; + + m_timeTracker += timeStep; + + doPersistCheck(); + + if( !/*still*/isRunning() ) return; + + if( m_timeTracker >= m_delay ) + { + if( !m_device.is_internal(BleDeviceState.CONNECTING_OVERALL) ) + { + m_device.attemptReconnect(); + } + } + } + + private void doPersistCheck() + { + ReconnectFilter persistFilter = getFilter(); + + if( persistFilter == null ) return; + + final ReconnectFilter.Type type = m_isShortTerm ? ReconnectFilter.Type.SHORT_TERM__SHOULD_CONTINUE : ReconnectFilter.Type.LONG_TERM__SHOULD_CONTINUE; + + EVENT.init(m_device, m_device.getMacAddress(), m_attemptCount, Interval.secs(m_totalTime), Interval.secs(m_delay), m_connectionFailEvent, type); + + final ReconnectFilter.Please please = persistFilter.onEvent(EVENT); + + m_device.getManager().getLogger().checkPlease(please, ReconnectFilter.Please.class); + + if( please == null || false == please.shouldPersist() ) + { + final int gattStatusOfOriginalDisconnect = gattStatusOfOriginalDisconnect(); + + stop(); + + if( m_isShortTerm ) + { + m_device.onNativeDisconnect(/*wasExplicit=*/false, gattStatusOfOriginalDisconnect, /*doShortTermReconnect=*/false, /*saveLastDisconnect=*/true); + } + else + { + m_device.stateTracker_main().update(E_Intent.UNINTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE, RECONNECTING_LONG_TERM, false); + } + } + } + + void stop() + { + if( isRunning() ) + { + m_device.getManager().popWakeLock(); + } + + m_timeTracker = NOT_RUNNING; + m_attemptCount = 0; + m_totalTime = 0.0; + m_connectionFailEvent = m_device.NULL_CONNECTIONFAIL_INFO(); + m_gattStatusOfOriginalDisconnect = BleStatuses.GATT_STATUS_NOT_APPLICABLE; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ReliableWriteManager.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ReliableWriteManager.java new file mode 100644 index 0000000000000000000000000000000000000000..85e38bc049894645113b0d5fdb5b2c5809f7a746 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ReliableWriteManager.java @@ -0,0 +1,190 @@ +package com.idevicesinc.sweetblue; + +import android.annotation.TargetApi; +import android.bluetooth.BluetoothGatt; +import android.os.Build; + +import com.idevicesinc.sweetblue.compat.K_Util; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Uuids; + +class P_ReliableWriteManager +{ + private final BleDevice m_device; + + private BleDevice.ReadWriteListener m_listener; + + P_ReliableWriteManager(final BleDevice device) + { + m_device = device; + } + + public void onDisconnect() + { + m_listener = null; + } + + BleDevice.ReadWriteListener.ReadWriteEvent newEvent(final BleDevice.ReadWriteListener.Status status, final int gattStatus, final boolean solicited) + { + return new BleDevice.ReadWriteListener.ReadWriteEvent(m_device, Uuids.INVALID, Uuids.INVALID, Uuids.INVALID, BleDevice.ReadWriteListener.Type.WRITE, BleDevice.ReadWriteListener.Target.RELIABLE_WRITE, BleDevice.EMPTY_BYTE_ARRAY, status, gattStatus, 0.0, 0.0, solicited); + } + + private BleDevice.ReadWriteListener.ReadWriteEvent getGeneralEarlyOutEvent() + { + final int gattStatus = BleStatuses.GATT_STATUS_NOT_APPLICABLE; + + if( m_device.isNull() ) + { + return newEvent(BleDevice.ReadWriteListener.Status.NULL_DEVICE, BleStatuses.GATT_STATUS_NOT_APPLICABLE, /*solicited=*/true); + } + else + { + if( false == m_device.is(BleDeviceState.CONNECTED) ) + { + return newEvent(BleDevice.ReadWriteListener.Status.NOT_CONNECTED, BleStatuses.GATT_STATUS_NOT_APPLICABLE, /*solicited=*/true); + } + else if( true == m_device.is(BleDeviceState.RECONNECTING_SHORT_TERM) ) + { + return newEvent(BleDevice.ReadWriteListener.Status.NOT_CONNECTED, BleStatuses.GATT_STATUS_NOT_APPLICABLE, /*solicited=*/true); + } + else + { + return null; + } + } + } + + private BleDevice.ReadWriteListener.ReadWriteEvent getNeverBeganEarlyOutEvent() + { + if( m_listener == null ) + { + final BleDevice.ReadWriteListener.ReadWriteEvent e_earlyOut = getGeneralEarlyOutEvent(); + + if( e_earlyOut != null ) + { + return e_earlyOut; + } + else + { + final BleDevice.ReadWriteListener.ReadWriteEvent e_earlyOut_specific = newEvent(BleDevice.ReadWriteListener.Status.RELIABLE_WRITE_NEVER_BEGAN, BleStatuses.GATT_STATUS_NOT_APPLICABLE, /*solicited=*/true); + + return e_earlyOut_specific; + } + } + else + { + return null; + } + } + + public BleDevice.ReadWriteListener.ReadWriteEvent begin(final BleDevice.ReadWriteListener listener) + { + final BleDevice.ReadWriteListener.ReadWriteEvent e_earlyOut = getGeneralEarlyOutEvent(); + + if( e_earlyOut != null ) + { + m_device.invokeReadWriteCallback(listener, e_earlyOut); + + return e_earlyOut; + } + else + { + if( m_listener != null ) + { + final BleDevice.ReadWriteListener.ReadWriteEvent e_earlyOut_specific = newEvent(BleDevice.ReadWriteListener.Status.RELIABLE_WRITE_ALREADY_BEGAN, BleStatuses.GATT_STATUS_NOT_APPLICABLE, /*solicited=*/true); + + m_device.invokeReadWriteCallback(listener, e_earlyOut_specific); + + return e_earlyOut_specific; + } + else + { + if( false == m_device.getNativeGatt().beginReliableWrite() ) + { + final BleDevice.ReadWriteListener.ReadWriteEvent e_earlyOut_specific = newEvent(BleDevice.ReadWriteListener.Status.RELIABLE_WRITE_FAILED_TO_BEGIN, BleStatuses.GATT_STATUS_NOT_APPLICABLE, /*solicited=*/true); + + m_device.invokeReadWriteCallback(listener, e_earlyOut_specific); + + return e_earlyOut_specific; + } + else + { + m_listener = listener; + + return m_device.NULL_READWRITE_EVENT(); + } + } + } + } + + public BleDevice.ReadWriteListener.ReadWriteEvent abort() + { + final BleDevice.ReadWriteListener.ReadWriteEvent e_earlyOut = getNeverBeganEarlyOutEvent(); + + if( e_earlyOut != null ) + { + m_device.invokeReadWriteCallback(m_listener, e_earlyOut); + + return e_earlyOut; + } + else + { + final BleDevice.ReadWriteListener listener = m_listener; + m_listener = null; + + abortReliableWrite(); + + final BleDevice.ReadWriteListener.ReadWriteEvent e = newEvent(BleDevice.ReadWriteListener.Status.RELIABLE_WRITE_ABORTED, BleStatuses.GATT_STATUS_NOT_APPLICABLE, /*solicited=*/true); + + m_device.invokeReadWriteCallback(listener, e); + + return e; + } + } + + private void abortReliableWrite() + { + if( Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN_MR2 ) + { + m_device.getNativeGatt().abortReliableWrite(m_device.getNative()); + } + else + { + K_Util.abortReliableWrite(m_device); + } + } + + public BleDevice.ReadWriteListener.ReadWriteEvent execute() + { + final BleDevice.ReadWriteListener.ReadWriteEvent e_earlyOut = getNeverBeganEarlyOutEvent(); + + if( e_earlyOut != null ) + { + m_device.invokeReadWriteCallback(m_listener, e_earlyOut); + + return e_earlyOut; + } + else + { + final BleDevice.ReadWriteListener listener = m_listener; + m_listener = null; + + final P_Task_ExecuteReliableWrite task = new P_Task_ExecuteReliableWrite(m_device, listener, m_device.getOverrideReadWritePriority()); + + m_device.getTaskQueue().add(task); + + return m_device.NULL_READWRITE_EVENT(); + } + } + + public void onReliableWriteCompleted_unsolicited(final BluetoothGatt gatt, final int gattStatus) + { + final BleDevice.ReadWriteListener listener = m_listener; + m_listener = null; + + final BleDevice.ReadWriteListener.Status status = Utils.isSuccess(gattStatus) ? BleDevice.ReadWriteListener.Status.SUCCESS : BleDevice.ReadWriteListener.Status.REMOTE_GATT_FAILURE; + final BleDevice.ReadWriteListener.ReadWriteEvent e = newEvent(status, gattStatus, /*solicited=*/false); + + m_device.invokeReadWriteCallback(listener, e); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_RssiPollManager.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_RssiPollManager.java new file mode 100644 index 0000000000000000000000000000000000000000..626b48263a1d8868c78432a8cd6c0013a8ac8d06 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_RssiPollManager.java @@ -0,0 +1,90 @@ +package com.idevicesinc.sweetblue; + +import android.os.Handler; + +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Type; + +class P_RssiPollManager +{ + private static class CustomListener extends P_WrappingReadWriteListener + { + private final P_RssiPollManager m_pollMngr; + + CustomListener(P_RssiPollManager thisMngr, ReadWriteListener listener, Handler handler, boolean postToMain) + { + super(listener, handler, postToMain); + + m_pollMngr = thisMngr; + } + + @Override public void onEvent(final ReadWriteEvent event) + { + m_pollMngr.m_waitingOnResponse = false; + + if( m_pollMngr.m_timeTracker >= ENABLE_TIMER ) + { + m_pollMngr.m_timeTracker = ENABLE_TIMER; + } + + super.onEvent(event); + } + } + + private static final double DISABLE_TIMER = -1.0; + private static final double ENABLE_TIMER = 0.0; + + private final BleDevice m_device; + private double m_timeTracker = DISABLE_TIMER; + private double m_interval = 0.0; + private boolean m_waitingOnResponse = false; + + private ReadWriteListener m_listener; + + P_RssiPollManager(BleDevice device) + { + m_device = device; + + stop(); + } + + void start(double interval, ReadWriteListener listener_nullable) + { + if( interval > 0.0 ) + { + m_timeTracker = ENABLE_TIMER; + m_interval = interval; + m_listener = new CustomListener(this, listener_nullable, m_device.getManager().m_mainThreadHandler, m_device.conf_mngr().postCallbacksToMainThread); + } + } + + boolean isRunning() + { + return m_timeTracker != DISABLE_TIMER; + } + + void stop() + { + m_listener = null; + m_interval = DISABLE_TIMER; + m_timeTracker = DISABLE_TIMER; + m_waitingOnResponse = false; + } + + void update(double timestep) + { + if( m_timeTracker != DISABLE_TIMER ) + { + m_timeTracker += timestep; + + if( m_timeTracker >= m_interval && !m_waitingOnResponse ) + { + if( m_device.is(BleDeviceState.INITIALIZED) ) + { + m_waitingOnResponse = true; + m_device.readRssi_internal(Type.POLL, m_listener); + } + } + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ScanFilterManager.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ScanFilterManager.java new file mode 100644 index 0000000000000000000000000000000000000000..51ce662005a2f9b86fc5d1fe6b87d60625228ac4 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ScanFilterManager.java @@ -0,0 +1,103 @@ +package com.idevicesinc.sweetblue; + +import java.util.ArrayList; +import com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter; +import com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.Please; +import com.idevicesinc.sweetblue.BleManagerConfig.ScanFilter.ScanEvent; + + +class P_ScanFilterManager +{ + private final ArrayList<BleManagerConfig.ScanFilter> m_filters = new ArrayList<BleManagerConfig.ScanFilter>(); + private final ScanFilter m_default; + private final BleManager m_mngr; + + P_ScanFilterManager(final BleManager mngr, final ScanFilter defaultFilter) + { + m_mngr = mngr; + m_default = defaultFilter; + } + + void clear() + { + m_filters.clear(); + } + + void remove(ScanFilter filter) + { + while( m_filters.remove(filter) ){}; + } + + void add(ScanFilter filter) + { + if( filter == null ) return; + + if( m_filters.contains(filter) ) + { + return; + } + + m_filters.add(filter); + } + + public boolean makeEvent() + { + return m_default != null || m_filters.size() > 0; + } + + BleManagerConfig.ScanFilter.Please allow(P_Logger logger, final ScanEvent e) + { + if( m_filters.size() == 0 && m_default == null ) return Please.acknowledge(); + + if( m_default != null ) + { + final Please please = m_default.onEvent(e); + + logger.checkPlease(please, Please.class); + + stopScanningIfNeeded(m_default, please); + + if( please != null && please.ack() ) + { + return please; + } + } + + for( int i = 0; i < m_filters.size(); i++ ) + { + final ScanFilter ithFilter = m_filters.get(i); + + final Please please = ithFilter.onEvent(e); + + logger.checkPlease(please, Please.class); + + stopScanningIfNeeded(ithFilter, please); + + if( please != null && please.ack() ) + { + return please; + } + } + + return BleManagerConfig.ScanFilter.Please.ignore(); + } + + private void stopScanningIfNeeded(final ScanFilter filter, final BleManagerConfig.ScanFilter.Please please_nullable) + { + if( please_nullable != null ) + { + if( please_nullable.ack() ) + { + if( (please_nullable.m_stopScanOptions & Please.STOP_PERIODIC_SCAN) != 0x0 ) + { + m_mngr.stopPeriodicScan(filter); + } + + if( (please_nullable.m_stopScanOptions & Please.STOP_SCAN) != 0x0 ) + { + m_mngr.stopScan(filter); + } + } + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ServerConnectionFailEntry.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ServerConnectionFailEntry.java new file mode 100644 index 0000000000000000000000000000000000000000..1e4a0d71010773749ddb24d187d8c90a7eec0587 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ServerConnectionFailEntry.java @@ -0,0 +1,77 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothDevice; + +import com.idevicesinc.sweetblue.utils.Interval; + +import java.util.ArrayList; + +class P_ServerConnectionFailEntry +{ + private int m_failCount = 0; + + private Long m_timeOfFirstConnect = null; + private Long m_timeOfLastConnectFail = null; + + private final ArrayList<BleServer.ConnectionFailListener.ConnectionFailEvent> m_history = new ArrayList<BleServer.ConnectionFailListener.ConnectionFailEvent>(); + + private final P_ServerConnectionFailManager m_mngr; + + P_ServerConnectionFailEntry(final P_ServerConnectionFailManager mngr) + { + m_mngr = mngr; + + resetFailCount(); + } + + void onExplicitDisconnect() + { + resetFailCount(); + } + + void onExplicitConnectionStarted() + { + resetFailCount(); + + m_timeOfFirstConnect = System.currentTimeMillis(); + } + + private void resetFailCount() + { + m_failCount = 0; + m_timeOfFirstConnect = m_timeOfLastConnectFail = null; + m_history.clear(); + } + + void onNativeConnectFail(final BluetoothDevice nativeDevice, final BleServer.ConnectionFailListener.Status status, final int gattStatus) + { + final long currentTime = System.currentTimeMillis(); + + //--- DRK > Can be null if this is a spontaneous connect (can happen with autoConnect sometimes for example). + m_timeOfFirstConnect = m_timeOfFirstConnect != null ? m_timeOfFirstConnect : currentTime; + final Long timeOfLastConnectFail = m_timeOfLastConnectFail != null ? m_timeOfLastConnectFail : m_timeOfFirstConnect; + final Interval attemptTime_latest = Interval.delta(timeOfLastConnectFail, currentTime); + final Interval attemptTime_total = Interval.delta(m_timeOfFirstConnect, currentTime); + + m_failCount++; + + final BleServer.ConnectionFailListener.ConnectionFailEvent e = new BleServer.ConnectionFailListener.ConnectionFailEvent + ( + m_mngr.m_server, nativeDevice, status, m_failCount, attemptTime_latest, attemptTime_total, + gattStatus, BleServer.ConnectionFailListener.AutoConnectUsage.NOT_APPLICABLE, m_history + ); + + m_history.add(e); + + final int ePlease__PE_Please = m_mngr.invokeCallback(e); + + if( BleNode.ConnectionFailListener.Please.isRetry(ePlease__PE_Please) ) + { + m_mngr.m_server.connect_internal(nativeDevice); + } + else + { + resetFailCount(); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ServerConnectionFailManager.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ServerConnectionFailManager.java new file mode 100644 index 0000000000000000000000000000000000000000..e1b185a0226ff3a0d69bf6cfff14664f125b53ad --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ServerConnectionFailManager.java @@ -0,0 +1,84 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothDevice; + +import java.util.HashMap; + +class P_ServerConnectionFailManager +{ + private static BleServer.ConnectionFailListener DEFAULT_CONNECTION_FAIL_LISTENER = new BleServer.DefaultConnectionFailListener(); + + final BleServer m_server; + + private BleServer.ConnectionFailListener m_connectionFailListener = DEFAULT_CONNECTION_FAIL_LISTENER; + + private final HashMap<String, P_ServerConnectionFailEntry> m_entries = new HashMap<String, P_ServerConnectionFailEntry>(); + + P_ServerConnectionFailManager(final BleServer server) + { + m_server = server; + } + + private P_ServerConnectionFailEntry getOrCreateEntry(final String macAddress) + { + final P_ServerConnectionFailEntry entry_nullable = m_entries.get(macAddress); + + if( entry_nullable != null ) + { + return entry_nullable; + } + else + { + final P_ServerConnectionFailEntry entry = new P_ServerConnectionFailEntry(this); + + m_entries.put(macAddress, entry); + + return entry; + } + } + + void onExplicitDisconnect(final String macAddress) + { + getOrCreateEntry(macAddress).onExplicitDisconnect(); + } + + void onExplicitConnectionStarted(final String macAddress) + { + getOrCreateEntry(macAddress).onExplicitConnectionStarted(); + } + + public void setListener(BleServer.ConnectionFailListener listener) + { + m_connectionFailListener = listener; + } + + public BleServer.ConnectionFailListener getListener() + { + return m_connectionFailListener; + } + + void onNativeConnectFail(final BluetoothDevice nativeDevice, final BleServer.ConnectionFailListener.Status status, final int gattStatus) + { + getOrCreateEntry(nativeDevice.getAddress()).onNativeConnectFail(nativeDevice, status, gattStatus); + } + + int/*__PE_Please*/ invokeCallback(final BleServer.ConnectionFailListener.ConnectionFailEvent e) + { + final int ePlease__PE_Please; + + if( m_connectionFailListener != null ) + { + final BleServer.ConnectionFailListener.Please please = m_connectionFailListener.onEvent(e); + + ePlease__PE_Please = please != null ? please.please() : BleNode.ConnectionFailListener.Please.PE_Please_DO_NOT_RETRY; + } + else + { + final BleServer.ConnectionFailListener.Please please = m_server.getManager().m_defaultConnectionFailListener_server.onEvent(e); + + ePlease__PE_Please = please != null ? please.please() : BleServer.ConnectionFailListener.Please.PE_Please_DO_NOT_RETRY; + } + + return ePlease__PE_Please; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ServerServiceManager.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ServerServiceManager.java new file mode 100644 index 0000000000000000000000000000000000000000..2f99e5eedca9b5bbf366af72b2d4786656fd340d --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ServerServiceManager.java @@ -0,0 +1,260 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothGattServer; +import android.bluetooth.BluetoothGattService; + +import com.idevicesinc.sweetblue.utils.ForEach_Breakable; +import com.idevicesinc.sweetblue.utils.Pointer; + +import java.util.List; +import java.util.UUID; + +class P_ServerServiceManager extends PA_ServiceManager +{ + private final BleServer m_server; + + private BleServer.ServiceAddListener m_listener = null; + + P_ServerServiceManager(final BleServer server) + { + m_server = server; + } + + public void setListener(BleServer.ServiceAddListener listener) + { + m_listener = listener; + } + + @Override public BluetoothGattService getServiceDirectlyFromNativeNode(final UUID uuid) + { + final BluetoothGattServer server_native = m_server.getNative(); + + if( server_native == null ) + { + return null; + } + else + { + final BluetoothGattService service = server_native.getService(uuid); + + return service; + } + } + + @Override protected List<BluetoothGattService> getNativeServiceList_original() + { + final BluetoothGattServer server_native = m_server.getNative(); + + if( server_native == null ) + { + return EMPTY_SERVICE_LIST; + } + else + { + final List<BluetoothGattService> list_native = server_native.getServices(); + + return list_native == null ? EMPTY_SERVICE_LIST : list_native; + } + } + + private void getTasks(ForEach_Breakable<P_Task_AddService> forEach) + { + final P_TaskQueue queue = m_server.getManager().getTaskQueue(); + final List<PA_Task> queue_raw = queue.getRaw(); + + for( int i = queue_raw.size()-1; i >= 0; i-- ) + { + final PA_Task ith = queue_raw.get(i); + + if( ith.getClass() == P_Task_AddService.class && m_server.equals(ith.getServer()) ) + { + final P_Task_AddService task_cast = (P_Task_AddService) ith; + + final ForEach_Breakable.Please please = forEach.next(task_cast); + + if( please.shouldBreak() ) + { + return; + } + } + } + + final PA_Task current = queue.getCurrent(); + + if( current != null ) + { + if( current.getClass() == P_Task_AddService.class && m_server.equals(current.getServer()) ) + { + final P_Task_AddService current_cast = (P_Task_AddService) current; + + if( !current_cast.cancelledInTheMiddleOfExecuting() ) + { + forEach.next(current_cast); + } + } + } + } + + private boolean alreadyAddingOrAdded(final BluetoothGattService serviceToBeAdded) + { + final BluetoothGattService existingServiceFromServer = getServiceDirectlyFromNativeNode(serviceToBeAdded.getUuid()); + + if( equals(existingServiceFromServer, serviceToBeAdded) ) + { + return true; + } + else + { + final Pointer<Boolean> mutableBool = new Pointer<Boolean>(false); + + getTasks(new ForEach_Breakable<P_Task_AddService>() + { + @Override public Please next(P_Task_AddService next) + { + final BluetoothGattService service_ith = next.getService(); + + if( PA_ServiceManager.equals(service_ith, serviceToBeAdded) ) + { + mutableBool.value = true; + + return Please.doBreak(); + } + else + { + return Please.doContinue(); + } + } + }); + + return mutableBool.value; + } + } + + public BleServer.ServiceAddListener.ServiceAddEvent addService(final BleService service, final BleServer.ServiceAddListener listener_specific_nullable) + { + service.init(); + + return addService_native(service.m_native, listener_specific_nullable); + } + + public BleServer.ServiceAddListener.ServiceAddEvent addService_native(final BluetoothGattService service, final BleServer.ServiceAddListener listener_specific_nullable) + { + if( m_server.isNull() ) + { + final BleServer.ServiceAddListener.ServiceAddEvent e = BleServer.ServiceAddListener.ServiceAddEvent.EARLY_OUT(m_server, service, BleServer.ServiceAddListener.Status.NULL_SERVER); + + invokeListeners(e, listener_specific_nullable); + + return e; + } + else if( false == m_server.getManager().is(BleManagerState.ON) ) + { + final BleServer.ServiceAddListener.ServiceAddEvent e = BleServer.ServiceAddListener.ServiceAddEvent.EARLY_OUT(m_server, service, BleServer.ServiceAddListener.Status.BLE_NOT_ON); + + invokeListeners(e, listener_specific_nullable); + + return e; + } + else if( alreadyAddingOrAdded(service) ) + { + final BleServer.ServiceAddListener.ServiceAddEvent e = BleServer.ServiceAddListener.ServiceAddEvent.EARLY_OUT(m_server, service, BleServer.ServiceAddListener.Status.DUPLICATE_SERVICE); + + invokeListeners(e, listener_specific_nullable); + + return e; + } + else + { + final P_Task_AddService task = new P_Task_AddService(m_server, service, listener_specific_nullable); + m_server.getManager().getTaskQueue().add(task); + + return BleServer.ServiceAddListener.ServiceAddEvent.NULL(m_server, service); + } + } + + public void removeAll(final BleServer.ServiceAddListener.Status status) + { + final BluetoothGattServer server_native = m_server.getNative(); + + if( server_native != null ) + { + server_native.clearServices(); + } + + getTasks(new ForEach_Breakable<P_Task_AddService>() + { + @Override public Please next(P_Task_AddService next) + { + next.cancel(status); + + return Please.doContinue(); + } + }); + } + + public BluetoothGattService remove(final UUID serviceUuid) + { + final BluetoothGattService service = getServiceDirectlyFromNativeNode(serviceUuid); + + if( service == null ) + { + final Pointer<BluetoothGattService> pointer = new Pointer<BluetoothGattService>(); + + getTasks(new ForEach_Breakable<P_Task_AddService>() + { + @Override public Please next(final P_Task_AddService next) + { + if( next.getService().getUuid().equals(serviceUuid) ) + { + pointer.value = next.getService(); + + next.cancel(BleServer.ServiceAddListener.Status.CANCELLED_FROM_REMOVAL); + + return Please.doBreak(); + } + else + { + return Please.doContinue(); + } + } + }); + + return pointer.value; + } + else + { + final BluetoothGattServer server_native = m_server.getNative(); + + if( server_native == null ) + { + m_server.getManager().ASSERT(false, "Didn't expect native server to be null when removing characteristic."); + + return null; + } + else + { + server_native.removeService(service); + + return service; + } + } + } + + public void invokeListeners(final BleServer.ServiceAddListener.ServiceAddEvent e, final BleServer.ServiceAddListener listener_specific_nullable) + { + if( listener_specific_nullable != null ) + { + listener_specific_nullable.onEvent(e); + } + + if( m_listener != null ) + { + m_listener.onEvent(e); + } + + if( m_server.getManager().m_serviceAddListener != null ) + { + m_server.getManager().m_serviceAddListener.onEvent(e); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ServerStateTracker.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ServerStateTracker.java new file mode 100644 index 0000000000000000000000000000000000000000..540eed38f40974475bdc718eb491aa0854890877 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_ServerStateTracker.java @@ -0,0 +1,152 @@ +package com.idevicesinc.sweetblue; + +import com.idevicesinc.sweetblue.utils.State; +import com.idevicesinc.sweetblue.utils.Utils; + +import java.util.List; + +import static com.idevicesinc.sweetblue.BleServerState.CONNECTED; +import static com.idevicesinc.sweetblue.BleServerState.CONNECTING; + +class P_ServerStateTracker +{ + private BleServer.StateListener m_stateListener; + private final BleServer m_server; + + P_ServerStateTracker(BleServer server) + { + m_server = server; + } + + public void setListener(BleServer.StateListener listener) + { + m_stateListener = listener; + } + + BleServerState getOldConnectionState(final String macAddress) + { + final int stateMask = getStateMask(macAddress); + + if( BleServerState.CONNECTING.overlaps(stateMask) ) + { + return CONNECTING; + } + else if( BleServerState.CONNECTED.overlaps(stateMask) ) + { + return CONNECTED; + } + else + { + m_server.getManager().ASSERT(false, "Expected to be connecting or connected for an explicit disconnect."); + + return BleServerState.NULL; + } + } + + void doStateTransition(final String macAddress, final BleServerState oldState, final BleServerState newState, final State.ChangeIntent intent, final int gattStatus) + { + final int currentBits = m_server.getStateMask(macAddress); + + final int oldState_bit = false == oldState.isNull() ? oldState.bit() : 0x0; + final int newState_bit = newState.bit(); + final int intentBits = intent == State.ChangeIntent.INTENTIONAL ? 0xFFFFFFFF : 0x00000000; + + final int oldBits = (currentBits | oldState_bit) & ~newState_bit; + final int newBits = (currentBits | newState_bit) & ~oldState_bit; + final int intentMask = (oldBits | newBits) & intentBits; + + final BleServer.StateListener.StateEvent e = new BleServer.StateListener.StateEvent(m_server, macAddress, oldBits, newBits, intentMask, gattStatus); + + fireEvent(e); + } + + private void fireEvent(final BleServer.StateListener.StateEvent e) + { + if( m_stateListener != null ) + { + m_stateListener.onEvent(e); + } + + if( m_server.getManager().m_defaultServerStateListener != null ) + { + m_server.getManager().m_defaultServerStateListener.onEvent(e); + } + } + + public int getStateMask(final String macAddress) + { + final P_TaskQueue queue = m_server.getManager().getTaskQueue(); + final List<PA_Task> queue_raw = queue.getRaw(); + final int bitForUnknownState = BleServerState.DISCONNECTED.bit(); + final PA_Task current = queue.getCurrent(); + + if( m_server.m_nativeWrapper.isConnectingOrConnected(macAddress) ) + { + for( int i = queue_raw.size()-1; i >= 0; i-- ) + { + final PA_Task ith = queue_raw.get(i); + + if( ith.isFor(P_Task_ConnectServer.class, m_server, macAddress) ) + { + return BleServerState.CONNECTING.bit(); + } + + if( ith.isFor(P_Task_DisconnectServer.class, m_server, macAddress) ) + { + return BleServerState.DISCONNECTED.bit(); + } + } + + if( current != null && current.isFor(P_Task_DisconnectServer.class, m_server, macAddress) ) + { + return BleServerState.DISCONNECTED.bit(); + } + else if( m_server.m_nativeWrapper.isConnected(macAddress) ) + { + return BleServerState.CONNECTED.bit(); + } + else if( m_server.m_nativeWrapper.isConnecting(macAddress) ) + { + return BleServerState.CONNECTING.bit(); + } + else + { + m_server.getManager().ASSERT(false, "Expected to be connecting or connected when getting state mask for server."); + + return bitForUnknownState; + } + } + else if( m_server.m_nativeWrapper.isDisconnectingOrDisconnected(macAddress) ) + { + for( int i = queue_raw.size()-1; i >= 0; i-- ) + { + final PA_Task ith = queue_raw.get(i); + + if( ith.isFor(P_Task_DisconnectServer.class, m_server, macAddress) ) + { + return BleServerState.DISCONNECTED.bit(); + } + + if( ith.isFor(P_Task_ConnectServer.class, m_server, macAddress) ) + { + return BleServerState.CONNECTING.bit(); + } + } + + if( current != null && current.isFor(P_Task_ConnectServer.class, m_server, macAddress) ) + { + return BleServerState.CONNECTING.bit(); + } + else + { + return BleServerState.DISCONNECTED.bit(); + } + } + else + { + m_server.getManager().ASSERT(false, "Native server is in an unknown state."); + + return bitForUnknownState; + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_StringHandler.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_StringHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..e8782268262e451e57a9e325178b4261ded61a21 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_StringHandler.java @@ -0,0 +1,59 @@ +package com.idevicesinc.sweetblue; + + +import android.app.Activity; +import java.util.HashMap; +import java.util.Map; + + +public class P_StringHandler +{ + private static final String BASE = "sb_%s"; + + public static final String DENYING_LOCATION_ACCESS = String.format(BASE, "denying_location_access"); + public static final String APP_NEEDS_PERMISSION = String.format(BASE, "app_needs_permission"); + public static final String LOCATION_PERMISSION_TOAST = String.format(BASE, "location_permission_toast"); + public static final String REQUIRES_LOCATION_PERMISSION = String.format(BASE, "requires_location_permission"); + public static final String REQUIRES_LOCATION_PERMISSION_AND_SERVICES = String.format(BASE, "requires_location_permission_and_services"); + public static final String LOCATION_SERVICES_NEEDS_ENABLING = String.format(BASE, "location_services_needs_enabling"); + public static final String LOCATION_SERVICES_TOAST = String.format(BASE, "location_services_toast"); + public static final String OK = String.format(BASE, "ok"); + public static final String DENY = String.format(BASE, "deny"); + public static final String ACCEPT = String.format(BASE, "accept"); + + private static Map<String, String> fallBackStrings; + + private static void initMap() { + fallBackStrings = new HashMap<String, String>(); + fallBackStrings.put(DENYING_LOCATION_ACCESS, "Denying location access means low-energy scanning will not work."); + fallBackStrings.put(APP_NEEDS_PERMISSION, "App needs android.permission.ACCESS_COARSE_LOCATION or android.permission.ACCESS_FINE_LOCATION in its AndroidManifest.xml!"); + fallBackStrings.put(LOCATION_PERMISSION_TOAST, "Please click the Permissions button, then enable Location, then press back twice."); + fallBackStrings.put(REQUIRES_LOCATION_PERMISSION, "Android Marshmallow (6.0+) requires Location Permission to be able to scan for Bluetooth devices. Please accept to allow Location Permission."); + fallBackStrings.put(REQUIRES_LOCATION_PERMISSION_AND_SERVICES, "Android Marshmallow (6.0+) requires Location Permission to the app to be able to scan for Bluetooth devices.\n" + + "\n" + "Marshmallow also requires Location Services to improve Bluetooth device discovery. While it is not required for use in this app, it is recommended to better discover devices.\n" + + "\n" + "Please accept to allow Location Permission and Services."); + fallBackStrings.put(LOCATION_SERVICES_NEEDS_ENABLING, "Android Marshmallow (6.0+) requires Location Services for improved Bluetooth device scanning. While it is not required, it is recommended that Location Services are turned on to improve device discovery."); + fallBackStrings.put(LOCATION_SERVICES_TOAST, "Please enable Location Services then press back."); + fallBackStrings.put(OK, "OK"); + fallBackStrings.put(DENY, "Deny"); + fallBackStrings.put(ACCEPT, "Accept"); + } + + private static void checkMap() { + if (fallBackStrings == null) + { + initMap(); + } + } + + public static String getString(Activity context, String stringKey) + { + int res = context.getResources().getIdentifier(stringKey, "string", context.getPackageName()); + if (res == 0) { + checkMap(); + return fallBackStrings.get(stringKey); + } + return context.getString(res); + } + +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_TaskQueue.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_TaskQueue.java new file mode 100644 index 0000000000000000000000000000000000000000..85282d0ef254d1255684c474aeaa480b73f12f2e --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_TaskQueue.java @@ -0,0 +1,591 @@ +package com.idevicesinc.sweetblue; + +import java.util.ArrayList; +import java.util.List; + +import android.os.Handler; +import android.os.Looper; + +class P_TaskQueue +{ + private final ArrayList<PA_Task> m_queue = new ArrayList<PA_Task>(); + private PA_Task m_current; + private long m_updateCount; + private final P_Logger m_logger; + private final BleManager m_mngr; + private double m_time = 0.0; + + private Handler m_executeHandler = null; + + private int m_currentOrdinal; + + P_TaskQueue(BleManager mngr) + { + m_mngr = mngr; + m_logger = mngr.getLogger(); + + initHandler(); + } + + int assignOrdinal() + { + final int toReturn = m_currentOrdinal; + + m_currentOrdinal++; + + return toReturn; + } + + public Handler getExecuteHandler() + { + return m_executeHandler; + } + + int getCurrentOrdinal() + { + return m_currentOrdinal; + } + + public PA_Task peek() + { + return m_queue.size() > 0 ? m_queue.get(0) : null; + } + + private void initHandler() + { + final Thread thread = new Thread() + { + @Override public void run() + { + Looper.prepare(); + m_executeHandler = new Handler(Looper.myLooper()); + Looper.loop(); + } + }; + + thread.start(); + } + + private boolean tryCancellingCurrentTask(PA_Task newTask) + { + if( getCurrent() != null && getCurrent().isCancellableBy(newTask) ) + { +// int soonestSpot = U_BtTaskQueue.findSoonestSpot(m_queue, newTask); + +// if( soonestSpot == 0 ) + { + endCurrentTask(PE_TaskState.CANCELLED); + addAtIndex(newTask, 0); + + return true; + } + } + + return false; + } + + private boolean tryInterruptingCurrentTask(PA_Task newTask) + { + if( getCurrent() != null && getCurrent().isInterruptableBy(newTask) ) + { +// int soonestSpot = U_BtTaskQueue.findSoonestSpot(m_queue, newTask); + +// if( soonestSpot == 0 ) + { + PA_Task current_saved = getCurrent(); + endCurrentTask(PE_TaskState.INTERRUPTED); + addAtIndex(newTask, 0); + addAtIndex(current_saved, 1); + + return true; + } + } + + return false; + } + + private boolean tryInsertingIntoQueue(PA_Task newTask) + { + int soonestSpot = PU_TaskQueue.findSoonestSpot(m_queue, newTask); + + if( soonestSpot >= 0 ) + { + addAtIndex(newTask, soonestSpot); + + return true; + } + + return false; + } + + private void addToBack(PA_Task task) + { + addAtIndex(task, -1); + } + + public void softlyCancelTasks(PA_Task task) + { + for( int i = 0; i < m_queue.size()-1; i++ ) + { + PA_Task ithTask = m_queue.get(i); + if( ithTask.isSoftlyCancellableBy(task) ) + { + ithTask.attemptToSoftlyCancel(task); + } + } + + if( getCurrent() != null ) + { + if( getCurrent().isSoftlyCancellableBy(task) ) + { + getCurrent().attemptToSoftlyCancel(task); + } + } + } + + private void addAtIndex(PA_Task task, int index) + { + if( index >= 0 ) + { + m_queue.add(index, task); + } + else + { + m_queue.add(task); + + index = m_queue.size()-1; + } + + task.assignDefaultOrdinal(this); + + softlyCancelTasks(task); + + task.onAddedToQueue(this); + + print(); + } + + public void add(final PA_Task newTask) + { + newTask.init(); + + if( m_mngr.getUpdateLoop().postNeeded() ) + { + m_mngr.getUpdateLoop().postIfNeeded(new Runnable() + { + @Override public void run() + { + add_mainThread(newTask); + } + }); + } + else + { + add_mainThread(newTask); + } + } + + private void add_mainThread(final PA_Task newTask) + { + if( tryCancellingCurrentTask(newTask) ) + { + if( getCurrent() == null ) + { + dequeue(); + } + } + else if( tryInterruptingCurrentTask(newTask) ) {} + else if( tryInsertingIntoQueue(newTask) ) {} + else { addToBack(newTask); } + + //--- DRK > Commenting out because of possible race condition when immediate native stack errors recurse + //--- back to front-end before front-end's state reflects the fact that the task (added to empty queue) is going on. + //--- See start of service discovery for an example. +// while( getCurrent() == null && m_queue.size() > 0 ) +// { +// if( false == dequeue() ) +// { +// break; +// } +// } + } + + double getTime() + { + return m_time; + } + + public void update(double timeStep) + { + m_time += timeStep; + + if( m_executeHandler == null ) + { + m_logger.d("Waiting for execute handler to initialize."); + + return; + } + + if( m_current == null ) + { + dequeue(); + } + + if( getCurrent() != null ) + { + getCurrent().update_internal(timeStep); + } + + m_updateCount++; + } + + private boolean dequeue() + { + if( !m_mngr.ASSERT(m_current == null) ) return false; + if( m_queue.size() == 0 ) return false; + + for( int i = 0; i < m_queue.size(); i++ ) + { + PA_Task newPotentialCurrent = m_queue.get(i); + + if( newPotentialCurrent.isArmable() ) + { + m_queue.remove(i); + m_current = newPotentialCurrent; + m_current.arm(); + m_current.tryExecuting(); + + print(); + + return true; + } + } + + print(); + + return false; + } + + public long getUpdateCount() + { + return m_updateCount; + } + + public PA_Task getCurrent() + { +// return m_pendingEndingStateForCurrentTask != null ? null : m_current; + return m_current; + } + + private boolean endCurrentTask(PE_TaskState endingState) + { + if( !m_mngr.ASSERT(endingState.isEndingState()) ) return false; + if( getCurrent() == null ) return false; +// if( m_pendingEndingStateForCurrentTask != null ) return false; + + PA_Task current_saved = m_current; + m_current = null; + current_saved.setEndingState(endingState); + + if( m_queue.size() > 0 && getCurrent() == null ) + { + if( endingState.canGoToNextTaskImmediately() ) + { + dequeue(); + } + else + { + //--- DRK > Posting to prevent potential stack overflow if queue is really big and all tasks are failing in a row. + m_mngr.getUpdateLoop().forcePost(new Runnable() + { + @Override public void run() + { + if( m_queue.size() > 0 && getCurrent() == null ) + { + dequeue(); + } + } + }); + } + } + + print(); + +// m_pendingEndingStateForCurrentTask = endingState; + + return true; + } + + public void interrupt(Class<? extends PA_Task> taskClass, BleManager manager) + { + PA_Task current = getCurrent(taskClass, manager); + + if( PU_TaskQueue.isMatch(getCurrent(), taskClass, manager, null, null) ) + { + tryEndingTask(current, PE_TaskState.INTERRUPTED); + + add(current); + } + } + + + public boolean succeed(Class<? extends PA_Task> taskClass, BleManager manager) + { + return tryEndingTask(taskClass, manager, null, null, PE_TaskState.SUCCEEDED); + } + + public boolean succeed(Class<? extends PA_Task> taskClass, BleDevice device) + { + return tryEndingTask(taskClass, null, device, null, PE_TaskState.SUCCEEDED); + } + + public boolean succeed(Class<? extends PA_Task> taskClass, BleServer server) + { + return tryEndingTask(taskClass, null, null, server, PE_TaskState.SUCCEEDED); + } + + + public boolean fail(Class<? extends PA_Task> taskClass, BleManager manager) + { + return tryEndingTask(taskClass, manager, null, null, PE_TaskState.FAILED); + } + + public boolean fail(Class<? extends PA_Task> taskClass, BleDevice device) + { + return tryEndingTask(taskClass, null, device, null, PE_TaskState.FAILED); + } + + public boolean fail(Class<? extends PA_Task> taskClass, BleServer server) + { + return tryEndingTask(taskClass, null, null, server, PE_TaskState.FAILED); + } + + private boolean tryEndingTask(final Class<? extends PA_Task> taskClass, final BleManager mngr_nullable, final BleDevice device_nullable, final BleServer server_nullable, final PE_TaskState endingState) + { + if( PU_TaskQueue.isMatch(getCurrent(), taskClass, mngr_nullable, device_nullable, server_nullable ) ) + { + return endCurrentTask(endingState); + } + + return false; + } + + void tryEndingTask(final PA_Task task, final PE_TaskState endingState) + { + if( m_mngr.getUpdateLoop().postNeeded() ) + { + m_mngr.getUpdateLoop().postIfNeeded(new Runnable() + { + @Override public void run() + { + tryEndingTask_mainThread(task, endingState); + } + }); + } + else + { + tryEndingTask_mainThread(task, endingState); + } + } + + private void tryEndingTask_mainThread(final PA_Task task, final PE_TaskState endingState) + { + if( task != null && task == getCurrent() ) + { + if( !endCurrentTask(endingState) ) + { + m_mngr.ASSERT(false); + } + } + } + + public boolean isCurrent(Class<? extends PA_Task> taskClass, BleManager mngr) + { + return PU_TaskQueue.isMatch(getCurrent(), taskClass, mngr, null, null); + } + + public boolean isCurrent(Class<? extends PA_Task> taskClass, BleDevice device) + { + return PU_TaskQueue.isMatch(getCurrent(), taskClass, null, device, null); + } + public boolean isCurrent(Class<? extends PA_Task> taskClass, BleServer server) + { + return PU_TaskQueue.isMatch(getCurrent(), taskClass, null, null, server); + } + + private boolean isInQueue(Class<? extends PA_Task> taskClass, BleManager mngr_nullable, BleDevice device_nullable, BleServer server_nullable) + { + for( int i = 0; i < m_queue.size(); i++ ) + { + if( PU_TaskQueue.isMatch(m_queue.get(i), taskClass, mngr_nullable, device_nullable, server_nullable) ) + { + return true; + } + } + + return false; + } + + public int getSize() + { + return m_queue.size(); + } + + public List<PA_Task> getRaw() + { + return m_queue; + } + + public boolean isInQueue(Class<? extends PA_Task> taskClass, BleManager mngr) + { + return isInQueue(taskClass, mngr, null, null); + } + + public boolean isInQueue(Class<? extends PA_Task> taskClass, BleDevice device) + { + return isInQueue(taskClass, null, device, null); + } + + public boolean isInQueue(Class<? extends PA_Task> taskClass, BleServer server) + { + return isInQueue(taskClass, null, null, server); + } + + public boolean isCurrentOrInQueue(Class<? extends PA_Task> taskClass, BleManager mngr) + { + return isCurrent(taskClass, mngr) || isInQueue(taskClass, mngr); + } + + public <T extends PA_Task> T get(Class<T> taskClass, BleManager mngr) + { + if( PU_TaskQueue.isMatch(getCurrent(), taskClass, mngr, null, null) ) + { + return (T) getCurrent(); + } + + for( int i = 0; i < m_queue.size(); i++ ) + { + if( PU_TaskQueue.isMatch(m_queue.get(i), taskClass, mngr, null, null) ) + { + return (T) m_queue.get(i); + } + } + + return null; + } + + public <T extends PA_Task> T getCurrent(Class<T> taskClass, BleDevice device) + { + if( PU_TaskQueue.isMatch(getCurrent(), taskClass, null, device, null) ) + { + return (T) getCurrent(); + } + + return null; + } + + public <T extends PA_Task> T getCurrent(Class<T> taskClass, BleManager mngr) + { + if( PU_TaskQueue.isMatch(getCurrent(), taskClass, mngr, null, null) ) + { + return (T) getCurrent(); + } + + return null; + } + + public <T extends PA_Task> T getCurrent(Class<T> taskClass, BleServer server) + { + if( PU_TaskQueue.isMatch(getCurrent(), taskClass, null, null, server) ) + { + return (T) getCurrent(); + } + + return null; + } + + void print() + { + if( m_logger.isEnabled() ) + { + m_logger.i(this.toString()); + } + } + + private void clearQueueOf$removeFromQueue(int index) + { + PA_Task task = m_queue.remove(index); + + if( task.wasSoftlyCancelled() ) + { + task.setEndingState(PE_TaskState.SOFTLY_CANCELLED); + } + else + { + task.setEndingState(PE_TaskState.CLEARED_FROM_QUEUE); + } + + print(); + } + + public void clearQueueOf(Class<? extends PA_Task> taskClass, BleManager mngr) + { + for( int i = m_queue.size()-1; i >= 0; i-- ) + { + if( PU_TaskQueue.isMatch(m_queue.get(i), taskClass, mngr, null, null) ) + { + clearQueueOf$removeFromQueue(i); + } + } + } + + public void clearQueueOf(Class<? extends PA_Task> taskClass, BleDevice device, final int ordinal) + { + for( int i = m_queue.size()-1; i >= 0; i-- ) + { + final PA_Task task_ith = m_queue.get(i); + + if( ordinal <= -1 || ordinal >= 0 && task_ith.getOrdinal() <= ordinal ) + { + if( PU_TaskQueue.isMatch(task_ith, taskClass, null, device, null) ) + { + clearQueueOf$removeFromQueue(i); + } + } + } + } + + public void clearQueueOf(Class<? extends PA_Task> taskClass, BleServer server) + { + for( int i = m_queue.size()-1; i >= 0; i-- ) + { + if( PU_TaskQueue.isMatch(m_queue.get(i), taskClass, null, null, server) ) + { + clearQueueOf$removeFromQueue(i); + } + } + } + + public void clearQueueOfAll() + { + for (int i = m_queue.size() - 1; i >= 0; i-- ) + { + clearQueueOf$removeFromQueue(i); + } + } + + @Override public String toString() + { + final String current = m_current != null ? m_current.toString() : "no current task"; +// if( m_pendingEndingStateForCurrentTask != null) +// { +// current += "(" + m_pendingEndingStateForCurrentTask.name() +")"; +// } + + final String queue = m_queue.size() > 0 ? m_queue.toString() : "[queue empty]"; + + final String toReturn = current + " " + queue; + + return toReturn; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_AddService.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_AddService.java new file mode 100644 index 0000000000000000000000000000000000000000..5bb42417352984a6163269f200525b65391297d2 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_AddService.java @@ -0,0 +1,195 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothGattServer; +import android.bluetooth.BluetoothGattService; + +import com.idevicesinc.sweetblue.utils.Utils; + +class P_Task_AddService extends PA_Task_RequiresBleOn implements PA_Task.I_StateListener +{ + private final BluetoothGattService m_service; + private final BleServer.ServiceAddListener m_addListener; + + private boolean m_cancelledInTheMiddleOfExecuting = false; + + public P_Task_AddService(BleServer server, final BluetoothGattService service, final BleServer.ServiceAddListener addListener) + { + super(server, null); + + m_service = service; + m_addListener = addListener; + } + + @Override void execute() + { + final BluetoothGattServer server_native_nullable = getServer().getNative(); + + if( server_native_nullable == null ) + { + if( !getServer().m_nativeWrapper.openServer() ) + { + failImmediately(BleServer.ServiceAddListener.Status.SERVER_OPENING_FAILED); + + return; + } + } + + final BluetoothGattServer server_native = getServer().getNative(); + + if( server_native /*still*/ == null ) + { + failImmediately(BleServer.ServiceAddListener.Status.SERVER_OPENING_FAILED); + + getManager().ASSERT(false, "Server should not be null after successfully opening!"); + } + else + { + if( server_native.addService(m_service) ) + { + // SUCCESS, so far... + } + else + { + failImmediately(BleServer.ServiceAddListener.Status.FAILED_IMMEDIATELY); + } + } + } + + @Override protected void onNotExecutable() + { + getManager().ASSERT(false, "Should never have gotten into the queue, and if BLE goes OFF in the mean time should be removed from queue."); + + super.onNotExecutable(); + + invokeFailCallback(BleServer.ServiceAddListener.Status.BLE_NOT_ON, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + + public BluetoothGattService getService() + { + return m_service; + } + + private void fail(final BleServer.ServiceAddListener.Status status, final int gattStatus) + { + super.fail(); + + invokeFailCallback(status, gattStatus); + } + + private void failImmediately(final BleServer.ServiceAddListener.Status status) + { + super.failImmediately(); + + invokeFailCallback(status, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + + private void invokeFailCallback(final BleServer.ServiceAddListener.Status status, final int gattStatus) + { + final BleServer.ServiceAddListener.ServiceAddEvent e = new BleServer.ServiceAddListener.ServiceAddEvent + ( + getServer(), m_service, status, gattStatus, /*solicited=*/true + ); + + getServer().serviceMngr_server().invokeListeners(e, m_addListener); + } + + protected void succeed(final int gattStatus) + { + super.succeed(); + + final BleServer.ServiceAddListener.ServiceAddEvent e = new BleServer.ServiceAddListener.ServiceAddEvent + ( + getServer(), m_service, BleServer.ServiceAddListener.Status.SUCCESS, BleStatuses.GATT_SUCCESS, /*solicited=*/true + ); + + getServer().serviceMngr_server().invokeListeners(e, m_addListener); + } + + public boolean cancelledInTheMiddleOfExecuting() + { + return m_cancelledInTheMiddleOfExecuting; + } + + public void onServiceAdded(final int gattStatus, final BluetoothGattService service) + { + if( m_cancelledInTheMiddleOfExecuting ) + { + final BluetoothGattServer server_native_nullable = getServer().getNative(); + + if( server_native_nullable != null ) + { + server_native_nullable.removeService(service); + } + + //--- DRK > Not invoking appland callback because it was already send in call to cancel() back in time. + fail(); + } + else + { + if( Utils.isSuccess(gattStatus) ) + { + succeed(gattStatus); + } + else + { + fail(BleServer.ServiceAddListener.Status.FAILED_EVENTUALLY, gattStatus); + } + } + } + + public void cancel(final BleServer.ServiceAddListener.Status status) + { + if( this.getState() == PE_TaskState.ARMED ) + { + fail(); + } + else if( this.getState() == PE_TaskState.EXECUTING ) + { + //--- DRK > We don't actually fail the task here because we let it run + //--- its course until we get a callback from the native stack. + m_cancelledInTheMiddleOfExecuting = true; + } + else + { + clearFromQueue(); + } + + invokeFailCallback(status, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + + protected final BleServer.ServiceAddListener.Status getCancelStatusType() + { + BleManager mngr = this.getManager(); + + if( mngr.isAny(BleManagerState.TURNING_OFF, BleManagerState.OFF) ) + { + return BleServer.ServiceAddListener.Status.CANCELLED_FROM_BLE_TURNING_OFF; + } + else + { + return BleServer.ServiceAddListener.Status.CANCELLED_FROM_DISCONNECT; + } + } + + @Override public PE_TaskPriority getPriority() + { + return PE_TaskPriority.FOR_EXPLICIT_BONDING_AND_CONNECTING; + } + + @Override protected BleTask getTaskType() + { + return BleTask.ADD_SERVICE; + } + + @Override public void onStateChange(PA_Task task, PE_TaskState state) + { + if( state == PE_TaskState.SOFTLY_CANCELLED ) + { + invokeFailCallback(getCancelStatusType(), BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + else if( state == PE_TaskState.TIMED_OUT ) + { + invokeFailCallback(BleServer.ServiceAddListener.Status.TIMED_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Advertise.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Advertise.java new file mode 100644 index 0000000000000000000000000000000000000000..3e69ee0bd7087bd897d2346150d1a826f310bf19 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Advertise.java @@ -0,0 +1,139 @@ +package com.idevicesinc.sweetblue; + +import android.annotation.TargetApi; +import android.bluetooth.le.AdvertiseCallback; +import android.bluetooth.le.AdvertiseSettings; +import android.bluetooth.le.BluetoothLeAdvertiser; +import android.os.Build; +import com.idevicesinc.sweetblue.utils.Interval; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.BleAdvertisingSettings.BleAdvertisingMode; +import com.idevicesinc.sweetblue.BleAdvertisingSettings.BleTransmissionPower; + + +@TargetApi(Build.VERSION_CODES.LOLLIPOP) +class P_Task_Advertise extends PA_Task_RequiresBleOn { + + private final BleAdvertisingPacket m_packet; + private final BleServer.AdvertisingListener m_listener; + private final BleAdvertisingMode m_mode; + private final BleTransmissionPower m_power; + private final Interval m_timeOut; + + private final AdvertiseCallback adCallback = new AdvertiseCallback() + { + @Override + public void onStartSuccess(AdvertiseSettings settingsInEffect) + { + getLogger().d("Advertising started successfully."); + getServer().invokeAdvertiseListeners(BleServer.AdvertisingListener.Status.SUCCESS, m_listener); + succeed(); + } + + @Override + public void onStartFailure(int errorCode) + { + BleServer.AdvertisingListener.Status result = BleServer.AdvertisingListener.Status.fromNativeStatus(errorCode); + getLogger().e("Failed to start advertising! Result: " + result); + getServer().invokeAdvertiseListeners(result, m_listener); + fail(); + } + }; + + + public P_Task_Advertise(BleServer server, BleAdvertisingPacket info, BleServer.AdvertisingListener listener, BleAdvertisingMode mode, BleTransmissionPower power, Interval timeout) + { + super(server, null); + m_packet = info; + m_listener = listener; + m_mode = mode; + m_power = power; + m_timeOut = timeout; + } + + public P_Task_Advertise(BleServer server, BleAdvertisingPacket info, BleAdvertisingSettings settings, BleServer.AdvertisingListener listener) + { + super(server, null); + m_packet = info; + m_listener = listener; + m_mode = settings.getAdvertisingMode(); + m_power = settings.getTransmissionPower(); + m_timeOut = settings.getTimeout(); + } + + /*package*/ BleAdvertisingPacket getPacket() + { + return m_packet; + } + + @Override + protected BleTask getTaskType() + { + return BleTask.START_ADVERTISING; + } + + @Override + void execute() + { + if (Utils.isLollipop()) + { + invokeStartAdvertising(); + } + else + { + fail(); + } + } + + /*package*/ void stopAdvertising() + { + BluetoothLeAdvertiser ad = getManager().getNativeAdapter().getBluetoothLeAdvertiser(); + if (ad != null) + { + ad.stopAdvertising(adCallback); + } + } + + @Override + public PE_TaskPriority getPriority() + { + return PE_TaskPriority.TRIVIAL; + } + + private void invokeStartAdvertising() + { + BluetoothLeAdvertiser advert = getManager().getNativeAdapter().getBluetoothLeAdvertiser(); + if (advert != null) + { + BleAdvertisingMode mode = determineMode(m_mode, m_timeOut, getManager().isForegrounded()); + advert.startAdvertising(m_packet.getNativeSettings(mode, m_power, m_timeOut), m_packet.getNativeData(), adCallback); + } + } + + private static BleAdvertisingMode determineMode(BleAdvertisingMode curMode, Interval timeout, boolean foregrounded) + { + if (curMode == BleAdvertisingMode.AUTO) + { + if (foregrounded) + { + if (timeout == Interval.ZERO) + { + return BleAdvertisingMode.MEDIUM_FREQUENCY; + } + else + { + return BleAdvertisingMode.HIGH_FREQUENCY; + } + } + else + { + return BleAdvertisingMode.LOW_FREQUENCY; + } + } + else + { + return curMode; + } + } + +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_BatteryLevel.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_BatteryLevel.java new file mode 100644 index 0000000000000000000000000000000000000000..4012b1b6924b869031ca8364738b6dd5d3b4a54d --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_BatteryLevel.java @@ -0,0 +1,154 @@ +package com.idevicesinc.sweetblue; + + +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattDescriptor; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Uuids; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.UUID; + + +public final class P_Task_BatteryLevel extends PA_Task_ReadOrWrite +{ + + private final byte[] mValueToMatch; + private List<BluetoothGattCharacteristic> batteryChars; + private UUID mDescriptorUuid; + + + P_Task_BatteryLevel(BleDevice device, byte[] nameSpaceAndDescription, UUID descriptorUuid, BleDevice.ReadWriteListener readWriteListener, boolean requiresBonding, BleTransaction txn_nullable, PE_TaskPriority priority) + { + super(device, Uuids.BATTERY_SERVICE_UUID, Uuids.BATTERY_LEVEL, readWriteListener, requiresBonding, txn_nullable, priority); + mValueToMatch = nameSpaceAndDescription; + mDescriptorUuid = descriptorUuid; + } + + @Override protected BleDevice.ReadWriteListener.ReadWriteEvent newReadWriteEvent(BleDevice.ReadWriteListener.Status status, int gattStatus, BleDevice.ReadWriteListener.Target target, UUID serviceUuid, UUID charUuid, UUID descUuid) + { + return new BleDevice.ReadWriteListener.ReadWriteEvent(getDevice(), serviceUuid, charUuid, descUuid, BleDevice.ReadWriteListener.Type.READ, target, BleDevice.EMPTY_BYTE_ARRAY, status, gattStatus, getTotalTime(), getTotalTimeExecuting(), true); + } + + @Override protected BleTask getTaskType() + { + return BleTask.READ; + } + + @Override public void update(double timeStep) + { + // We don't let the kick off bond event happen here, as it's not needed for this + } + + @Override public void execute() + { + super.execute(); + + // This task assumes there are multiple battery characteristics under the same battery service. In order to tell them apart, the bluetooth spec says to read + // the descriptors of said characteristics, and compare the namespace and description. So, we first get all battery chars, and put them into a list. Then we get + // the descriptor of the first item in the list, and try to read it. If the namespace and description match, we read that descriptor's characteristic for the battery level. + // If not, we move on to the next char, and read it's descriptor and resume the same process until we either find it, or don't. + + List<BluetoothGattCharacteristic> charList = getDevice().getNativeCharacteristics_List(getServiceUuid()); + batteryChars = new ArrayList<>(); + if (charList != null) + { + int size = charList.size(); + for (int i = 0; i < size; i++) + { + BluetoothGattCharacteristic ch = charList.get(i); + if (ch.getUuid().equals(getCharUuid())) + { + batteryChars.add(ch); + } + } + size = batteryChars.size(); + if (size == 0) + { + fail(BleDevice.ReadWriteListener.Status.NO_MATCHING_TARGET, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BleDevice.ReadWriteListener.Target.CHARACTERISTIC, Uuids.BATTERY_LEVEL, mDescriptorUuid); + } + final BluetoothGattCharacteristic ch = batteryChars.get(0); + final BluetoothGattDescriptor desc = ch.getDescriptor(mDescriptorUuid); + if (desc == null) + { + fail(BleDevice.ReadWriteListener.Status.NO_MATCHING_TARGET, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BleDevice.ReadWriteListener.Target.CHARACTERISTIC, Uuids.BATTERY_LEVEL, mDescriptorUuid); + } + else + { + if (!getDevice().getNativeGatt().readDescriptor(desc)) + { + fail(BleDevice.ReadWriteListener.Status.FAILED_TO_SEND_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BleDevice.ReadWriteListener.Target.DESCRIPTOR, ch.getUuid(), desc.getUuid()); + } + else + { + // Wait for the descriptor read callback + } + } + } + else + { + fail(BleDevice.ReadWriteListener.Status.NO_MATCHING_TARGET, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BleDevice.ReadWriteListener.Target.CHARACTERISTIC, Uuids.BATTERY_LEVEL, mDescriptorUuid); + } + } + + public void onCharacteristicRead(BluetoothGatt gatt, UUID uuid, byte[] value, int gattStatus) + { + getManager().ASSERT(gatt == getDevice().getNativeGatt()); + + if( false == this.isForCharacteristic(uuid) ) return; + + onCharacteristicOrDescriptorRead(gatt, uuid, value, gattStatus, BleDevice.ReadWriteListener.Type.READ); + } + + public void onDescriptorRead(BluetoothGattDescriptor desc, byte[] value, int gattStatus) + { + if (!batteryChars.contains(desc.getCharacteristic())) + { + return; + } + + if( Utils.isSuccess(gattStatus)) + { + boolean bothNull = value == null && mValueToMatch == null; + if (bothNull || Arrays.equals(value, mValueToMatch)) + { + if (false == getDevice().getNativeGatt().readCharacteristic(desc.getCharacteristic())) + { + fail(BleDevice.ReadWriteListener.Status.FAILED_TO_SEND_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BleDevice.ReadWriteListener.Target.DESCRIPTOR, desc.getCharacteristic().getUuid(), BleDevice.ReadWriteListener.ReadWriteEvent.NON_APPLICABLE_UUID); + } + else + { + // SUCCESS for now, must wait for callback to return + } + } + else + { + batteryChars.remove(desc.getCharacteristic()); + if (batteryChars.size() == 0) + { + fail(BleDevice.ReadWriteListener.Status.NO_MATCHING_TARGET, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BleDevice.ReadWriteListener.Target.DESCRIPTOR, desc.getCharacteristic().getUuid(), desc.getUuid()); + } + else + { + final BluetoothGattCharacteristic ch = batteryChars.get(0); + final BluetoothGattDescriptor descr = ch.getDescriptor(mDescriptorUuid); + if (!getDevice().getNativeGatt().readDescriptor(descr)) + { + fail(BleDevice.ReadWriteListener.Status.FAILED_TO_SEND_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BleDevice.ReadWriteListener.Target.DESCRIPTOR, ch.getUuid(), descr.getUuid()); + } + else + { + // SUCCESS for now until the descriptor read comes back, and we can compare it to the given namespaceanddescription + } + } + } + } + else + { + fail(BleDevice.ReadWriteListener.Status.REMOTE_GATT_FAILURE, gattStatus, getDefaultTarget(), getCharUuid(), getDescUuid()); + } + } + +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Bond.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Bond.java new file mode 100644 index 0000000000000000000000000000000000000000..21835d329e810c5013540c5c527402d1a6ab20f2 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Bond.java @@ -0,0 +1,194 @@ +package com.idevicesinc.sweetblue; + +import android.annotation.SuppressLint; +import android.bluetooth.BluetoothDevice; + +import com.idevicesinc.sweetblue.compat.K_Util; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Utils_Reflection; + +import java.lang.reflect.Method; + +class P_Task_Bond extends PA_Task_RequiresBleOn +{ + private static final String METHOD_NAME__CREATE_BOND = "createBond"; + + //--- DRK > Originally used because for tab 4 (and any other bonding failure during connection) we'd force disconnect from the connection failing + //--- and then put another bond task on the queue, but because we hadn't actually yet killed the transaction lock, the bond task would + //--- cut the unbond task in the queue. Not adding bonding task in the disconnect flow now though so this is probably useless for future use. + static enum E_TransactionLockBehavior + { + PASSES, + DOES_NOT_PASS; + } + + private final PE_TaskPriority m_priority; + private final boolean m_explicit; + private final boolean m_partOfConnection; + private final E_TransactionLockBehavior m_lockBehavior; + + private int m_failReason = BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE; + + public P_Task_Bond(BleDevice device, boolean explicit, boolean partOfConnection, I_StateListener listener, PE_TaskPriority priority, E_TransactionLockBehavior lockBehavior) + { + super(device, listener); + + m_priority = priority == null ? PE_TaskPriority.FOR_EXPLICIT_BONDING_AND_CONNECTING : priority; + m_explicit = explicit; + m_partOfConnection = partOfConnection; + m_lockBehavior = lockBehavior; + } + + public P_Task_Bond(BleDevice device, boolean explicit, boolean partOfConnection, I_StateListener listener, E_TransactionLockBehavior lockBehavior) + { + this(device, explicit, partOfConnection, listener, null, lockBehavior); + } + + @Override public boolean isExplicit() + { + return m_explicit; + } + + @SuppressLint("NewApi") + @Override public void execute() + { + //--- DRK > Commenting out this block for now because Android can lie and tell us we're bonded when we're actually not, + //--- so therefore we always try to force a bond regardless. Not sure if that actually forces + //--- Android to "come clean" about its actual bond status or not, but worth a try. + //--- UPDATE: No, it doesn't appear this works...Android lies even to itself, so commenting this back in. + if (getDevice().m_nativeWrapper.isNativelyBonded()) + { + getLogger().w("Already bonded!"); + + succeed(); + } + else + { + if (getDevice().m_nativeWrapper./*already*/isNativelyBonding()) + { + // nothing to do + } + else if (false == m_explicit) + { + // DRK > Fail cause we're not natively bonding and this task was implicit, meaning we should be implicitly bonding. + fail(); + } + else if (false == createBond()) + { + failImmediately(); + + getLogger().w("Bond failed immediately."); + } + } + } + + private boolean createBond() + { + final boolean useLeTransportForBonding = BleDeviceConfig.bool(getDevice().conf_device().useLeTransportForBonding, getDevice().conf_mngr().useLeTransportForBonding); + + if (useLeTransportForBonding) + { + final boolean theSneakyWayWorked = createBond_theSneakyWay(); + + if (theSneakyWayWorked == false) + { + return createBond_theNormalWay(); + } + else + { + return true; + } + } + else + { + return createBond_theNormalWay(); + } + } + + private boolean createBond_theNormalWay() + { + if (Utils.isKitKat()) + { + return K_Util.createBond(getDevice()); + } + else + { + m_failReason = BleStatuses.BOND_FAIL_REASON_NOT_AVAILABLE; + return false; + } + } + + private boolean createBond_theSneakyWay() + { + if (Utils.isKitKat()) + { + final Class[] paramTypes = new Class[]{int.class}; + + return Utils_Reflection.callBooleanReturnMethod(getDevice().getNative(), METHOD_NAME__CREATE_BOND, paramTypes, getManager().m_config.loggingEnabled, BluetoothDevice.TRANSPORT_LE); + } + else + { + return false; + } + } + + @Override public boolean isMoreImportantThan(PA_Task task) + { + if (task instanceof P_Task_TxnLock) + { + if (m_lockBehavior == E_TransactionLockBehavior.PASSES) + { + P_Task_TxnLock task_cast = (P_Task_TxnLock) task; + + if (this.getDevice() == task_cast.getDevice()) + { + return true; + } + } + } + + return super.isMoreImportantThan(task); + } + + public void onNativeFail(int failReason) + { + m_failReason = failReason; + + fail(); + } + + public int getFailReason() + { + return m_failReason; + } + + @Override public PE_TaskPriority getPriority() + { + return m_priority; + } + + @Override protected boolean isSoftlyCancellableBy(PA_Task task) + { + if (this.getDevice().equals(task.getDevice())) + { + if (task.getClass() == P_Task_Disconnect.class) + { + if (this.m_partOfConnection && this.getState() == PE_TaskState.EXECUTING) + { + return true; + } + } + else if (task.getClass() == P_Task_Unbond.class) + { + return true; + } + } + + return super.isSoftlyCancellableBy(task); + } + + @Override protected BleTask getTaskType() + { + return BleTask.BOND; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_BondPopupHack.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_BondPopupHack.java new file mode 100644 index 0000000000000000000000000000000000000000..f7d08926169c1ab82aa813b9b88fa2bf7bdd8785 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_BondPopupHack.java @@ -0,0 +1,50 @@ +package com.idevicesinc.sweetblue; + + +final class P_Task_BondPopupHack extends PA_Task_RequiresBleOn +{ + + private double scanTime = 0; + + + public P_Task_BondPopupHack(BleDevice device, I_StateListener listener) + { + super(device, listener); + } + + @Override protected BleTask getTaskType() + { + return BleTask.DISCOVER_SERVICES; + } + + @Override void execute() + { + getManager().getNativeAdapter().startDiscovery(); + } + + @Override protected void update(double timeStep) + { + super.update(timeStep); + scanTime += timeStep; + if (scanTime > 1) + { + getManager().getNativeAdapter().cancelDiscovery(); + succeed(); + } + } + + @Override protected void failWithoutRetry() + { + super.failWithoutRetry(); + P_Task_Bond bond = getManager().getTaskQueue().get(P_Task_Bond.class, getManager()); + if (bond != null) + { + bond.fail(); + } + } + + @Override public PE_TaskPriority getPriority() + { + return PE_TaskPriority.MEDIUM; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Connect.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Connect.java new file mode 100644 index 0000000000000000000000000000000000000000..3dcd9f99f1241243b9f2ce4b60e5f742b6d18ecb --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Connect.java @@ -0,0 +1,164 @@ +package com.idevicesinc.sweetblue; + +import com.idevicesinc.sweetblue.BleNode.ConnectionFailListener.AutoConnectUsage; +import com.idevicesinc.sweetblue.compat.M_Util; +import com.idevicesinc.sweetblue.utils.Utils; + +import android.bluetooth.BluetoothGatt; + +class P_Task_Connect extends PA_Task_RequiresBleOn +{ + private final PE_TaskPriority m_priority; + private final boolean m_explicit; + private int m_gattStatus = BleStatuses.GATT_STATUS_NOT_APPLICABLE; + private BluetoothGatt m_gatt = null; + + private AutoConnectUsage m_autoConnectUsage = AutoConnectUsage.UNKNOWN; + + public P_Task_Connect(BleDevice device, I_StateListener listener) + { + this(device, listener, true, null); + } + + public P_Task_Connect(BleDevice device, I_StateListener listener, boolean explicit, PE_TaskPriority priority) + { + super(device, listener); + + m_explicit = explicit; + m_priority = priority == null ? PE_TaskPriority.FOR_EXPLICIT_BONDING_AND_CONNECTING : priority; + } + + @Override public void execute() + { + if( getDevice().m_nativeWrapper.isNativelyConnected() ) + { + getLogger().w("Already connected!"); + + redundant(); + + return; + } + + if( getDevice().m_nativeWrapper./*already*/isNativelyConnecting() ) + { + // nothing to do + + return; + } + + getManager().ASSERT(!getDevice().m_nativeWrapper.isNativelyDisconnecting()); + + if( m_explicit ) + { + final boolean useAutoConnect = getDevice().shouldUseAutoConnect(); + + m_autoConnectUsage = useAutoConnect ? AutoConnectUsage.USED : AutoConnectUsage.NOT_USED; + + if (Utils.isMarshmallow()) + { + m_gatt = M_Util.connect(getDevice().getNative(), getManager().getApplicationContext(), getDevice().getListeners()); + } + else + { + m_gatt = getDevice().getNative().connectGatt(getDevice().getManager().getApplicationContext(), useAutoConnect, getDevice().getListeners()); + } + + if( m_gatt == null ) + { + failImmediately(); + } + else + { + //--- DRK > TODO: Don't really like this here...better would be if task listener handled this but I always + //--- want this gatt instance registered as soon as possible. + getDevice().m_nativeWrapper.updateGattInstance(getGatt()); + } + } + else + { + //--- DRK > Not sure why this fail() was here. Now commenting out. + //--- Beforehand we would get here if we added an implicit + //--- connection task in response to the "natively connecting" + //--- gatt callback (which rarely or never gets called) and by the time + //--- this task is executed the connection has failed or we got disconnected. + //--- In that case it doesn't make sense to fail again (even though listeners + //--- should be and currently are defensive about that case). +// this.fail(); + } + } + + public AutoConnectUsage getAutoConnectUsage() + { + return m_autoConnectUsage; + } + + public BluetoothGatt getGatt() + { + return m_gatt; + } + + @Override public boolean isExplicit() + { + return m_explicit; + } + + @Override public PE_TaskPriority getPriority() + { + return m_priority; + } + + public void onNativeFail(int gattStatus) + { + m_gattStatus = gattStatus; + + this.fail(); + } + + public int getGattStatus() + { + return m_gattStatus; + } + + @Override public boolean isCancellableBy(final PA_Task task) + { + if( task instanceof P_Task_Disconnect ) + { + final P_Task_Disconnect task_cast = (P_Task_Disconnect) task; + + if( task_cast.getDevice().equals(getDevice()) ) + { + //--- DRK > If an implicit disconnect comes in we have no choice but to bail. + //--- Otherwise we let the connection task run its course then we'll + //--- disconnect afterwards all nice and orderly-like. + if( !task_cast.isExplicit() ) + { + return true; + } + } + } + else if( task instanceof P_Task_TurnBleOff ) + { + return true; + } + + return super.isCancellableBy(task); + } + + @Override protected boolean isSoftlyCancellableBy(final PA_Task task) + { + if( task.getClass() == P_Task_Disconnect.class && this.getDevice().equals(task.getDevice()) ) + { + if( this.m_explicit ) + { + return true; + } + } + + return super.isSoftlyCancellableBy(task); + } + + @Override protected BleTask getTaskType() + { + return BleTask.CONNECT; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_ConnectServer.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_ConnectServer.java new file mode 100644 index 0000000000000000000000000000000000000000..f041fb48aeff993abe0229d636c5a7a4caf1bf9a --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_ConnectServer.java @@ -0,0 +1,151 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGattServer; + +class P_Task_ConnectServer extends PA_Task_ConnectOrDisconnectServer +{ + private BleServer.ConnectionFailListener.Status m_status = BleServer.ConnectionFailListener.Status.NULL; + + public P_Task_ConnectServer(BleServer server, BluetoothDevice nativeDevice, I_StateListener listener, boolean explicit, PE_TaskPriority priority) + { + super(server, nativeDevice, listener, explicit, priority); + } + + public BleServer.ConnectionFailListener.Status getStatus() + { + return m_status; + } + + @Override public void execute() + { + final BluetoothGattServer server_native_nullable = getServer().getNative(); + + if( server_native_nullable == null ) + { + if( !getServer().m_nativeWrapper.openServer() ) + { + m_status = BleServer.ConnectionFailListener.Status.SERVER_OPENING_FAILED; + + failImmediately(); + + return; + } + } + + final BluetoothGattServer server_native = getServer().getNative(); + + if( server_native /*still*/ == null ) + { + m_status = BleServer.ConnectionFailListener.Status.SERVER_OPENING_FAILED; + + failImmediately(); + + getManager().ASSERT(false, "Server should not be null after successfully opening!"); + } + else + { + if( getServer().m_nativeWrapper.isDisconnected(m_nativeDevice.getAddress()) ) + { + if( server_native.connect(m_nativeDevice, false) ) + { + // SUCCESS! At least, we will wait and see. + } + else + { + m_status = BleServer.ConnectionFailListener.Status.NATIVE_CONNECTION_FAILED_IMMEDIATELY; + + failImmediately(); + } + } + else + { + if( getServer().m_nativeWrapper.isDisconnecting(m_nativeDevice.getAddress()) ) + { + m_status = BleServer.ConnectionFailListener.Status.NATIVE_CONNECTION_FAILED_IMMEDIATELY; + + failImmediately(); + + getManager().ASSERT(false, "Server is currently disconnecting a client when we're trying to connect."); + } + else if( getServer().m_nativeWrapper.isConnecting(m_nativeDevice.getAddress()) ) + { + //--- DRK > We don't fail out, but this is a good sign that something's amiss upstream. + getManager().ASSERT(false, "Server is already connecting to the given client."); + } + else if( getServer().m_nativeWrapper.isConnected(m_nativeDevice.getAddress()) ) + { + m_status = BleServer.ConnectionFailListener.Status.ALREADY_CONNECTING_OR_CONNECTED; + + redundant(); + } + else + { + m_status = BleServer.ConnectionFailListener.Status.NATIVE_CONNECTION_FAILED_IMMEDIATELY; + + failImmediately(); + + getManager().ASSERT(false, "Native server state didn't match any expected values."); + } + } + } + } + + @Override public boolean isCancellableBy(PA_Task task) + { + if( task instanceof P_Task_DisconnectServer ) + { + if( task.getClass() == P_Task_DisconnectServer.class && this.getServer().equals(task.getServer()) ) + { + final P_Task_DisconnectServer task_cast = (P_Task_DisconnectServer) task; + + if( task_cast.m_nativeDevice.getAddress().equals(m_nativeDevice.getAddress()) ) + { + //--- DRK > If an implicit disconnect comes in we have no choice but to bail. + //--- Otherwise we let the connection task run its course then we'll + //--- disconnect afterwards all nice and orderly-like. + if( !task_cast.isExplicit() ) + { + return true; + } + } + } + } + else if( task instanceof P_Task_TurnBleOff ) + { + return true; + } + + return super.isCancellableBy(task); + } + + @Override protected boolean isSoftlyCancellableBy(PA_Task task) + { + if( task.getClass() == P_Task_DisconnectServer.class && this.getServer().equals(task.getServer()) ) + { + final P_Task_DisconnectServer task_cast = (P_Task_DisconnectServer) task; + + if( task_cast.m_nativeDevice.getAddress().equals(m_nativeDevice.getAddress()) ) + { + if( this.isExplicit() ) + { + return true; + } + } + } + + return super.isSoftlyCancellableBy(task); + } + + public void onNativeFail(final int gattStatus) + { + m_gattStatus = gattStatus; + + fail(); + } + + @Override protected BleTask getTaskType() + { + return BleTask.CONNECT_SERVER; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_CrashResolver.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_CrashResolver.java new file mode 100644 index 0000000000000000000000000000000000000000..87bbe605d35ffb08af4250f9196f5984b836261b --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_CrashResolver.java @@ -0,0 +1,100 @@ +package com.idevicesinc.sweetblue; + + +class P_Task_CrashResolver extends PA_Task_RequiresBleOn implements PA_Task.I_StateListener +{ + private final P_BluetoothCrashResolver m_resolver; + + private volatile boolean m_startedRecovery = false; + private final boolean m_partOfReset; + + public P_Task_CrashResolver(BleManager manager, P_BluetoothCrashResolver resolver, final boolean partOfReset) + { + super(manager, null); + + m_resolver = resolver; + m_partOfReset = partOfReset; + } + + public boolean isForReset() + { + return m_partOfReset; + } + + @Override public void execute() + { + if( true == m_resolver.isRecoveryInProgress() ) + { + getManager().ASSERT(false, "CrashResolver recovery already in progress!"); + + //--- DRK > Previously was just letting this task continuously spin if it's already running, + //--- but 99% of the time it means it won't ever stop so the task takes a while to timeout + //--- and doesn't do anything anyway. + fail(); + } + else + { + m_resolver.start(); + + getQueue().getExecuteHandler().post(new Runnable() + { + @Override public void run() + { + m_resolver.forceFlush(); + + m_startedRecovery = true; + } + }); + } + } + + @Override public boolean isCancellableBy(PA_Task task) + { + if( task instanceof P_Task_TurnBleOff ) + { + final P_Task_TurnBleOff task_cast = (P_Task_TurnBleOff) task; + + if( task_cast.isImplicit() || false == this.m_partOfReset ) + { + return true; + } + else + { + return false; + } + } + else + { + return super.isCancellableBy(task); + } + } + + @Override public PE_TaskPriority getPriority() + { + return PE_TaskPriority.CRITICAL; + } + + @Override protected void update(double timeStep) + { + if( getState() == PE_TaskState.EXECUTING && true == m_startedRecovery ) + { + if( false == m_resolver.isRecoveryInProgress() ) + { + succeed(); + } + } + } + + @Override protected BleTask getTaskType() + { + return BleTask.RESOLVE_CRASHES; + } + + @Override public void onStateChange(PA_Task task, PE_TaskState state) + { + if( state.isEndingState() ) + { + m_resolver.stop(); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Disconnect.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Disconnect.java new file mode 100644 index 0000000000000000000000000000000000000000..1cf0a9eb6a07b84e96b775eba86a1c040b4a8466 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Disconnect.java @@ -0,0 +1,133 @@ +package com.idevicesinc.sweetblue; + +class P_Task_Disconnect extends PA_Task_RequiresBleOn +{ + private final PE_TaskPriority m_priority; + private final boolean m_explicit; + private int m_gattStatus = BleStatuses.GATT_STATUS_NOT_APPLICABLE; + private final boolean m_cancellableByConnect; + private Integer m_overrideOrdinal = null; + + private final boolean m_saveLastDisconnect; + + public P_Task_Disconnect(BleDevice device, I_StateListener listener, boolean explicit, PE_TaskPriority priority, final boolean cancellableByConnect) + { + this(device, listener, explicit, priority, cancellableByConnect, false); + } + + public P_Task_Disconnect(BleDevice device, I_StateListener listener, boolean explicit, PE_TaskPriority priority, final boolean cancellableByConnect, final boolean saveLastDisconnect) + { + super(device, listener); + + m_saveLastDisconnect = saveLastDisconnect; + m_priority = priority == null ? PE_TaskPriority.FOR_EXPLICIT_BONDING_AND_CONNECTING : priority; + m_explicit = explicit; + + m_cancellableByConnect = cancellableByConnect; + } + + @Override int getOrdinal() + { + if( m_overrideOrdinal != null ) + { + return m_overrideOrdinal; + } + else + { + return super.getOrdinal(); + } + } + + public void setOverrideOrdinal(int ordinal) + { + m_overrideOrdinal = ordinal; + } + + @Override public boolean isExplicit() + { + return m_explicit; + } + + public boolean shouldSaveLastDisconnect() + { + return m_saveLastDisconnect; + } + + @Override public void execute() + { + if( !getDevice().m_nativeWrapper.isNativelyConnected() ) + { + getLogger().w("Already disconnected!"); + + redundant(); + + return; + } + + if( getDevice().getNativeGatt() == null ) + { + getLogger().w("Already disconnected and gatt==null!"); + + redundant(); + + return; + } + + if( getDevice().m_nativeWrapper./*already*/isNativelyDisconnecting() ) + { + // nothing to do + + return; + } + + if( m_explicit ) + { + getDevice().getNativeGatt().disconnect(); + } + else + { + // DRK > nothing to do...wait for implicit disconnect task to complete...note we're probably + // never going to get here cause I've never observed STATE_DISCONNECTING. + } + } + + public int getGattStatus() + { + return m_gattStatus; + } + + public void onNativeSuccess(int gattStatus) + { + m_gattStatus = gattStatus; + + succeed(); + } + + @Override public PE_TaskPriority getPriority() + { + return m_priority; + } + + boolean isCancellable() + { + return this.m_explicit && this.m_cancellableByConnect; + } + + @Override protected boolean isSoftlyCancellableBy(PA_Task task) + { + if( task.getClass() == P_Task_Connect.class && this.getDevice().equals(task.getDevice()) ) + { + if( isCancellable() ) + { + return true; + } + } + + return super.isSoftlyCancellableBy(task); + } + + @Override protected BleTask getTaskType() + { + return BleTask.DISCONNECT; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_DisconnectServer.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_DisconnectServer.java new file mode 100644 index 0000000000000000000000000000000000000000..c5048717bed00eadceafa74e8a6085f9a00d5a68 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_DisconnectServer.java @@ -0,0 +1,84 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGattServer; + +class P_Task_DisconnectServer extends PA_Task_ConnectOrDisconnectServer +{ + public P_Task_DisconnectServer(final BleServer server, final BluetoothDevice nativeDevice, final I_StateListener listener, final boolean explicit, PE_TaskPriority priority) + { + super( server, nativeDevice, listener, explicit, priority ); + } + + @Override void execute() + { + final BluetoothGattServer server_native = getServer().getNative(); + + if( server_native == null ) + { + failImmediately(); + + getManager().ASSERT(false, "Tried to disconnect client from server but native server is null."); + } + else + { + if( getServer().m_nativeWrapper.isDisconnected(m_nativeDevice.getAddress()) ) + { + redundant(); + } + else if( getServer().m_nativeWrapper.isConnecting(m_nativeDevice.getAddress()) ) + { + failImmediately(); + + getManager().ASSERT(false, "Server is currently connecting a client when we're trying to disconnect."); + } + else if( getServer().m_nativeWrapper.isDisconnecting(m_nativeDevice.getAddress()) ) + { + //--- DRK > We don't fail out, but this is a good sign that something's amiss upstream. + getManager().ASSERT(false, "Server is already disconnecting from the given client."); + } + else if( getServer().m_nativeWrapper.isConnected(m_nativeDevice.getAddress()) ) + { + server_native.cancelConnection(m_nativeDevice); + + // SUCCESS! + } + else + { + failImmediately(); + + getManager().ASSERT(false, "Native server state didn't match any expected values."); + } + } + } + + public void onNativeSuccess(int gattStatus) + { + m_gattStatus = gattStatus; + + succeed(); + } + + @Override protected BleTask getTaskType() + { + return BleTask.DISCONNECT_SERVER; + } + + @Override protected boolean isSoftlyCancellableBy(PA_Task task) + { + if( task.getClass() == P_Task_ConnectServer.class && this.getServer().equals(task.getServer()) ) + { + final P_Task_ConnectServer task_cast = (P_Task_ConnectServer) task; + + if( task_cast.m_nativeDevice.getAddress().equals(m_nativeDevice.getAddress()) ) + { + //if( isCancellable() ) + { + return true; + } + } + } + + return super.isSoftlyCancellableBy(task); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_DiscoverServices.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_DiscoverServices.java new file mode 100644 index 0000000000000000000000000000000000000000..5776f49f1574adf8f8a9326663308f8d88a97b32 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_DiscoverServices.java @@ -0,0 +1,75 @@ +package com.idevicesinc.sweetblue; + +import java.lang.reflect.Method; + +import com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOh; + +class P_Task_DiscoverServices extends PA_Task_RequiresConnection +{ + private int m_gattStatus = BleStatuses.GATT_STATUS_NOT_APPLICABLE; + + public P_Task_DiscoverServices(BleDevice bleDevice, I_StateListener listener) + { + super(bleDevice, listener); + } + + @Override public void execute() + { +// if( !getDevice().getNativeGatt().getServices().isEmpty() ) + { + final boolean useRefresh = BleDeviceConfig.bool(getDevice().conf_device().useGattRefresh, getDevice().conf_mngr().useGattRefresh); + + if( useRefresh ) + { + refresh(); + } + } + + if( !getDevice().getNativeGatt().discoverServices() ) + { + failImmediately(); + + getManager().uhOh(UhOh.SERVICE_DISCOVERY_IMMEDIATELY_FAILED); + } + } + + private void refresh() + { + try + { + Method method = getDevice().getNativeGatt().getClass().getMethod("refresh", (Class[]) null); + Boolean result = (Boolean) method.invoke(getDevice().getNativeGatt(), (Object[]) null); + + if( result == null || !result ) + { +// failImmediately(); + } + } + catch (Exception e) + { +// fail(); + } + } + + @Override public PE_TaskPriority getPriority() + { + return PE_TaskPriority.MEDIUM; + } + + public void onNativeFail(int gattStatus) + { + m_gattStatus = gattStatus; + + this.fail(); + } + + public int getGattStatus() + { + return m_gattStatus; + } + + @Override protected BleTask getTaskType() + { + return BleTask.DISCOVER_SERVICES; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_ExecuteReliableWrite.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_ExecuteReliableWrite.java new file mode 100644 index 0000000000000000000000000000000000000000..be1710ab4777f564ad7576b376603e883134e583 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_ExecuteReliableWrite.java @@ -0,0 +1,93 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothGatt; + +import com.idevicesinc.sweetblue.utils.Utils; + +class P_Task_ExecuteReliableWrite extends PA_Task_RequiresConnection implements PA_Task.I_StateListener +{ + private final PE_TaskPriority m_priority; + private final BleDevice.ReadWriteListener m_listener; + + public P_Task_ExecuteReliableWrite(BleDevice device, BleDevice.ReadWriteListener listener, PE_TaskPriority priority) + { + super(device, null); + + m_priority = priority; + m_listener = listener; + } + + private BleDevice.ReadWriteListener.ReadWriteEvent newEvent(final BleDevice.ReadWriteListener.Status status, final int gattStatus, final boolean solicited) + { + return getDevice().m_reliableWriteMngr.newEvent(status, gattStatus, solicited); + } + + private void invokeListeners(final BleDevice.ReadWriteListener.Status status, final int gattStatus) + { + final BleDevice.ReadWriteListener.ReadWriteEvent event = newEvent(BleDevice.ReadWriteListener.Status.NOT_CONNECTED, gattStatus, /*solicited=*/true); + + getDevice().invokeReadWriteCallback(m_listener, event); + } + + @Override protected void onNotExecutable() + { + super.onNotExecutable(); + + invokeListeners(BleDevice.ReadWriteListener.Status.NOT_CONNECTED, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + + @Override protected BleTask getTaskType() + { + return BleTask.RELIABLE_WRITE; + } + + @Override void execute() + { + if( false == getDevice().getNativeGatt().executeReliableWrite() ) + { + fail(BleDevice.ReadWriteListener.Status.FAILED_TO_SEND_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + else + { + // SUCCESS, so far + } + } + + public void onReliableWriteCompleted(final BluetoothGatt gatt, final int gattStatus) + { + if( Utils.isSuccess(gattStatus) ) + { + succeed(); + + invokeListeners(BleDevice.ReadWriteListener.Status.SUCCESS, gattStatus); + } + else + { + fail(BleDevice.ReadWriteListener.Status.REMOTE_GATT_FAILURE, gattStatus); + } + } + + private void fail(final BleDevice.ReadWriteListener.Status status, final int gattStatus) + { + super.fail(); + + invokeListeners(BleDevice.ReadWriteListener.Status.REMOTE_GATT_FAILURE, gattStatus); + } + + @Override public PE_TaskPriority getPriority() + { + return m_priority; + } + + @Override public void onStateChange(PA_Task task, PE_TaskState state) + { + if( state == PE_TaskState.TIMED_OUT ) + { + getDevice().invokeReadWriteCallback(m_listener, newEvent(BleDevice.ReadWriteListener.Status.TIMED_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE, /*solicited=*/true)); + } + else if( state == PE_TaskState.SOFTLY_CANCELLED ) + { + getDevice().invokeReadWriteCallback(m_listener, newEvent(getCancelType(), BleStatuses.GATT_STATUS_NOT_APPLICABLE, /*solicited=*/true)); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Read.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Read.java new file mode 100644 index 0000000000000000000000000000000000000000..859a268c26c01b271ad29cb6e394dd6e0a26eaf1 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Read.java @@ -0,0 +1,88 @@ +package com.idevicesinc.sweetblue; + +import java.util.UUID; + +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCharacteristic; + +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Target; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Type; +import com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOh; + +class P_Task_Read extends PA_Task_ReadOrWrite +{ + private final Type m_type; + + public P_Task_Read(BleDevice device, BluetoothGattCharacteristic characteristic, Type type, boolean requiresBonding, ReadWriteListener readListener, BleTransaction txn, PE_TaskPriority priority) + { + super(device, characteristic, readListener, requiresBonding, txn, priority); + + m_type = type; + } + + @Override protected ReadWriteEvent newReadWriteEvent(Status status, int gattStatus, Target target, UUID serviceUuid, UUID charUuid, UUID descUuid) + { + return new ReadWriteEvent(getDevice(), serviceUuid, charUuid, descUuid, m_type, target, null, status, gattStatus, getTotalTime(), getTotalTimeExecuting(), /*solicited=*/true); + } + + @Override public void execute() + { + super.execute(); + + final BluetoothGattCharacteristic char_native = getDevice().getNativeCharacteristic(getServiceUuid(), getCharUuid()); + + if( char_native == null ) + { + fail(Status.NO_MATCHING_TARGET, BleStatuses.GATT_STATUS_NOT_APPLICABLE, getDefaultTarget(), getCharUuid(), ReadWriteEvent.NON_APPLICABLE_UUID); + } + else + { + if( false == getDevice().getNativeGatt().readCharacteristic(char_native) ) + { + fail(Status.FAILED_TO_SEND_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE, getDefaultTarget(), getCharUuid(), ReadWriteEvent.NON_APPLICABLE_UUID); + } + else + { + // DRK > SUCCESS, for now... + } + } + } + + public void onCharacteristicRead(BluetoothGatt gatt, UUID uuid, byte[] value, int gattStatus) + { + getManager().ASSERT(gatt == getDevice().getNativeGatt()); + + if( false == this.isForCharacteristic(uuid) ) return; + + onCharacteristicOrDescriptorRead(gatt, uuid, value, gattStatus, m_type); + } + + @Override public void onStateChange(PA_Task task, PE_TaskState state) + { + super.onStateChange(task, state); + + if( state == PE_TaskState.TIMED_OUT ) + { + getLogger().w(getLogger().charName(getCharUuid()) + " read timed out!"); + + final ReadWriteEvent event = newReadWriteEvent(Status.TIMED_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE, getDefaultTarget(), getServiceUuid(), getCharUuid(), ReadWriteEvent.NON_APPLICABLE_UUID); + + getDevice().invokeReadWriteCallback(m_readWriteListener, event); + + getManager().uhOh(UhOh.READ_TIMED_OUT); + } + else if( state == PE_TaskState.SOFTLY_CANCELLED ) + { + final ReadWriteEvent event = newReadWriteEvent(getCancelType(), BleStatuses.GATT_STATUS_NOT_APPLICABLE, getDefaultTarget(), getServiceUuid(), getCharUuid(), ReadWriteEvent.NON_APPLICABLE_UUID); + getDevice().invokeReadWriteCallback(m_readWriteListener, event); + } + } + + @Override protected BleTask getTaskType() + { + return BleTask.READ; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_ReadDescriptor.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_ReadDescriptor.java new file mode 100644 index 0000000000000000000000000000000000000000..e28af109eeee5eda7808a7ce6b6c57b2b3108451 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_ReadDescriptor.java @@ -0,0 +1,99 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattDescriptor; + +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Target; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Type; +import com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOh; + +import java.util.UUID; + +class P_Task_ReadDescriptor extends PA_Task_ReadOrWrite +{ + private final Type m_type; + private final UUID m_descriptorUuid; + + public P_Task_ReadDescriptor(BleDevice device, BluetoothGattDescriptor descriptor, Type type, boolean requiresBonding, ReadWriteListener readListener, BleTransaction txn, PE_TaskPriority priority) + { + super(device, descriptor.getCharacteristic(), readListener, requiresBonding, txn, priority); + + m_type = type; + m_descriptorUuid = descriptor.getUuid(); + } + + @Override protected ReadWriteEvent newReadWriteEvent(Status status, int gattStatus, Target target, UUID serviceUuid, UUID charUuid, UUID descUuid) + { + return new ReadWriteEvent(getDevice(), serviceUuid, charUuid, descUuid, m_type, target, null, status, gattStatus, getTotalTime(), getTotalTimeExecuting(), /*solicited=*/true); + } + + @Override protected UUID getDescUuid() + { + return m_descriptorUuid; + } + + @Override protected Target getDefaultTarget() + { + return Target.DESCRIPTOR; + } + + @Override public void execute() + { + super.execute(); + + final BluetoothGattDescriptor desc_native = getDevice().getNativeDescriptor(getServiceUuid(), getCharUuid(), getDescUuid()); + + if( desc_native == null ) + { + fail(Status.NO_MATCHING_TARGET, BleStatuses.GATT_STATUS_NOT_APPLICABLE, Target.DESCRIPTOR, getCharUuid(), getDescUuid()); + } + else + { + if( false == getDevice().getNativeGatt().readDescriptor(desc_native) ) + { + fail(Status.FAILED_TO_SEND_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE, Target.DESCRIPTOR, getCharUuid(), getDescUuid()); + } + else + { + // DRK > SUCCESS, for now... + } + } + } + + public void onDescriptorRead(BluetoothGatt gatt, UUID uuid, byte[] value, int gattStatus) + { + getManager().ASSERT(gatt == getDevice().getNativeGatt()); + + onCharacteristicOrDescriptorRead(gatt, uuid, value, gattStatus, m_type); + } + + @Override public void onStateChange(PA_Task task, PE_TaskState state) + { + super.onStateChange(task, state); + + if( state == PE_TaskState.TIMED_OUT ) + { + getLogger().w(getLogger().descriptorName(getDescUuid()) + " read timed out!"); + + final ReadWriteEvent event = newReadWriteEvent(Status.TIMED_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE, Target.DESCRIPTOR, getServiceUuid(), getCharUuid(), getDescUuid()); + + getDevice().invokeReadWriteCallback(m_readWriteListener, event); + + getManager().uhOh(UhOh.READ_TIMED_OUT); + } + else if( state == PE_TaskState.SOFTLY_CANCELLED ) + { + final ReadWriteEvent event = newReadWriteEvent(getCancelType(), BleStatuses.GATT_STATUS_NOT_APPLICABLE, Target.DESCRIPTOR, getServiceUuid(), getCharUuid(), getDescUuid()); + getDevice().invokeReadWriteCallback(m_readWriteListener, event); + } + } + + @Override protected BleTask getTaskType() + { + return BleTask.READ_DESCRIPTOR; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_ReadRssi.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_ReadRssi.java new file mode 100644 index 0000000000000000000000000000000000000000..e756855aab452474c6a77a439799569754a1bcd5 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_ReadRssi.java @@ -0,0 +1,98 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothGatt; + +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Type; +import com.idevicesinc.sweetblue.utils.Utils; + +/** + * + * + */ +class P_Task_ReadRssi extends PA_Task_Transactionable implements PA_Task.I_StateListener +{ + protected final BleDevice.ReadWriteListener m_readWriteListener; + private final Type m_type; + + public P_Task_ReadRssi(BleDevice device, BleDevice.ReadWriteListener readWriteListener, BleTransaction txn_nullable, PE_TaskPriority priority, Type type) + { + super(device, txn_nullable, false, priority); + + m_readWriteListener = readWriteListener; + + m_type = type; + } + + private ReadWriteEvent newEvent(Status status, int gattStatus, int rssi) + { + return new ReadWriteEvent(getDevice(), m_type, /*rssi=*/rssi, status, gattStatus, getTotalTime(), getTotalTimeExecuting(), /*solicited=*/true); + } + + @Override protected void onNotExecutable() + { + super.onNotExecutable(); + + getDevice().invokeReadWriteCallback(m_readWriteListener, newEvent(Status.NOT_CONNECTED, BleStatuses.GATT_STATUS_NOT_APPLICABLE, 0)); + } + + private void fail(Status status, int gattStatus) + { + this.fail(); + + getDevice().invokeReadWriteCallback(m_readWriteListener, newEvent(status, gattStatus, 0)); + } + + @Override public void execute() + { + if( false == getDevice().getNativeGatt().readRemoteRssi() ) + { + fail(Status.FAILED_TO_SEND_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + else + { + // SUCCESS, so far... + } + } + + private void succeed(int gattStatus, int rssi) + { + super.succeed(); + + final ReadWriteEvent event = newEvent(Status.SUCCESS, gattStatus, rssi); + + getDevice().invokeReadWriteCallback(m_readWriteListener, event); + } + + public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status) + { + getManager().ASSERT(gatt == getDevice().getNativeGatt()); + + if( Utils.isSuccess(status) ) + { + succeed(status, rssi); + } + else + { + fail(Status.REMOTE_GATT_FAILURE, status); + } + } + + @Override public void onStateChange(PA_Task task, PE_TaskState state) + { + if( state == PE_TaskState.TIMED_OUT ) + { + getDevice().invokeReadWriteCallback(m_readWriteListener, newEvent(Status.TIMED_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE, 0)); + } + else if( state == PE_TaskState.SOFTLY_CANCELLED ) + { + getDevice().invokeReadWriteCallback(m_readWriteListener, newEvent(getCancelType(), BleStatuses.GATT_STATUS_NOT_APPLICABLE, 0)); + } + } + + @Override protected BleTask getTaskType() + { + return BleTask.READ_RSSI; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_RequestConnectionPriority.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_RequestConnectionPriority.java new file mode 100644 index 0000000000000000000000000000000000000000..e20451c8ea8b8b3af381e5c0f2ad4f547bd5e846 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_RequestConnectionPriority.java @@ -0,0 +1,101 @@ +package com.idevicesinc.sweetblue; + + +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status; +import com.idevicesinc.sweetblue.compat.L_Util; +import com.idevicesinc.sweetblue.utils.Utils; + + +class P_Task_RequestConnectionPriority extends PA_Task_Transactionable implements PA_Task.I_StateListener +{ + protected final BleDevice.ReadWriteListener m_readWriteListener; + private final BleConnectionPriority m_connectionPriority; + + public P_Task_RequestConnectionPriority(BleDevice device, BleDevice.ReadWriteListener readWriteListener, BleTransaction txn_nullable, PE_TaskPriority priority, final BleConnectionPriority connectionPriority) + { + super(device, txn_nullable, false, priority); + + m_readWriteListener = readWriteListener; + m_connectionPriority = connectionPriority; + } + + private ReadWriteEvent newEvent(final Status status, final int gattStatus, final BleConnectionPriority connectionPriority) + { + return new ReadWriteEvent(getDevice(), /*connectionPriority=*/connectionPriority, status, gattStatus, getTotalTime(), getTotalTimeExecuting(), /*solicited=*/true); + } + + @Override protected void onNotExecutable() + { + super.onNotExecutable(); + + getDevice().invokeReadWriteCallback(m_readWriteListener, newEvent(Status.NOT_CONNECTED, BleStatuses.GATT_STATUS_NOT_APPLICABLE, m_connectionPriority)); + } + + private void fail(Status status, int gattStatus) + { + this.fail(); + + getDevice().invokeReadWriteCallback(m_readWriteListener, newEvent(status, gattStatus, m_connectionPriority)); + } + + @Override public void execute() + { + if( Utils.isLollipop() ) + { + if( false == L_Util.requestConnectionPriority(getDevice(), m_connectionPriority.getNativeMode()) ) + { + fail(Status.FAILED_TO_SEND_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + else + { + // SUCCESS, and we'll wait a half second or so (for now hardcoded) until actually succeeding, cause there's no native callback for this one. + } + } + else + { + //--- DRK > Should be checked for before the task is even created but just being anal. + fail(Status.ANDROID_VERSION_NOT_SUPPORTED, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + } + + @Override protected void update(double timeStep) + { + final double timeToSuccess = .25d; //TODO + + if( getState() == PE_TaskState.EXECUTING && getTotalTimeExecuting() >= timeToSuccess ) + { + succeed(m_connectionPriority); + } + } + + private void succeed(final BleConnectionPriority connectionPriority) + { + super.succeed(); + + final ReadWriteEvent event = newEvent(Status.SUCCESS, BleStatuses.GATT_SUCCESS, connectionPriority); + + getDevice().invokeReadWriteCallback(m_readWriteListener, event); + } + + @Override public void onStateChange(PA_Task task, PE_TaskState state) + { + if( state == PE_TaskState.TIMED_OUT ) + { + getDevice().invokeReadWriteCallback(m_readWriteListener, newEvent(Status.TIMED_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE, m_connectionPriority)); + } + else if( state == PE_TaskState.SOFTLY_CANCELLED ) + { + getDevice().invokeReadWriteCallback(m_readWriteListener, newEvent(getCancelType(), BleStatuses.GATT_STATUS_NOT_APPLICABLE, m_connectionPriority)); + } + else if( state == PE_TaskState.SUCCEEDED ) + { + getDevice().updateConnectionPriority(m_connectionPriority); + } + } + + @Override protected BleTask getTaskType() + { + return BleTask.SET_CONNECTION_PRIORITY; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_RequestMtu.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_RequestMtu.java new file mode 100644 index 0000000000000000000000000000000000000000..5369d8e8baeefe057beda43b8e201423ab5287d3 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_RequestMtu.java @@ -0,0 +1,101 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothGatt; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status; +import com.idevicesinc.sweetblue.compat.L_Util; +import com.idevicesinc.sweetblue.utils.Utils; + + +class P_Task_RequestMtu extends PA_Task_Transactionable implements PA_Task.I_StateListener +{ + protected final BleDevice.ReadWriteListener m_readWriteListener; + private final int m_mtu; + + public P_Task_RequestMtu(BleDevice device, BleDevice.ReadWriteListener readWriteListener, BleTransaction txn_nullable, PE_TaskPriority priority, final int mtu) + { + super(device, txn_nullable, false, priority); + + m_readWriteListener = readWriteListener; + m_mtu = mtu; + } + + private ReadWriteEvent newEvent(Status status, int gattStatus, int mtu) + { + return new ReadWriteEvent(getDevice(), /*mtu=*/mtu, status, gattStatus, getTotalTime(), getTotalTimeExecuting(), /*solicited=*/true); + } + + @Override protected void onNotExecutable() + { + super.onNotExecutable(); + + getDevice().invokeReadWriteCallback(m_readWriteListener, newEvent(Status.NOT_CONNECTED, BleStatuses.GATT_STATUS_NOT_APPLICABLE, 0)); + } + + private void fail(Status status, int gattStatus) + { + this.fail(); + + getDevice().invokeReadWriteCallback(m_readWriteListener, newEvent(status, gattStatus, 0)); + } + + @Override public void execute() + { + if( Utils.isLollipop() ) + { + if( false == L_Util.requestMtu(getDevice(), m_mtu)) + { + fail(Status.FAILED_TO_SEND_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + else + { + // SUCCESS, so far... + } + } + else + { + //--- DRK > Should be checked for before the task is even created but just being anal. + fail(Status.ANDROID_VERSION_NOT_SUPPORTED, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + } + + private void succeed(int gattStatus, int mtu) + { + super.succeed(); + + final ReadWriteEvent event = newEvent(Status.SUCCESS, gattStatus, mtu); + + getDevice().invokeReadWriteCallback(m_readWriteListener, event); + } + + public void onMtuChanged(BluetoothGatt gatt, int mtu, int gattStatus) + { + getManager().ASSERT(gatt == getDevice().getNativeGatt()); + + if( Utils.isSuccess(gattStatus) ) + { + succeed(gattStatus, mtu); + } + else + { + fail(Status.REMOTE_GATT_FAILURE, gattStatus); + } + } + + @Override public void onStateChange(PA_Task task, PE_TaskState state) + { + if( state == PE_TaskState.TIMED_OUT ) + { + getDevice().invokeReadWriteCallback(m_readWriteListener, newEvent(Status.TIMED_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE, 0)); + } + else if( state == PE_TaskState.SOFTLY_CANCELLED ) + { + getDevice().invokeReadWriteCallback(m_readWriteListener, newEvent(getCancelType(), BleStatuses.GATT_STATUS_NOT_APPLICABLE, 0)); + } + } + + @Override protected BleTask getTaskType() + { + return BleTask.SET_MTU; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Scan.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Scan.java new file mode 100644 index 0000000000000000000000000000000000000000..14fdeb13dca75a7829ab116eb7068766f729c979 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Scan.java @@ -0,0 +1,572 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.le.ScanSettings; +import com.idevicesinc.sweetblue.PA_StateTracker.E_Intent; +import com.idevicesinc.sweetblue.compat.L_Util; +import com.idevicesinc.sweetblue.compat.M_Util; +import com.idevicesinc.sweetblue.utils.Interval; +import com.idevicesinc.sweetblue.utils.Utils; +import java.util.List; + + +class P_Task_Scan extends PA_Task_RequiresBleOn +{ + static final int Mode_NULL = -1; + static final int Mode_BLE = 0; + static final int Mode_CLASSIC = 1; + + private static final int CallbackType_UNKNOWN = -1; + + private int m_mode = Mode_NULL; + + //TODO + private final boolean m_explicit = true; + private final boolean m_isPoll; + private final double m_scanTime; + + private final int m_retryCountMax = 3; + + private final L_Util.ScanCallback m_scanCallback_postLollipop = new L_Util.ScanCallback() + { + + // Taken from android source. + public static final int SCAN_FAILED_ALREADY_STARTED = 1; + + @Override public void onScanResult(final int callbackType, final L_Util.ScanResult result) + { + if( getManager().getUpdateLoop().postNeeded() ) + { + getManager().getUpdateLoop().postIfNeeded(new Runnable() + { + @Override public void run() + { + onScanResult_mainThread(callbackType, result); + } + }); + } + else + { + onScanResult_mainThread(callbackType, result); + } + } + + private void onScanResult_mainThread(final int callbackType, final L_Util.ScanResult result) + { + getManager().m_stateTracker.remove(BleManagerState.STARTING_SCAN, E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + getManager().m_stateTracker.append(BleManagerState.SCANNING, getIntent(), BleStatuses.GATT_STATUS_NOT_APPLICABLE); + + getManager().onDiscoveredFromNativeStack(result.getDevice(), result.getRssi(), result.getRecord()); + } + + @Override public void onBatchScanResults(final List<L_Util.ScanResult> results) + { + if( getManager().getUpdateLoop().postNeeded() ) + { + getManager().getUpdateLoop().postIfNeeded(new Runnable() + { + @Override public void run() + { + onBatchScanResults_mainThread(results); + } + }); + } + else + { + onBatchScanResults_mainThread(results); + } + } + + private void onBatchScanResults_mainThread(final List<L_Util.ScanResult> results) + { + if( results != null ) + { + for( int i = 0; i < results.size(); i++ ) + { + final L_Util.ScanResult result_ith = results.get(i); + + if( result_ith != null ) + { + onScanResult_mainThread(CallbackType_UNKNOWN, result_ith); + } + } + } + } + + @Override public void onScanFailed(final int errorCode) + { + if( getManager().getUpdateLoop().postNeeded() ) + { + getManager().getUpdateLoop().postIfNeeded(new Runnable() + { + @Override public void run() + { + onScanFailed_mainThread(errorCode); + } + }); + } + else + { + onScanFailed_mainThread(errorCode); + } + } + + private void onScanFailed_mainThread(final int errorCode) + { + if( errorCode != SCAN_FAILED_ALREADY_STARTED ) + { + fail(); + } + else + { + tryClassicDiscovery(getIntent(), /*suppressUhOh=*/false); + + m_mode = Mode_CLASSIC; + } + } + }; + + public P_Task_Scan(BleManager manager, I_StateListener listener, double scanTime, boolean isPoll) + { + super(manager, listener); + + m_scanTime = scanTime; + m_isPoll = isPoll; + } + + public E_Intent getIntent() + { + return m_explicit ? E_Intent.INTENTIONAL : E_Intent.UNINTENTIONAL; + } + + public L_Util.ScanCallback getScanCallback_postLollipop() + { + return m_scanCallback_postLollipop; + } + + @Override protected double getInitialTimeout() + { + return m_scanTime; + } + + @Override public void execute() + { + //--- DRK > Because scanning has to be done on a separate thread, isExecutable() can return true + //--- but then by the time we get here it can be false. isExecutable() is currently not thread-safe + //--- either, thus we're doing the manual check in the native stack. Before 5.0 the scan would just fail + //--- so we'd fail as we do below, but Android 5.0 makes this an exception for at least some phones (OnePlus One (A0001)). + if( false == isBluetoothEnabled() ) + { + fail(); + } + else + { + if( false == isLocationEnabledForScanning() ) + { + if( true == isLocationEnabledForScanning_byRuntimePermissions() && false == isLocationEnabledForScanning_byOsServices() ) + { + //--- DRK > Classic discovery still seems to work as long as we have permissions. + //--- In other words if location services are off we can still do classic scanning. + execute_classic(); + } + else + { + //--- DRK > Most likely won't return anything, but doesn't hurt to try...if (when) there's a bug in the OS we'll still get scan results + //-- even though we're not supposed to. + execute_locationEnabledFlow(); + } + } + else + { + execute_locationEnabledFlow(); + } + } + } + + private boolean isLocationEnabledForScanning_byOsServices() + { + return getManager().isLocationEnabledForScanning_byOsServices(); + } + + private boolean isLocationEnabledForScanning_byRuntimePermissions() + { + return getManager().isLocationEnabledForScanning_byRuntimePermissions(); + } + + private boolean isLocationEnabledForScanning() + { + return getManager().isLocationEnabledForScanning(); + } + + private boolean isBluetoothEnabled() + { + return getManager().isBluetoothEnabled(); + } + + private void execute_locationEnabledFlow() + { + final boolean forcePreLollipopScan = getManager().m_config.forcePreLollipopScan; + + //--- DRK > This config option is deprecated, but it still needs to take precedence for backwards compatibility until v3. + if( forcePreLollipopScan ) + { + execute_preLollipop(); + } + else + { + final BleScanMode scanMode = getManager().m_config.scanMode != null ? getManager().m_config.scanMode : BleScanMode.AUTO; + + if( scanMode == BleScanMode.AUTO ) + { + // Hard coding this to true for now. From what we've seen, the pre-Lollipop scanning API + // works better than the post API. So, we'll default to the preLollipop scanning API when + // using auto mode (this way, if the user wants to use the newer API, they can). + // See https://code.google.com/p/android/issues/detail?id=82463 for more info + final boolean isPhonePreLollipop = true; + //final boolean isPhonePreLollipop = false == Utils.isLollipop(); + + if( isPhonePreLollipop ) + { + execute_preLollipop(); + } + else + { + execute_postLollipop(false); + } + } + else if( scanMode == BleScanMode.CLASSIC ) + { + execute_classic(); + } + else if( scanMode == BleScanMode.PRE_LOLLIPOP ) + { + execute_preLollipop(); + } + else if( scanMode == BleScanMode.POST_LOLLIPOP ) + { + if (Utils.isLollipop()) + { + execute_postLollipop(false); + } + else + { + execute_preLollipop(); + } + } + else if( scanMode.isLollipopScanMode() ) + { + // TODO - Remove this log statement in v3 + getLogger().w("It looks like you're using a deprecated BleScanMode. This will be removed in v3. The deprecated options have moved to BleScanPower."); + if (Utils.isLollipop()) + { + execute_postLollipop(true); + } + else + { + execute_preLollipop(); + } + } + else + { + getManager().ASSERT(false, "Unhandled BleScanMode: " + scanMode); + } + } + } + + private void execute_classic() + { + BleManagerState.SCANNING.setScanMode(BleScanMode.CLASSIC); + getManager().m_stateTracker.remove(BleManagerState.STARTING_SCAN, E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + getManager().m_stateTracker.append(BleManagerState.SCANNING, getIntent(), BleStatuses.GATT_STATUS_NOT_APPLICABLE); + tryClassicDiscovery(getIntent(), /*suppressUhOh=*/true); + + m_mode = Mode_CLASSIC; + } + + private void execute_preLollipop() + { + BleManagerState.SCANNING.setScanMode(BleScanMode.PRE_LOLLIPOP); + getManager().m_stateTracker.remove(BleManagerState.STARTING_SCAN, E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + getManager().m_stateTracker.append(BleManagerState.SCANNING, getIntent(), BleStatuses.GATT_STATUS_NOT_APPLICABLE); + m_mode = startNativeScan_preLollipop(getIntent()); + + if( m_mode == Mode_NULL ) + { + fail(); + } + } + + // TODO - Remove boolean argument in v3 + private void execute_postLollipop(boolean usingDeprecatedMode) + { + BleManagerState.SCANNING.setScanMode(BleScanMode.AUTO); + m_mode = Mode_BLE; + + startNativeScan_postLollipop(usingDeprecatedMode); + } + + // TODO - Remove boolean argument in v3 + private void startNativeScan_postLollipop(boolean usingDeprecatedMode) + { + final BleScanMode scanMode_abstracted = getManager().m_config.scanMode; + final BleScanPower scanPower_abstracted = getManager().m_config.scanPower; + + final int scanMode; + + if (usingDeprecatedMode) + { + BleManagerState.SCANNING.setPower(BleScanPower.fromBleScanMode(scanMode_abstracted)); + scanMode = scanMode_abstracted.getNativeMode(); + } + else + { + if (scanPower_abstracted == null || scanPower_abstracted == BleScanPower.AUTO) + { + if (getManager().isForegrounded()) + { + if (m_isPoll || m_scanTime == Double.POSITIVE_INFINITY) + { + BleManagerState.SCANNING.setPower(BleScanPower.MEDIUM_POWER); + scanMode = ScanSettings.SCAN_MODE_BALANCED; + } + else + { + BleManagerState.SCANNING.setPower(BleScanPower.HIGH_POWER); + scanMode = ScanSettings.SCAN_MODE_LOW_LATENCY; + } + } + else + { + BleManagerState.SCANNING.setPower(BleScanPower.LOW_POWER); + scanMode = ScanSettings.SCAN_MODE_LOW_POWER; + } + } + else + { + BleManagerState.SCANNING.setPower(scanPower_abstracted); + scanMode = scanPower_abstracted.getNativeMode(); + } + } + getManager().m_stateTracker.remove(BleManagerState.STARTING_SCAN, E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + getManager().m_stateTracker.append(BleManagerState.SCANNING, getIntent(), BleStatuses.GATT_STATUS_NOT_APPLICABLE); + if( false == Utils.isLollipop() ) + { + getManager().ASSERT(false, "Tried to create ScanSettings for pre-lollipop!"); + + fail(); + } + else + { + if (Utils.isMarshmallow()) + { + getManager().startMScan(scanMode, m_scanCallback_postLollipop); + } + else + { + getManager().startLScan(scanMode, m_scanCallback_postLollipop); + } + } + } + + private int/*_Mode*/ startNativeScan_preLollipop(final E_Intent intent) + { + //--- DRK > Not sure how useful this retry loop is. I've definitely seen startLeScan + //--- fail but then work again at a later time (seconds-minutes later), so + //--- it's possible that it can recover although I haven't observed it in this loop. + int retryCount = 0; + + while( retryCount <= m_retryCountMax ) + { + final boolean success = startLeScan(); + + if( success ) + { + if( retryCount >= 1 ) + { + //--- DRK > Not really an ASSERT case...rather just really want to know if this can happen + //--- so if/when it does I want it to be loud. + //--- UPDATE: Yes, this hits...TODO: Now have to determine if this is my fault or Android's. + //--- Error message is "09-29 16:37:11.622: E/BluetoothAdapter(16286): LE Scan has already started". + //--- Calling stopLeScan below "fixes" the issue. + //--- UPDATE: Seems like it mostly happens on quick restarts of the app while developing, so + //--- maybe the scan started in the previous app sessions is still lingering in the new session. +// ASSERT(false, "Started Le scan on attempt number " + retryCount); + } + + break; + } + + retryCount++; + + if( retryCount <= m_retryCountMax ) + { + if( retryCount == 1 ) + { + getLogger().w("Failed first startLeScan() attempt. Calling stopLeScan() then trying again..."); + + //--- DRK > It's been observed that right on app start up startLeScan can fail with a log + //--- message saying it's already started...not sure if it's my fault or not but throwing + //--- this in as a last ditch effort to "fix" things. + //--- + //--- UPDATE: It's been observed through simple test apps that when restarting an app through eclipse, + //--- Android somehow, sometimes, keeps the same actual BleManager instance in memory, so it's not + //--- far-fetched to assume that the scan from the previous app run can sometimes still be ongoing. + //m_btMngr.getAdapter().stopLeScan(m_listeners.m_scanCallback); + stopLeScan(); + } + else + { + getLogger().w("Failed startLeScan() attempt number " + retryCount + ". Trying again..."); + } + } + +// try +// { +// Thread.sleep(10); +// } +// catch (InterruptedException e) +// { +// } + } + + if( retryCount > m_retryCountMax ) + { + getLogger().w("Pre-Lollipop LeScan totally failed to start!"); + + tryClassicDiscovery(intent, /*suppressUhOh=*/false); + + return Mode_CLASSIC; + } + else + { + if( retryCount > 0 ) + { + getLogger().w("Started native scan with " + (retryCount + 1) + " attempts."); + } + + if( getManager().m_config.enableCrashResolver ) + { + getManager().getCrashResolver().start(); + } + + getManager().m_stateTracker.remove(BleManagerState.STARTING_SCAN, E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + getManager().m_stateTracker.append(BleManagerState.SCANNING, intent, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + + return Mode_BLE; + } + } + + private void stopLeScan() + { + getManager().stopLeScan(); + } + + private boolean startLeScan() + { + return getManager().startLeScan(); + } + + private boolean tryClassicDiscovery(final E_Intent intent, final boolean suppressUhOh) + { + if( getManager().m_config.revertToClassicDiscoveryIfNeeded ) + { + if( false == startClassicDiscovery() ) + { + getLogger().w("Classic discovery failed to start!"); + + fail(); + + getManager().uhOh(BleManager.UhOhListener.UhOh.CLASSIC_DISCOVERY_FAILED); + + return false; + } + else + { + getManager().m_stateTracker.remove(BleManagerState.STARTING_SCAN, E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + getManager().m_stateTracker.append(BleManagerState.SCANNING, intent, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + + if( false == suppressUhOh ) + { + getManager().uhOh(BleManager.UhOhListener.UhOh.START_BLE_SCAN_FAILED__USING_CLASSIC); + } + + return true; + } + } + else + { + fail(); + + getManager().uhOh(BleManager.UhOhListener.UhOh.START_BLE_SCAN_FAILED); + + return false; + } + } + + private boolean startClassicDiscovery() + { + return getManager().startClassicDiscovery(); + } + + private double getMinimumScanTime() + { + return Interval.secs(getManager().m_config.idealMinScanTime); + } + + @Override protected void update(double timeStep) + { + if( this.getState() == PE_TaskState.EXECUTING ) + { + if( getTotalTimeExecuting() >= getMinimumScanTime() && (getQueue().getSize() > 0 && isSelfInterruptableBy(getQueue().peek())) ) + { + selfInterrupt(); + } + else if( m_mode == Mode_CLASSIC && getTotalTimeExecuting() >= BleManagerConfig.MAX_CLASSIC_SCAN_TIME ) + { + selfInterrupt(); + } + } + } + + @Override public PE_TaskPriority getPriority() + { + return PE_TaskPriority.TRIVIAL; + } + + public int/*_Mode*/ getMode() + { + return m_mode; + } + + private boolean isSelfInterruptableBy(final PA_Task otherTask) + { + if( otherTask.getPriority().ordinal() > PE_TaskPriority.TRIVIAL.ordinal() ) + { + return true; + } + else if( otherTask.getPriority().ordinal() >= this.getPriority().ordinal() ) + { + //--- DRK > Not sure infinite timeout check really matters here. + return this.getTotalTimeExecuting() >= getMinimumScanTime(); +// return getTimeout() == TIMEOUT_INFINITE && this.getTotalTimeExecuting() >= getManager().m_config.minimumScanTime; + } + else + { + return false; + } + } + + @Override public boolean isInterruptableBy(PA_Task otherTask) + { + return otherTask.getPriority().ordinal() >= PE_TaskPriority.FOR_EXPLICIT_BONDING_AND_CONNECTING.ordinal(); + } + + @Override public boolean isExplicit() + { + return m_explicit; + } + + @Override protected BleTask getTaskType() + { + return null; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_SendNotification.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_SendNotification.java new file mode 100644 index 0000000000000000000000000000000000000000..0dd0dbe70fabb26fbda93afd85489cb4a7d01010 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_SendNotification.java @@ -0,0 +1,154 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGattCharacteristic; + +import com.idevicesinc.sweetblue.PA_Task.I_StateListener; +import com.idevicesinc.sweetblue.utils.FutureData; +import com.idevicesinc.sweetblue.utils.Utils; + +import java.util.UUID; + +class P_Task_SendNotification extends PA_Task_RequiresServerConnection implements I_StateListener +{ + private final BleServer m_server; + private final BluetoothDevice m_nativeDevice; + + private final BleServer.OutgoingListener m_responseListener; + private final FutureData m_futureData; + + private final UUID m_charUuid; + private final UUID m_serviceUuid; + + private final boolean m_confirm; + + private byte[] m_data_sent = null; + + public P_Task_SendNotification(BleServer server, BluetoothDevice device, final UUID serviceUuid, final UUID charUuid, final FutureData futureData, boolean confirm, final BleServer.OutgoingListener responseListener) + { + super(server, device.getAddress()); + + m_server = server; + m_nativeDevice = device; + m_futureData = futureData; + m_responseListener = responseListener; + m_charUuid = charUuid; + m_serviceUuid = serviceUuid; + m_confirm = confirm; + } + + private byte[] data_sent() + { + if( m_data_sent == null ) + { + m_data_sent = m_futureData.getData(); + } + + return m_data_sent; + } + + @Override protected BleTask getTaskType() + { + return BleTask.SEND_NOTIFICATION; + } + + @Override void execute() + { + final BluetoothGattCharacteristic characteristic = getServer().getNativeCharacteristic(m_serviceUuid, m_charUuid); + + if( characteristic == null ) + { + fail(BleServer.OutgoingListener.Status.NO_MATCHING_TARGET, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + else + { + if( !characteristic.setValue(data_sent()) ) + { + fail(BleServer.OutgoingListener.Status.FAILED_TO_SET_VALUE_ON_TARGET, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + else + { + if( !getServer().getNative().notifyCharacteristicChanged(m_nativeDevice, characteristic, m_confirm) ) + { + fail(BleServer.OutgoingListener.Status.FAILED_TO_SEND_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + else + { + // SUCCESS, at least so far...we will see + } + } + } + } + + @Override protected void onNotExecutable() + { + fail(BleServer.OutgoingListener.Status.NOT_CONNECTED, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + + private BleServer.ExchangeListener.Type getType() + { + return m_confirm ? BleServer.ExchangeListener.Type.INDICATION : BleServer.ExchangeListener.Type.NOTIFICATION; + } + + private void fail(final BleServer.OutgoingListener.Status status, final int gattStatus_received) + { + super.fail(); + + invokeFailCallback(status, gattStatus_received); + } + + private void invokeFailCallback(final BleServer.OutgoingListener.Status status, final int gattStatus_received) + { + final BleServer.OutgoingListener.OutgoingEvent e = new BleServer.OutgoingListener.OutgoingEvent + ( + getServer(), m_nativeDevice, m_serviceUuid, m_charUuid, BleServer.ExchangeListener.ExchangeEvent.NON_APPLICABLE_UUID, getType(), + BleServer.ExchangeListener.Target.CHARACTERISTIC, BleServer.EMPTY_BYTE_ARRAY, data_sent(), BleServer.ExchangeListener.ExchangeEvent.NON_APPLICABLE_REQUEST_ID, + /*offset=*/0, /*responseNeeded=*/false, status, BleStatuses.GATT_STATUS_NOT_APPLICABLE, gattStatus_received, /*solicited=*/true + ); + + getServer().invokeOutgoingListeners(e, m_responseListener); + } + + protected void succeed(final int gattStatus) + { + super.succeed(); + + final BleServer.OutgoingListener.OutgoingEvent e = new BleServer.OutgoingListener.OutgoingEvent + ( + getServer(), m_nativeDevice, m_serviceUuid, m_charUuid, BleServer.ExchangeListener.ExchangeEvent.NON_APPLICABLE_UUID, getType(), + BleServer.ExchangeListener.Target.CHARACTERISTIC, BleServer.EMPTY_BYTE_ARRAY, data_sent(), BleServer.ExchangeListener.ExchangeEvent.NON_APPLICABLE_REQUEST_ID, + /*offset=*/0, /*responseNeeded=*/false, BleServer.OutgoingListener.Status.SUCCESS, BleStatuses.GATT_STATUS_NOT_APPLICABLE, gattStatus, /*solicited=*/true + ); + + getServer().invokeOutgoingListeners(e, m_responseListener); + } + + void onNotificationSent(final BluetoothDevice device, final int gattStatus) + { + if( Utils.isSuccess(gattStatus) ) + { + succeed(gattStatus); + } + else + { + fail(BleServer.OutgoingListener.Status.REMOTE_GATT_FAILURE, gattStatus); + } + } + + public PE_TaskPriority getPriority() + { + return PE_TaskPriority.FOR_NORMAL_READS_WRITES; + } + + @Override public void onStateChange( PA_Task task, PE_TaskState state ) + { + if( state == PE_TaskState.SOFTLY_CANCELLED ) + { + invokeFailCallback(getCancelStatusType(), BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + else if( state == PE_TaskState.TIMED_OUT ) + { + invokeFailCallback(BleServer.OutgoingListener.Status.TIMED_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_SendReadWriteResponse.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_SendReadWriteResponse.java new file mode 100644 index 0000000000000000000000000000000000000000..9837edf6ef66e17a6b6d46a3eff85386cdc87370 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_SendReadWriteResponse.java @@ -0,0 +1,102 @@ +package com.idevicesinc.sweetblue; + +import com.idevicesinc.sweetblue.PA_Task.I_StateListener; + +class P_Task_SendReadWriteResponse extends PA_Task_RequiresServerConnection implements I_StateListener +{ + private final BleServer.IncomingListener.IncomingEvent m_requestEvent; + private final BleServer.IncomingListener.Please m_please; + + private byte[] m_data_sent = null; + + public P_Task_SendReadWriteResponse(BleServer server, final BleServer.IncomingListener.IncomingEvent requestEvent, BleServer.IncomingListener.Please please) + { + super( server, requestEvent.macAddress()); + + m_requestEvent = requestEvent; + m_please = please; + } + + private byte[] data_sent() + { + if( m_data_sent == null ) + { + m_data_sent = m_please.m_futureData != null ? m_please.m_futureData.getData() : BleDevice.EMPTY_BYTE_ARRAY; + m_data_sent = m_data_sent != null ? m_data_sent : BleDevice.EMPTY_BYTE_ARRAY; + } + + return m_data_sent; + } + + @Override public void onStateChange( PA_Task task, PE_TaskState state ) + { + if( state == PE_TaskState.SOFTLY_CANCELLED ) + { + invokeFailCallback(getCancelStatusType()); + } + else if( state == PE_TaskState.TIMED_OUT ) + { + invokeFailCallback(BleServer.OutgoingListener.Status.TIMED_OUT); + } + } + + private void fail(final BleServer.OutgoingListener.Status status) + { + super.fail(); + + invokeFailCallback(status); + } + + private void invokeFailCallback(BleServer.OutgoingListener.Status status) + { + final BleServer.OutgoingListener.OutgoingEvent e = new BleServer.OutgoingListener.OutgoingEvent(m_requestEvent, data_sent(), status, m_please.m_gattStatus, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + + getServer().invokeOutgoingListeners(e, m_please.m_outgoingListener); + } + + @Override protected void succeed() + { + super.succeed(); + + final BleServer.OutgoingListener.OutgoingEvent e = new BleServer.OutgoingListener.OutgoingEvent(m_requestEvent, data_sent(), BleServer.OutgoingListener.Status.SUCCESS, m_please.m_gattStatus, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + + getServer().invokeOutgoingListeners(e, m_please.m_outgoingListener); + } + + @Override void execute() + { + if( false == getServer().getNative().sendResponse(m_requestEvent.nativeDevice(), m_requestEvent.requestId(), m_please.m_gattStatus, m_requestEvent.offset(), data_sent()) ) + { + fail(BleServer.OutgoingListener.Status.FAILED_TO_SEND_OUT); + } + else + { + // SUCCESS, and we'll wait a half second or so (for now hardcoded) until actually succeeding, cause there's no native callback for this one. + } + } + + @Override protected void onNotExecutable() + { + fail(BleServer.OutgoingListener.Status.NOT_CONNECTED); + } + + @Override protected void update(double timeStep) + { + final double timeToSuccess = .25d; //TODO + + if( getState() == PE_TaskState.EXECUTING && getTotalTimeExecuting() >= timeToSuccess ) + { + succeed(); + } + } + + @Override public PE_TaskPriority getPriority() + { + return PE_TaskPriority.FOR_NORMAL_READS_WRITES; + } + + @Override protected BleTask getTaskType() + { + return BleTask.SEND_READ_WRITE_RESPONSE; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_ToggleNotify.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_ToggleNotify.java new file mode 100644 index 0000000000000000000000000000000000000000..9645487d10c090632f2f8fe9d24a0d1ffb909246 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_ToggleNotify.java @@ -0,0 +1,215 @@ +package com.idevicesinc.sweetblue; + +import java.util.UUID; + +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattDescriptor; + +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Target; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.utils.Uuids; +import com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOh; + +class P_Task_ToggleNotify extends PA_Task_ReadOrWrite implements PA_Task.I_StateListener +{ + private static int Type_NOTIFY = 0; + private static int Type_INDICATE = 1; + + private final boolean m_enable; + private final UUID m_descUuid; + + private byte[] m_writeValue = null; + + public P_Task_ToggleNotify(BleDevice device, BluetoothGattCharacteristic nativeChar, boolean enable, BleTransaction txn, final BleDevice.ReadWriteListener writeListener, PE_TaskPriority priority) + { + super(device, nativeChar, writeListener, false, txn, priority); + + m_descUuid = Uuids.CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID; + m_enable = enable; + } + + private byte[] getWriteValue() + { + return m_writeValue != null ? m_writeValue : BleDevice.EMPTY_BYTE_ARRAY; + } + + static byte[] getWriteValue(BluetoothGattCharacteristic char_native, boolean enable) + { + final int type; + + if( (char_native.getProperties() & BluetoothGattCharacteristic.PROPERTY_NOTIFY) != 0x0 ) + { + type = Type_NOTIFY; + } + else if( (char_native.getProperties() & BluetoothGattCharacteristic.PROPERTY_INDICATE) != 0x0 ) + { + type = Type_INDICATE; + } + else + { + type = Type_NOTIFY; + } + + final byte[] enableValue = type == Type_NOTIFY ? BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE : BluetoothGattDescriptor.ENABLE_INDICATION_VALUE; + final byte[] disableValue = BluetoothGattDescriptor.DISABLE_NOTIFICATION_VALUE; + + return enable ? enableValue : disableValue; + } + + @Override public void execute() + { + super.execute(); + + final BluetoothGattCharacteristic char_native = getDevice().getNativeCharacteristic(getServiceUuid(), getCharUuid()); + + if( char_native == null ) + { + this.fail(Status.NO_MATCHING_TARGET, BleStatuses.GATT_STATUS_NOT_APPLICABLE, Target.CHARACTERISTIC, getCharUuid(), ReadWriteEvent.NON_APPLICABLE_UUID); + } + else if( false == getDevice().getNativeGatt().setCharacteristicNotification(char_native, m_enable) ) + { + this.fail(Status.FAILED_TO_TOGGLE_NOTIFICATION, BleStatuses.GATT_STATUS_NOT_APPLICABLE, Target.CHARACTERISTIC, getCharUuid(), ReadWriteEvent.NON_APPLICABLE_UUID); + } + else + { + final BluetoothGattDescriptor descriptor = char_native.getDescriptor(m_descUuid); + + if( descriptor == null ) + { + //--- DRK > Previously we were failing the task if the descriptor came up null. It was assumed that writing the descriptor + //--- was a requirement. It turns out that, at least sometimes, simply calling setCharacteristicNotification(true) is enough. + succeed(); + + // this.fail(Status.NO_MATCHING_TARGET, BleStatuses.GATT_STATUS_NOT_APPLICABLE, Target.DESCRIPTOR, m_uuid, m_descUuid); + } + else + { + m_writeValue = getWriteValue(char_native, m_enable); + + if( false == descriptor.setValue(getWriteValue()) ) + { + this.fail(Status.FAILED_TO_SET_VALUE_ON_TARGET, BleStatuses.GATT_STATUS_NOT_APPLICABLE, Target.DESCRIPTOR, getCharUuid(), m_descUuid); + } + else if( false == getDevice().getNativeGatt().writeDescriptor(descriptor) ) + { + this.fail(Status.FAILED_TO_SEND_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE, Target.DESCRIPTOR, getCharUuid(), m_descUuid); + } + else + { + // SUCCESS, so far... + } + } + } + } + + @Override protected void fail(Status status, int gattStatus, Target target, UUID charUuid, UUID descUuid) + { + super.fail(status, gattStatus, target, charUuid, descUuid); + + if( m_enable ) + { + getDevice().getPollManager().onNotifyStateChange(getServiceUuid(), charUuid, P_PollManager.E_NotifyState__NOT_ENABLED); + } + } + + @Override protected void succeed() + { +// getDevice().addWriteTime(result.totalTime); + + if( m_enable ) + { + getDevice().getPollManager().onNotifyStateChange(getServiceUuid(), getCharUuid(), P_PollManager.E_NotifyState__ENABLED); + } + else + { + getDevice().getPollManager().onNotifyStateChange(getServiceUuid(), getCharUuid(), P_PollManager.E_NotifyState__NOT_ENABLED); + } + + super.succeed(); + + final ReadWriteEvent event = newReadWriteEvent(Status.SUCCESS, BluetoothGatt.GATT_SUCCESS, Target.DESCRIPTOR, getServiceUuid(), getCharUuid(), m_descUuid); + getDevice().invokeReadWriteCallback(m_readWriteListener, event); + } + + public void onDescriptorWrite(BluetoothGatt gatt, UUID descUuid, int status) + { + getManager().ASSERT(gatt == getDevice().getNativeGatt()); + + if( !descUuid.equals(m_descUuid) ) return; + + final boolean isConnected = getDevice().is_internal(BleDeviceState.CONNECTED); + + if( isConnected && Utils.isSuccess(status)) + { + succeed(); + } + else + { + if( !isConnected && Utils.isSuccess(status) ) + { + //--- DRK > Trying to catch a case that I currently can't explain any other way. + //--- DRK > UPDATE: Nevermind, must have been tired when I wrote this assert, device can be + //--- explicitly disconnected while the notify enable write is out and this can get tripped. +// getManager().ASSERT(false, "Successfully enabled notification but device isn't connected."); + + fail(Status.CANCELLED_FROM_DISCONNECT, status, Target.DESCRIPTOR, getCharUuid(), descUuid); + } + else + { + fail(Status.REMOTE_GATT_FAILURE, status, Target.DESCRIPTOR, getCharUuid(), descUuid); + } + } + } + + @Override public void onStateChange(PA_Task task, PE_TaskState state) + { + super.onStateChange(task, state); + + if( state == PE_TaskState.TIMED_OUT ) + { + getLogger().w(getLogger().charName(getCharUuid()) + " descriptor write timed out!"); + + final ReadWriteEvent event = newReadWriteEvent(Status.TIMED_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE, Target.DESCRIPTOR, getServiceUuid(), getCharUuid(), m_descUuid); + + getDevice().invokeReadWriteCallback(m_readWriteListener, event); + + getManager().uhOh(UhOh.WRITE_TIMED_OUT); + } + else if( state == PE_TaskState.SOFTLY_CANCELLED ) + { + final Target target = this.getState() == PE_TaskState.EXECUTING ? Target.DESCRIPTOR : Target.CHARACTERISTIC; + final UUID descUuid = target == Target.DESCRIPTOR ? m_descUuid : ReadWriteEvent.NON_APPLICABLE_UUID; + final ReadWriteEvent event = newReadWriteEvent(getCancelType(), BleStatuses.GATT_STATUS_NOT_APPLICABLE, target, getServiceUuid(), getCharUuid(), descUuid); + + getDevice().invokeReadWriteCallback(m_readWriteListener, event); + } + } + + @Override protected UUID getDescUuid() + { + return m_descUuid; + } + + @Override public boolean isMoreImportantThan(PA_Task task) + { + return isMoreImportantThan_default(task); + } + + private BleDevice.ReadWriteListener.Type getReadWriteType() + { + return m_enable ? BleDevice.ReadWriteListener.Type.ENABLING_NOTIFICATION : BleDevice.ReadWriteListener.Type.DISABLING_NOTIFICATION; + } + + @Override protected ReadWriteEvent newReadWriteEvent(Status status, int gattStatus, Target target, UUID serviceUuid, UUID charUuid, UUID descUuid) + { + return new ReadWriteEvent(getDevice(), serviceUuid, charUuid, descUuid, getReadWriteType(), target, getWriteValue(), status, gattStatus, getTotalTime(), getTotalTimeExecuting(), /*solicited=*/true); + } + + @Override protected BleTask getTaskType() + { + return BleTask.TOGGLE_NOTIFY; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_TurnBleOff.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_TurnBleOff.java new file mode 100644 index 0000000000000000000000000000000000000000..e5a6ca057e99c8762e92aa306e099ef75c6566e9 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_TurnBleOff.java @@ -0,0 +1,79 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothAdapter; + +/** + * + * + * + */ +class P_Task_TurnBleOff extends PA_Task +{ + private final boolean m_implicit; + + public P_Task_TurnBleOff(BleManager manager, boolean implicit) + { + this(manager, implicit, null); + } + + public P_Task_TurnBleOff(BleManager manager, boolean implicit, I_StateListener listener) + { + super(manager, listener); + + m_implicit = implicit; + } + + public boolean isImplicit() + { + return m_implicit; + } + + @Override public void execute() + { + if( getManager().getNative().getAdapter().getState() == BluetoothAdapter.STATE_OFF ) + { + redundant(); + } + else if( getManager().getNative().getAdapter().getState() == BluetoothAdapter.STATE_TURNING_OFF ) + { + // DRK > Nothing to do, already turning off. + } + else + { + if( m_implicit ) + { + this.fail(); + } + else if( false == getManager().getNative().getAdapter().disable() ) + { + this.fail(); + } + else + { + // SUCCESS, for now... + } + } + } + + @Override public PE_TaskPriority getPriority() + { + return PE_TaskPriority.CRITICAL; + } + + @Override protected BleTask getTaskType() + { + return BleTask.TURN_BLE_OFF; + } + + public boolean isMoreImportantThan(PA_Task task) + { + if( task instanceof P_Task_Unbond ) + { + return false; + } + else + { + return super.isMoreImportantThan(task); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_TurnBleOn.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_TurnBleOn.java new file mode 100644 index 0000000000000000000000000000000000000000..a75f349df9cebc74d708ff06debffed8f72074fa --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_TurnBleOn.java @@ -0,0 +1,77 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothAdapter; + +import com.idevicesinc.sweetblue.utils.Utils; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +/** + * + * + * + */ +class P_Task_TurnBleOn extends PA_Task +{ + private final boolean m_implicit; + + public P_Task_TurnBleOn(BleManager manager, boolean implicit) + { + this(manager, implicit, null); + } + + public P_Task_TurnBleOn(BleManager manager, boolean implicit, I_StateListener listener) + { + super(manager, listener); + + m_implicit = implicit; + } + + public boolean isImplicit() + { + return m_implicit; + } + + @Override public boolean isExplicit() + { + return !m_implicit; + } + + @Override public void execute() + { + if( getManager().getNative().getAdapter().getState() == BluetoothAdapter.STATE_ON ) + { + redundant(); + } + else if( getManager().getNative().getAdapter().getState() == BluetoothAdapter.STATE_TURNING_ON ) + { + // DRK > Nothing to do, already turning on. + } + else + { + if( m_implicit ) + { + fail(); + } + else if( false == getManager().getNative().getAdapter().enable() ) + { + fail(); + } + else + { + // SUCCESS, so far... + } + } + } + + @Override public PE_TaskPriority getPriority() + { + return PE_TaskPriority.CRITICAL; + } + + @Override protected BleTask getTaskType() + { + return BleTask.TURN_BLE_ON; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_TxnLock.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_TxnLock.java new file mode 100644 index 0000000000000000000000000000000000000000..99fedbf0bf88086f034bc5a625c3211148dfee8f --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_TxnLock.java @@ -0,0 +1,64 @@ +package com.idevicesinc.sweetblue; + +import com.idevicesinc.sweetblue.utils.Interval; + +class P_Task_TxnLock extends PA_Task_RequiresBleOn +{ + private final BleTransaction m_txn; + + public P_Task_TxnLock(BleDevice device, BleTransaction txn) + { + super(device, null); + + m_txn = txn; + } + + @Override protected double getInitialTimeout() + { + return Interval.DISABLED.secs(); + } + + public BleTransaction getTxn() + { + return m_txn; + } + + @Override public void execute() + { + //--- DRK > Nothing to do here...basically just spins infinitely until read/write comes in or txn ends. + } + + @Override public PE_TaskPriority getPriority() + { + return PE_TaskPriority.FOR_EXPLICIT_BONDING_AND_CONNECTING; + } + + @Override public boolean isInterruptableBy(PA_Task task) + { + if( task instanceof PA_Task_Transactionable ) + { + PA_Task_Transactionable task_cast = (PA_Task_Transactionable) task; + + if( this.getDevice() == task_cast.getDevice() && this.getTxn() == task_cast.getTxn() ) + { + return true; + } + } + else if( task instanceof P_Task_Bond ) + { + P_Task_Bond task_cast = (P_Task_Bond) task; + + if( this.getDevice() == task_cast.getDevice() ) + { + return true; + } + } + + return super.isInterruptableBy(task); + } + + @Override protected BleTask getTaskType() + { + return null; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Unbond.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Unbond.java new file mode 100644 index 0000000000000000000000000000000000000000..ee413cadcbfd8c8c5dc1fbfbfc2f0dbc14f87393 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Unbond.java @@ -0,0 +1,96 @@ +package com.idevicesinc.sweetblue; + +import java.lang.reflect.Method; + +import android.annotation.SuppressLint; + +import com.idevicesinc.sweetblue.utils.Utils_Reflection; + +class P_Task_Unbond extends PA_Task_RequiresBleOn +{ + private static final String METHOD_NAME__REMOVE_BOND = "removeBond"; + private static final String METHOD_NAME__CANCEL_BOND_PROCESS = "cancelBondProcess"; + + + private final PE_TaskPriority m_priority; + + public P_Task_Unbond(BleDevice device, I_StateListener listener, PE_TaskPriority priority) + { + super(device, listener); + + m_priority = priority == null ? PE_TaskPriority.FOR_EXPLICIT_BONDING_AND_CONNECTING : priority; + } + + public P_Task_Unbond(BleDevice device, I_StateListener listener) + { + this(device, listener, null); + } + + @SuppressLint("NewApi") + @Override public void execute() + { + if( getDevice().m_nativeWrapper.isNativelyUnbonded() ) + { + //--- DRK > Commenting this out cause it's a little louder than need be...redundant ending state gets the point across. +// m_logger.w("Already not bonded!"); + + redundant(); + } + else + { + if( getDevice().m_nativeWrapper.isNativelyBonding() ) + { + if( false == cancelBondProcess() ) + { + failImmediately(); + } + else + { + // SUCCESS, so far... + } + } + else if( getDevice().m_nativeWrapper.isNativelyBonded() ) + { + if( false == removeBond() ) + { + failImmediately(); + } + else + { + // SUCCESS, so far... + } + } + else + { + getManager().ASSERT(false, "Expected to be bonding or bonded only."); + + failImmediately(); + } + } + } + + private boolean removeBond() + { + return Utils_Reflection.callBooleanReturnMethod(getDevice().getNative(), METHOD_NAME__REMOVE_BOND, getManager().m_config.loggingEnabled); + } + + private boolean cancelBondProcess() + { + return Utils_Reflection.callBooleanReturnMethod(getDevice().getNative(), METHOD_NAME__CANCEL_BOND_PROCESS, getManager().m_config.loggingEnabled); + } + + @Override public boolean isExplicit() + { + return true; //TODO + } + + @Override public PE_TaskPriority getPriority() + { + return m_priority; + } + + @Override protected BleTask getTaskType() + { + return BleTask.UNBOND; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Write.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Write.java new file mode 100644 index 0000000000000000000000000000000000000000..e9e231e208ca2e5045b4f364126b9f6def32d9e5 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_Write.java @@ -0,0 +1,114 @@ +package com.idevicesinc.sweetblue; + +import java.util.UUID; + +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCharacteristic; + +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Target; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Type; +import com.idevicesinc.sweetblue.utils.FutureData; +import com.idevicesinc.sweetblue.utils.Utils; +import com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOh; + +class P_Task_Write extends PA_Task_ReadOrWrite +{ + public static final int MTU_LIMIT = 20; + + private byte[] m_data = null; + + private final FutureData m_futureData; + + public P_Task_Write(BleDevice device, BluetoothGattCharacteristic characteristic, final FutureData futureData, boolean requiresBonding, BleDevice.ReadWriteListener writeListener, BleTransaction txn, PE_TaskPriority priority) + { + super(device, characteristic, writeListener, requiresBonding, txn, priority); + + m_futureData = futureData; + } + + @Override protected ReadWriteEvent newReadWriteEvent(final Status status, final int gattStatus, final Target target, final UUID serviceUuid, final UUID charUuid, final UUID descUuid) + { + final BluetoothGattCharacteristic char_native = getDevice().getNativeCharacteristic(serviceUuid, charUuid); + final Type type = P_DeviceServiceManager.modifyResultType(char_native, Type.WRITE); + + return new ReadWriteEvent(getDevice(), serviceUuid, charUuid, descUuid, type, target, m_data, status, gattStatus, getTotalTime(), getTotalTimeExecuting(), /*solicited=*/true); + } + + @Override public void execute() + { + super.execute(); + + m_data = m_futureData.getData(); + + if( false == write_earlyOut(m_data) ) + { + final BluetoothGattCharacteristic char_native = getDevice().getNativeCharacteristic(getServiceUuid(), getCharUuid()); + + if( char_native == null ) + { + fail(Status.NO_MATCHING_TARGET, BleStatuses.GATT_STATUS_NOT_APPLICABLE, getDefaultTarget(), getCharUuid(), ReadWriteEvent.NON_APPLICABLE_UUID); + } + else + { + if( false == char_native.setValue(m_data) ) + { + fail(Status.FAILED_TO_SET_VALUE_ON_TARGET, BleStatuses.GATT_STATUS_NOT_APPLICABLE, getDefaultTarget(), getCharUuid(), ReadWriteEvent.NON_APPLICABLE_UUID); + } + else + { + if( false == getDevice().getNativeGatt().writeCharacteristic(char_native) ) + { + fail(Status.FAILED_TO_SEND_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE, getDefaultTarget(), getCharUuid(), ReadWriteEvent.NON_APPLICABLE_UUID); + } + else + { + // SUCCESS, for now... + } + } + } + } + } + + public void onCharacteristicWrite(final BluetoothGatt gatt, final UUID uuid, final int gattStatus) + { + getManager().ASSERT(gatt == getDevice().getNativeGatt()); + + if( false == this.isForCharacteristic(uuid) ) return; + + if( false == acknowledgeCallback(gattStatus) ) return; + + if( Utils.isSuccess(gattStatus) ) + { + succeedWrite(); + } + else + { + fail(Status.REMOTE_GATT_FAILURE, gattStatus, getDefaultTarget(), uuid, ReadWriteEvent.NON_APPLICABLE_UUID); + } + } + + @Override public void onStateChange(final PA_Task task, final PE_TaskState state) + { + super.onStateChange(task, state); + + if( state == PE_TaskState.TIMED_OUT ) + { + getLogger().w(getLogger().charName(getCharUuid()) + " write timed out!"); + + getDevice().invokeReadWriteCallback(m_readWriteListener, newReadWriteEvent(Status.TIMED_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE, getDefaultTarget(), getServiceUuid(), getCharUuid(), ReadWriteEvent.NON_APPLICABLE_UUID)); + + getManager().uhOh(UhOh.WRITE_TIMED_OUT); + } + else if( state == PE_TaskState.SOFTLY_CANCELLED ) + { + getDevice().invokeReadWriteCallback(m_readWriteListener, newReadWriteEvent(getCancelType(), BleStatuses.GATT_STATUS_NOT_APPLICABLE, getDefaultTarget(), getServiceUuid(), getCharUuid(), ReadWriteEvent.NON_APPLICABLE_UUID)); + } + } + + @Override protected BleTask getTaskType() + { + return BleTask.WRITE; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_WriteDescriptor.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_WriteDescriptor.java new file mode 100644 index 0000000000000000000000000000000000000000..5a9c8a61806537e9028cfa6aa9d2602923029d15 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_Task_WriteDescriptor.java @@ -0,0 +1,125 @@ +package com.idevicesinc.sweetblue; + +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattDescriptor; + +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Status; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Target; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.Type; +import com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOh; +import com.idevicesinc.sweetblue.utils.FutureData; +import com.idevicesinc.sweetblue.utils.Utils; + +import java.util.UUID; + +class P_Task_WriteDescriptor extends PA_Task_ReadOrWrite +{ + private final UUID m_descriptorUuid; + + private final FutureData m_futureData; + private byte[] m_data = null; + + public P_Task_WriteDescriptor(BleDevice device, BluetoothGattDescriptor descriptor, FutureData futureData, boolean requiresBonding, ReadWriteListener readListener, BleTransaction txn, PE_TaskPriority priority) + { + super(device, descriptor.getCharacteristic(), readListener, requiresBonding, txn, priority); + + m_descriptorUuid = descriptor.getUuid(); + m_futureData = futureData; + } + + @Override protected ReadWriteEvent newReadWriteEvent(Status status, int gattStatus, Target target, UUID serviceUuid, UUID charUuid, UUID descUuid) + { + return new ReadWriteEvent(getDevice(), serviceUuid, charUuid, descUuid, Type.WRITE, target, m_data, status, gattStatus, getTotalTime(), getTotalTimeExecuting(), /*solicited=*/true); + } + + @Override protected UUID getDescUuid() + { + return m_descriptorUuid; + } + + @Override protected Target getDefaultTarget() + { + return Target.DESCRIPTOR; + } + + @Override public void execute() + { + super.execute(); + + m_data = m_futureData.getData(); + + if( false == write_earlyOut(m_data) ) + { + final BluetoothGattDescriptor desc_native = getDevice().getNativeDescriptor(getServiceUuid(), getCharUuid(), getDescUuid()); + + if( desc_native == null ) + { + fail(Status.NO_MATCHING_TARGET, BleStatuses.GATT_STATUS_NOT_APPLICABLE, getDefaultTarget(), getCharUuid(), getDescUuid()); + } + else + { + if( false == desc_native.setValue(m_data) ) + { + fail(Status.FAILED_TO_SET_VALUE_ON_TARGET, BleStatuses.GATT_STATUS_NOT_APPLICABLE, getDefaultTarget(), getCharUuid(), getDescUuid()); + } + else + { + if( false == getDevice().getNativeGatt().writeDescriptor(desc_native) ) + { + fail(Status.FAILED_TO_SEND_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE, getDefaultTarget(), getCharUuid(), getDescUuid()); + } + else + { + // DRK > SUCCESS, for now... + } + } + } + } + } + + public void onDescriptorWrite(BluetoothGatt gatt, UUID uuid, int gattStatus) + { + getManager().ASSERT(gatt == getDevice().getNativeGatt()); + +// if( !this.isForCharacteristic(uuid) ) return; + + if( false == acknowledgeCallback(gattStatus) ) return; + + if( Utils.isSuccess(gattStatus) ) + { + succeedWrite(); + } + else + { + fail(Status.REMOTE_GATT_FAILURE, gattStatus, getDefaultTarget(), getCharUuid(), getDescUuid()); + } + } + + @Override public void onStateChange(PA_Task task, PE_TaskState state) + { + super.onStateChange(task, state); + + if( state == PE_TaskState.TIMED_OUT ) + { + getLogger().w(getLogger().descriptorName(getDescUuid()) + " read timed out!"); + + final ReadWriteEvent event = newReadWriteEvent(Status.TIMED_OUT, BleStatuses.GATT_STATUS_NOT_APPLICABLE, getDefaultTarget(), getServiceUuid(), getCharUuid(), getDescUuid()); + + getDevice().invokeReadWriteCallback(m_readWriteListener, event); + + getManager().uhOh(UhOh.WRITE_TIMED_OUT); + } + else if( state == PE_TaskState.SOFTLY_CANCELLED ) + { + final ReadWriteEvent event = newReadWriteEvent(getCancelType(), BleStatuses.GATT_STATUS_NOT_APPLICABLE, getDefaultTarget(), getServiceUuid(), getCharUuid(), getDescUuid()); + getDevice().invokeReadWriteCallback(m_readWriteListener, event); + } + } + + @Override protected BleTask getTaskType() + { + return BleTask.WRITE_DESCRIPTOR; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_TransactionManager.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_TransactionManager.java new file mode 100644 index 0000000000000000000000000000000000000000..03de121378f8d9894779cf6c14871abb64cc975a --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_TransactionManager.java @@ -0,0 +1,345 @@ +package com.idevicesinc.sweetblue; + +import static com.idevicesinc.sweetblue.BleDeviceState.AUTHENTICATED; +import static com.idevicesinc.sweetblue.BleDeviceState.AUTHENTICATING; +import static com.idevicesinc.sweetblue.BleDeviceState.INITIALIZING; +import static com.idevicesinc.sweetblue.BleDeviceState.PERFORMING_OTA; +import android.bluetooth.BluetoothGatt; + +import com.idevicesinc.sweetblue.BleDevice.ConnectionFailListener.Status; +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener; +import com.idevicesinc.sweetblue.BleTransaction.EndReason; +import com.idevicesinc.sweetblue.PA_StateTracker.E_Intent; + +class P_TransactionManager +{ + final PI_EndListener m_txnEndListener = new PI_EndListener() + { + @Override public void onTransactionEnd(BleTransaction txn, EndReason reason, ReadWriteListener.ReadWriteEvent txnFailReason) + { + clearQueueLock(); + + m_current = null; + + if( !m_device.is_internal(BleDeviceState.CONNECTED) ) + { + if( reason == EndReason.CANCELLED ) + { + return; + } + else if( reason == EndReason.SUCCEEDED || reason == EndReason.FAILED ) + { + m_device.getManager().ASSERT(false, "nativelyConnected=" + m_device.getManager().getLogger().gattConn(m_device.m_nativeWrapper.getConnectionState()) + " gatt==" + m_device.m_nativeWrapper.getGatt()); + + return; + } + } + + if (txn == m_authTxn ) + { + if (reason == EndReason.SUCCEEDED) + { + if ( m_initTxn != null) + { + m_device.stateTracker().update + ( + E_Intent.INTENTIONAL, + BleStatuses.GATT_STATUS_NOT_APPLICABLE, + AUTHENTICATING, false, AUTHENTICATED, true, INITIALIZING, true + ); + + start(m_initTxn); + + m_device.getPollManager().enableNotifications_assumesWeAreConnected(); + } + else + { + m_device.onFullyInitialized(BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + } + else + { + m_device.disconnectWithReason(Status.AUTHENTICATION_FAILED, BleDevice.ConnectionFailListener.Timing.NOT_APPLICABLE, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE, txnFailReason); + } + } + else if (txn == m_initTxn ) + { + if (reason == EndReason.SUCCEEDED) + { + m_device.onFullyInitialized(BleStatuses.GATT_STATUS_NOT_APPLICABLE); + } + else + { + m_device.disconnectWithReason(Status.INITIALIZATION_FAILED, BleDevice.ConnectionFailListener.Timing.NOT_APPLICABLE, BleStatuses.GATT_STATUS_NOT_APPLICABLE, BleStatuses.BOND_FAIL_REASON_NOT_APPLICABLE, txnFailReason); + } + } + else if (txn == m_device.getOtaTxn()) + { +// m_device.m_txnMngr.clearFirmwareUpdateTxn(); + E_Intent intent = E_Intent.UNINTENTIONAL; + m_device.stateTracker_main().remove(PERFORMING_OTA, intent, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + + //--- DRK > As of now don't care whether this succeeded or failed. + if (reason == EndReason.SUCCEEDED) + { + } + else + { + } + } + else if( txn == m_anonTxn ) + { + m_anonTxn = null; + } + } + }; + + private final BleDevice m_device; + + BleTransaction.Auth m_authTxn; + BleTransaction.Init m_initTxn; + BleTransaction.Ota m_otaTxn; + BleTransaction m_anonTxn; + + BleTransaction m_current; + + ReadWriteListener.ReadWriteEvent m_failReason; + + P_TransactionManager(BleDevice device) + { + m_device = device; + + resetReadWriteResult(); + } + + void start(final BleTransaction txn) + { + if( m_current != null ) + { + m_device.getManager().ASSERT(false, "Old: " + m_current.getClass().getSimpleName() + " New: " + txn.getClass().getSimpleName()); + } + + m_current = txn; + + start_common(m_device, txn); + } + + static void start_common(final BleDevice device, final BleTransaction txn) + { + if( txn.needsAtomicity() ) + { + device.getManager().getTaskQueue().add(new P_Task_TxnLock(device, txn)); + } + + txn.start_internal(); + } + + BleTransaction getCurrent() + { + return m_current; + } + + void clearQueueLock() + { + if( m_device.getManager().getUpdateLoop().postNeeded() ) + { + m_device.getManager().getUpdateLoop().postIfNeeded(new Runnable() + { + @Override public void run() + { + clearQueueLock_mainThread(); + } + }); + } + else + { + clearQueueLock_mainThread(); + } + } + + private void clearQueueLock_mainThread() + { + if( !m_device.getManager().getTaskQueue().succeed(P_Task_TxnLock.class, m_device) ) + { + m_device.getManager().getTaskQueue().clearQueueOf(P_Task_TxnLock.class, m_device, -1); + } + } + +// void clearAllTxns() +// { +// synchronized (m_threadLock) +// { +// if( m_authTxn != null ) +// { +// m_authTxn.deinit(); +// m_authTxn = null; +// } +// +// if( m_initTxn != null ) +// { +// m_initTxn.deinit(); +// m_initTxn = null; +// } +// +// clearFirmwareUpdateTxn(); +// +// m_current = null; +// } +// } + +// void clearFirmwareUpdateTxn() +// { +// synchronized (m_threadLock) +// { +// if( m_otaTxn != null ) +// { +// m_otaTxn.deinit(); +// m_otaTxn = null; +// } +// } +// } + + void cancelOtaTransaction() + { + if( m_otaTxn != null && m_otaTxn.isRunning() ) + { + m_otaTxn.cancel(); + } + } + + void cancelAllTransactions() + { + if( m_authTxn != null && m_authTxn.isRunning() ) + { + m_authTxn.cancel(); + } + + if( m_initTxn != null && m_initTxn.isRunning() ) + { + m_initTxn.cancel(); + } + + cancelOtaTransaction(); + + if( m_anonTxn != null && m_anonTxn.isRunning() ) + { + m_anonTxn.cancel(); + m_anonTxn = null; + } + + if( m_current != null ) + { + m_device.getManager().ASSERT(false, "Expected current transaction to be null."); + + m_current.cancel(); + m_current = null; + } + } + + void update(double timeStep) + { + if( m_authTxn != null && m_authTxn.isRunning() ) + { + m_authTxn.update_internal(timeStep); + } + + if( m_initTxn != null && m_initTxn.isRunning() ) + { + m_initTxn.update_internal(timeStep); + } + + if( m_otaTxn != null && m_otaTxn.isRunning() ) + { + m_otaTxn.update_internal(timeStep); + } + + if( m_anonTxn != null && m_anonTxn.isRunning() ) + { + m_anonTxn.update_internal(timeStep); + } + } + + void onConnect(BleTransaction.Auth authenticationTxn, BleTransaction.Init initTxn) + { + m_authTxn = authenticationTxn; + m_initTxn = initTxn; + + if( m_authTxn != null ) + { + m_authTxn.init(m_device, m_txnEndListener); + } + + if( m_initTxn != null ) + { + m_initTxn.init(m_device, m_txnEndListener); + } + } + + private void resetReadWriteResult() + { + m_failReason = m_device.NULL_READWRITE_EVENT(); + } + + void onReadWriteResult(ReadWriteListener.ReadWriteEvent result) + { + resetReadWriteResult(); + + if( !result.wasSuccess() ) + { + if( m_device.isAny_internal(AUTHENTICATING, INITIALIZING) ) + { + m_failReason = result; + } + } + } + + void onReadWriteResultCallbacksCalled() + { + resetReadWriteResult(); + } + + void startOta(BleTransaction.Ota txn) + { +// m_device.getManager().ASSERT(m_otaTxn == null); + + m_otaTxn = txn; + m_otaTxn.init(m_device, m_txnEndListener); + + m_device.stateTracker_main().append(PERFORMING_OTA, E_Intent.INTENTIONAL, BleStatuses.GATT_STATUS_NOT_APPLICABLE); + + start(m_otaTxn); + } + + void performAnonTransaction(BleTransaction txn) + { + m_anonTxn = txn; + + m_anonTxn.init(m_device, m_txnEndListener); + start(m_anonTxn); + } + + void runAuthOrInitTxnIfNeeded(final int gattStatus, Object ... extraFlags) + { + E_Intent intent = m_device.lastConnectDisconnectIntent(); + if( m_authTxn == null && m_initTxn == null ) + { + m_device.getPollManager().enableNotifications_assumesWeAreConnected(); + + m_device.onFullyInitialized(gattStatus, extraFlags); + } + else if( m_authTxn != null ) + { + m_device.stateTracker().update(intent, BluetoothGatt.GATT_SUCCESS, extraFlags, AUTHENTICATING, true); + + start(m_authTxn); + } + else if( m_initTxn != null ) + { + m_device.getPollManager().enableNotifications_assumesWeAreConnected(); + + m_device.stateTracker().update(intent, BluetoothGatt.GATT_SUCCESS, extraFlags, AUTHENTICATED, true, INITIALIZING, true); + + start(m_initTxn); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_UhOhThrottler.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_UhOhThrottler.java new file mode 100644 index 0000000000000000000000000000000000000000..068f0fac28b9223a55dd672ffa9de1610f49a0ed --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_UhOhThrottler.java @@ -0,0 +1,68 @@ +package com.idevicesinc.sweetblue; + +import java.util.HashMap; + +import com.idevicesinc.sweetblue.BleManager.UhOhListener; +import com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOhEvent; +import com.idevicesinc.sweetblue.BleManager.UhOhListener.UhOh; + + +/** + * + * + * + */ +class P_UhOhThrottler +{ + private final HashMap<UhOh, Double> m_lastTimesCalled = new HashMap<UhOh, Double>(); + private UhOhListener m_uhOhListener; + private final double m_throttle; + private final BleManager m_mngr; + private double m_timeTracker = 0.0; + + public P_UhOhThrottler(BleManager mngr, double throttle) + { + m_mngr = mngr; + m_throttle = throttle; + } + + public synchronized void setListener(UhOhListener listener) + { + m_uhOhListener = listener; + } + + void uhOh(UhOh reason) + { + uhOh(reason, m_throttle); + } + + synchronized void uhOh(UhOh reason, double throttle) + { + m_mngr.getLogger().w(reason+""); + + if( throttle > 0.0 ) + { + Double lastTimeCalled = m_lastTimesCalled.get(reason); + + if( lastTimeCalled != null ) + { + if( m_timeTracker - lastTimeCalled < throttle ) + { + return; + } + } + } + + if( m_uhOhListener != null ) + { + m_lastTimesCalled.put(reason, m_timeTracker); + UhOhEvent event = new UhOhEvent(m_mngr, reason); + m_uhOhListener.onEvent(event); + } + } + + void update(double timeStep) + { + m_timeTracker += timeStep; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_WakeLockManager.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_WakeLockManager.java new file mode 100644 index 0000000000000000000000000000000000000000..a14416dff585edeb81d335b10ae8298107733ed5 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_WakeLockManager.java @@ -0,0 +1,97 @@ +package com.idevicesinc.sweetblue; + +import android.Manifest.permission; +import android.content.Context; +import android.os.PowerManager; +import android.os.PowerManager.WakeLock; +import android.util.Log; + +import com.idevicesinc.sweetblue.utils.Utils; + +class P_WakeLockManager +{ + private static final String WAKE_LOCK_TAG = "SWEETBLUE_WAKE_LOCK"; + + private int m_count; + private final WakeLock m_wakeLock; + private final BleManager m_mngr; + + public P_WakeLockManager(BleManager mngr, boolean enabled) + { + m_mngr = mngr; + + if( enabled ) + { + if( !Utils.hasPermission(mngr.getApplicationContext(), permission.WAKE_LOCK) ) + { + Log.e(P_WakeLockManager.class.getSimpleName(), "PERMISSION REQUIRED: " + permission.WAKE_LOCK + ". Or set BleManagerConfig#manageCpuWakeLock to false to disable wake lock management."); + + m_wakeLock = null; + + return; + } + + final PowerManager powerMngr = (PowerManager) m_mngr.getApplicationContext().getSystemService(Context.POWER_SERVICE); + + m_wakeLock = powerMngr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, WAKE_LOCK_TAG); + } + else + { + m_wakeLock = null; + } + } + + public void clear() + { + if( m_count >= 1 ) + { + releaseLock(); + } + + m_count = 0; + } + + public void push() + { + m_count++; + + if( m_count == 1 ) + { + if( m_wakeLock != null ) + { + m_wakeLock.acquire(); + } + } + } + + private void releaseLock() + { + if( m_wakeLock == null ) return; + + try + { + m_wakeLock.release(); + } + + //--- DRK > Just looking at the source for release(), it can throw a RuntimeException if it's somehow + //--- overreleased, like maybe app mismanages it. Just being defensive here. + catch(RuntimeException e) + { + m_mngr.ASSERT(false, e.getMessage()); + } + } + + public void pop() + { + m_count--; + + if( m_count == 0 ) + { + releaseLock(); + } + else if( m_count < 0 ) + { + m_count = 0; + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_WrappingReadWriteListener.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_WrappingReadWriteListener.java new file mode 100644 index 0000000000000000000000000000000000000000..d7b018caa2e3665a67e0f257e4c50970ad22a0e1 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_WrappingReadWriteListener.java @@ -0,0 +1,46 @@ +package com.idevicesinc.sweetblue; + +import android.os.Handler; + +import com.idevicesinc.sweetblue.BleDevice.ReadWriteListener; + +/** + * + * + */ +class P_WrappingReadWriteListener extends PA_CallbackWrapper implements ReadWriteListener +{ + private final ReadWriteListener m_listener; + + P_WrappingReadWriteListener(ReadWriteListener listener, Handler handler, boolean postToMain) + { + super(handler, postToMain); + + m_listener = listener; + } + + protected void onEvent(final ReadWriteListener listener, final ReadWriteEvent result) + { + if( listener == null ) return; + + if( postToMain() ) + { + m_handler.post(new Runnable() + { + @Override public void run() + { + listener.onEvent(result); + } + }); + } + else + { + listener.onEvent(result); + } + } + + @Override public void onEvent(final ReadWriteEvent result) + { + onEvent(m_listener, result); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_WrappingResetListener.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_WrappingResetListener.java new file mode 100644 index 0000000000000000000000000000000000000000..e3ff2a5c0696e199b819e5e1c092473f112744ff --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/P_WrappingResetListener.java @@ -0,0 +1,50 @@ +package com.idevicesinc.sweetblue; + +import java.util.ArrayList; + +import android.os.Handler; + +/** + * + * + * + */ +class P_WrappingResetListener extends PA_CallbackWrapper implements BleManager.ResetListener +{ + private final ArrayList<BleManager.ResetListener> m_listeners = new ArrayList<BleManager.ResetListener>(); + + P_WrappingResetListener(BleManager.ResetListener listener, Handler handler, boolean postToMain) + { + super(handler, postToMain); + + m_listeners.add(listener); + } + + public void addListener(BleManager.ResetListener listener) + { + m_listeners.add(listener); + } + + @Override public void onEvent(final ResetEvent event) + { + final Runnable runnable = new Runnable() + { + @Override public void run() + { + for( int i = 0; i < m_listeners.size(); i++ ) + { + m_listeners.get(i).onEvent(event); + } + } + }; + + if( postToMain() ) + { + m_handler.post(runnable); + } + else + { + runnable.run(); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/SweetLogger.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/SweetLogger.java new file mode 100644 index 0000000000000000000000000000000000000000..8f48cfd4e3e454b3fb5cdb025aa46e031cfc148f --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/SweetLogger.java @@ -0,0 +1,7 @@ +package com.idevicesinc.sweetblue; + + +public interface SweetLogger +{ + void onLogEntry(int level, String tag, String msg); +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/Advanced.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/Advanced.java new file mode 100644 index 0000000000000000000000000000000000000000..e294ce98dd2ab31e75fa453bff59a43d9e4c7448 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/Advanced.java @@ -0,0 +1,17 @@ +package com.idevicesinc.sweetblue.annotations; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * This annotation is used to tag certain classes or methods that + * someone new to the library can most-likely safely ignore. Thus it doesn't necessarily + * signify that a concept is hard to grasp, just that you probably don't need to grasp it now or maybe ever. + */ +@Retention(RetentionPolicy.CLASS) +public @interface Advanced +{ +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/Alpha.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/Alpha.java new file mode 100644 index 0000000000000000000000000000000000000000..20638acdb02acee1834d8173a3a36f00e41ac440 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/Alpha.java @@ -0,0 +1,15 @@ +package com.idevicesinc.sweetblue.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * This annotation is used to tag certain classes or methods that are considered "alpha" level quality. + * This means that the feature will be release quality at some point in the future, but it + * may require bug fixes, further documentation, code additions, backwards incompatible changes, moving to different + * packages, etc., etc., to get to that point, so just be aware. + */ +@Retention(RetentionPolicy.CLASS) +public @interface Alpha +{ +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/Immutable.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/Immutable.java new file mode 100644 index 0000000000000000000000000000000000000000..822182ac4ae3978804571a1eb6de5cd755a07afe --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/Immutable.java @@ -0,0 +1,14 @@ +package com.idevicesinc.sweetblue.annotations; + +import java.lang.annotation.*; + +/** + * Classes marked with this {@link Annotation} have immutable internal state, or the apparent behavior of so. + * Most of the time this means all private final members. + */ +@Target({ElementType.TYPE, ElementType.FIELD}) +@Retention(RetentionPolicy.CLASS) +public @interface Immutable +{ + +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/Lambda.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/Lambda.java new file mode 100644 index 0000000000000000000000000000000000000000..d775efdde83e443f1c5be8c04d56e4eef8c64fd6 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/Lambda.java @@ -0,0 +1,20 @@ +package com.idevicesinc.sweetblue.annotations; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Used to denote <code>interface</code> declarations whose implementations can essentially act like lambdas (i.e. anonymous functions). + * Implementations are technically classes and not language-level lambda constructs because + * Java at this time does not support them. Conceptually however they can be treated as lambdas. + */ + +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.CLASS) +public @interface Lambda +{ + +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/Nullable.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/Nullable.java new file mode 100644 index 0000000000000000000000000000000000000000..288e9de36198ce6af4a3453b46958a732821ddc8 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/Nullable.java @@ -0,0 +1,56 @@ +package com.idevicesinc.sweetblue.annotations; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import com.idevicesinc.sweetblue.BleDeviceState; +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.annotations.Nullable.Prevalence; + +/** + * This annotation is used to tag methods and parameters to give extra information + * on how they handle <code>null</code>. SweetBlue strives to never return <code>null</code> + * if it doesn't have to, preferring things like {@link BleDeviceState#NULL} for example, + * but in some situations it's unavoidable. + * <br><br> + * NOTE: This annotation is only used in places where the library authors have judged that + * the API by itself may be unclear about its <code>null</code> handling for newcomers. + * In general, if this annotation isn't used, you may assume {@link Prevalence#NEVER}. + */ + +@Retention(RetentionPolicy.RUNTIME) +public @interface Nullable +{ + Prevalence value();// default Prevalence.NORMAL; + + /** + * Generally used for {@link ElementType#METHOD} to hint at how often it should return <code>null</code>. + */ + public static enum Prevalence + { + /** + * For method return values, returning <code>null</code> is a part of normal program execution. + * <br><br> + * For method input parameters, passing <code>null</code> is normal and expected. + */ + NORMAL, + + /** + * For method return values, returning <code>null</code> is a rare occurrence that may signify some deeper issue. + * <br><br> + * For method input parameters, passing <code>null</code> is handled as a defensive measure but is rarely expected, and may signify some deeper issue upstream. + * An assertion may be thrown and unit tests may fail, but an {@link Exception} won't be thrown for program integrity's sake. + */ + RARE, + + /** + * For method return values, returning <code>null</code> will never happen. + * <br><br> + * For method input parameters, passing <code>null</code> is not allowed and may result in an {@link Exception}. + */ + NEVER; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/UnitTest.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/UnitTest.java new file mode 100644 index 0000000000000000000000000000000000000000..b66a60b2862cf8d654509c44c07cf4d0dc962984 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/UnitTest.java @@ -0,0 +1,13 @@ +package com.idevicesinc.sweetblue.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * This annotation is used to dictate certain classes and/or fields which are + * only used for Unit testing, and should be ignored. + */ +@Retention(RetentionPolicy.SOURCE) +public @interface UnitTest +{ +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/package-info.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..7a5e4156d5e349f9c2400a6b9c25aab47359f139 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/annotations/package-info.java @@ -0,0 +1,4 @@ +/** + * Contains {@link java.lang.annotation.Annotation} declarations used throughout the library. + */ +package com.idevicesinc.sweetblue.annotations; diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/Backend_Modules.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/Backend_Modules.java new file mode 100644 index 0000000000000000000000000000000000000000..0f387b71f7bfab11c38a86f436baf06fa7b68635 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/Backend_Modules.java @@ -0,0 +1,15 @@ +package com.idevicesinc.sweetblue.backend; + +import com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList; +import com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDataList_Default; +import com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase; +import com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase_Default; + +/** + * A collection of {@link java.lang.Class} instances used through {@link Class#newInstance()} to create instances of backend modules. + */ +public class Backend_Modules +{ + public static Class<? extends Backend_HistoricalDataList> HISTORICAL_DATA_LIST = Backend_HistoricalDataList_Default.class; + public static Class<? extends Backend_HistoricalDatabase> HISTORICAL_DATABASE = Backend_HistoricalDatabase_Default.class; +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.java new file mode 100644 index 0000000000000000000000000000000000000000..e5f4ba6e15b80055e64d0b579643cdf163c8be31 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList.java @@ -0,0 +1,62 @@ +package com.idevicesinc.sweetblue.backend.historical; + +import com.idevicesinc.sweetblue.BleDeviceConfig; +import com.idevicesinc.sweetblue.utils.EpochTimeRange; +import com.idevicesinc.sweetblue.utils.ForEach_Breakable; +import com.idevicesinc.sweetblue.utils.ForEach_Returning; +import com.idevicesinc.sweetblue.utils.ForEach_Void; +import com.idevicesinc.sweetblue.utils.HistoricalData; +import com.idevicesinc.sweetblue.utils.HistoricalDataCursor; +import com.idevicesinc.sweetblue.utils.UpdateLoop; +import com.idevicesinc.sweetblue.utils.UuidNameMap; + +import java.util.Iterator; +import java.util.UUID; + +/** + * Defines a specification for an interface over an in-memory list of historical data that optionally syncs to/from + * disk using an implementation of {@link com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase}. + */ +public interface Backend_HistoricalDataList +{ + public static int LOAD_STATE__NOT_LOADED = 0; + public static int LOAD_STATE__LOADING = 1; + public static int LOAD_STATE__LOADED = 2; + + public interface AsyncLoadCallback + { + void onDone(); + } + + void init(final Backend_HistoricalDatabase database, final UpdateLoop updateLoop, final String macAddress, final UUID uuid, final String uuidName, final boolean hasExistingTable); + + void add_single(final HistoricalData historicalData, final int persistenceLevel, final long limit); + + void add_multiple(final Iterator<HistoricalData> historicalData, final int persistenceLevel, final long limit); + + void add_multiple(final ForEach_Returning<HistoricalData> historicalData, final int persistenceLevel, final long limit); + + int getCount(final EpochTimeRange range); + + HistoricalData get(final EpochTimeRange range, final int offset); + + Iterator<HistoricalData> getIterator(final EpochTimeRange range); + + boolean doForEach(final EpochTimeRange range, final Object forEach); + + void delete_fromMemoryOnly(final EpochTimeRange range, final long count); + + void delete_fromMemoryOnlyForNowButDatabaseSoon(final EpochTimeRange range, final long count); + + void delete_fromMemoryAndDatabase(final EpochTimeRange range, final long count); + + String getMacAddress(); + + void load(final AsyncLoadCallback callback_nullable); + + int getLoadState(); + + HistoricalDataCursor getCursor(final EpochTimeRange range); + + EpochTimeRange getRange(); +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.java new file mode 100644 index 0000000000000000000000000000000000000000..382f3eef5429029945740450daee3bb685a553ec --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDataList_Default.java @@ -0,0 +1,267 @@ +package com.idevicesinc.sweetblue.backend.historical; + +import android.util.Log; + +import com.idevicesinc.sweetblue.BleDeviceConfig; +import com.idevicesinc.sweetblue.utils.EmptyIterator; +import com.idevicesinc.sweetblue.utils.EpochTimeRange; +import com.idevicesinc.sweetblue.utils.ForEach_Breakable; +import com.idevicesinc.sweetblue.utils.ForEach_Returning; +import com.idevicesinc.sweetblue.utils.ForEach_Void; +import com.idevicesinc.sweetblue.utils.HistoricalData; +import com.idevicesinc.sweetblue.utils.HistoricalDataCursor; +import com.idevicesinc.sweetblue.utils.SingleElementIterator; +import com.idevicesinc.sweetblue.utils.UpdateLoop; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.UUID; + +public class Backend_HistoricalDataList_Default implements Backend_HistoricalDataList +{ + private static final Iterator<HistoricalData> EMPTY_ITERATOR = new EmptyIterator<HistoricalData>(); + private static final HistoricalDataCursor EMPTY_CURSOR = new P_HistoricalDataCursor_Empty(); + + private HistoricalData m_data = null; + + private String m_macAddress; + private Backend_HistoricalDatabase m_database; + + private boolean m_hasShownWarning_read = false; + private boolean m_hasShownWarning_write = false; + + public Backend_HistoricalDataList_Default() + { + } + + @Override public void init(final Backend_HistoricalDatabase database, final UpdateLoop updateLoop, final String macAddress, final UUID uuid, final String uuidName, final boolean hasExistingTable) + { + m_database = database; + m_macAddress = macAddress; + } + + private boolean isDataInRange(final EpochTimeRange range) + { + return m_data != null && m_data.getEpochTime().isBetween_inclusive(range); + } + + private void printWarning_read() + { + if( m_hasShownWarning_read ) return; + + printWarning(); + + m_hasShownWarning_read = true; + } + + private void printWarning_write() + { + if( m_hasShownWarning_write ) return; + + printWarning(); + + m_hasShownWarning_write = true; + } + + static void printWarning() + { + Log.w + ( + "SweetBlue", + "NOTICE: The historical data API backend in this version of SweetBlue can only track one piece of data at a time to RAM only. " + + "Please contact sweetblue@idevicesinc.com to discuss upgrading to the unlimited backend with database persistence." + ); + } + + @Override public void add_single(HistoricalData historicalData, final int persistenceLevel, long limit) + { + if( persistenceLevel == BleDeviceConfig.HistoricalDataLogFilter.PersistenceLevel_NONE ) return; + + if( limit <= 0 ) + { + m_data = null; + } + + final boolean alreadyHadData = m_data != null; + + m_data = historicalData; + + if( alreadyHadData || persistenceLevel == BleDeviceConfig.HistoricalDataLogFilter.PersistenceLevel_DISK ) + { + printWarning_write(); + } + } + + @Override public void add_multiple(Iterator<HistoricalData> historicalData, final int persistenceLevel, final long limit) + { + while(historicalData.hasNext() ) + { + add_single(historicalData.next(), persistenceLevel, Long.MAX_VALUE); + } + } + + @Override public void add_multiple(ForEach_Returning<HistoricalData> historicalData, final int persistenceLevel, final long limit) + { + int i = 0; + + while( true ) + { + final HistoricalData next = historicalData.next(i); + + if( next == null ) break; + + add_single(next, persistenceLevel, limit); + + i++; + } + } + + @Override public int getCount(EpochTimeRange range) + { + if( isDataInRange(range) ) + { + return 1; + } + else + { + return 0; + } + } + + @Override public HistoricalData get(EpochTimeRange range, int offset) + { + if( isDataInRange(range) ) + { + if( offset > 0 ) + { + printWarning_read(); + + return HistoricalData.NULL; + } + else + { + return m_data; + } + } + else + { + return HistoricalData.NULL; + } + } + + @Override public Iterator<HistoricalData> getIterator(EpochTimeRange range) + { + if( isDataInRange(range) ) + { + return new SingleElementIterator<HistoricalData>(m_data) + { + @Override protected void onRemove() + { + m_data = null; + } + }; + } + else + { + return EMPTY_ITERATOR; + } + } + + @Override public boolean doForEach(EpochTimeRange range, Object forEach) + { + if( isDataInRange(range) ) + { + if( forEach instanceof ForEach_Void ) + { + ((ForEach_Void)forEach).next(m_data); + + return true; + } + else if( forEach instanceof ForEach_Breakable ) + { + ((ForEach_Breakable)forEach).next(m_data); + + return true; + } + else + { + return false; + } + } + else + { + return false; + } + } + + @Override public void delete_fromMemoryOnly(EpochTimeRange range, long count) + { + if( count > 0 && isDataInRange(range) ) + { + m_data = null; + } + + if( count > 1 ) + { + printWarning_write(); + } + } + + @Override public void delete_fromMemoryOnlyForNowButDatabaseSoon(EpochTimeRange range, long count) + { + delete_fromMemoryOnly(range, count); + + printWarning_write(); + } + + @Override public void delete_fromMemoryAndDatabase(EpochTimeRange range, long count) + { + delete_fromMemoryOnly(range, count); + + printWarning_write(); + } + + @Override public String getMacAddress() + { + return m_macAddress; + } + + @Override public void load(AsyncLoadCallback callback_nullable) + { + printWarning_write(); + } + + @Override public int getLoadState() + { + return LOAD_STATE__NOT_LOADED; + } + + @Override public HistoricalDataCursor getCursor(EpochTimeRange range) + { + if( m_data != null ) + { + final ArrayList<HistoricalData> list = new ArrayList<HistoricalData>(); + list.add(m_data); + + P_HistoricalDataIndexCache indexCache = new P_HistoricalDataIndexCache(m_data.getEpochTime(), m_data.getEpochTime(), 0, 0); + + return new P_HistoricalDataCursor_List(list, indexCache); + } + else + { + return EMPTY_CURSOR; + } + } + + @Override public EpochTimeRange getRange() + { + if( m_data != null ) + { + return EpochTimeRange.instant(m_data.getEpochTime()); + } + else + { + return EpochTimeRange.NULL; + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.java new file mode 100644 index 0000000000000000000000000000000000000000..e9c438d18b10fe072251bf62370d1e2a768cec0d --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase.java @@ -0,0 +1,51 @@ +package com.idevicesinc.sweetblue.backend.historical; + + +import android.content.Context; +import android.database.Cursor; + +import com.idevicesinc.sweetblue.BleDeviceConfig; +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.utils.EpochTimeRange; +import com.idevicesinc.sweetblue.utils.ForEach_Void; +import com.idevicesinc.sweetblue.utils.HistoricalData; +import com.idevicesinc.sweetblue.utils.HistoricalDataCursor; + +import java.util.UUID; + +/** + * Defines a specification for an interface over a disk-persisted database (probably SQL-based but not necessarily) + * storing arbitrary historical data for each MAC-address/UUID combination provided. + */ +public interface Backend_HistoricalDatabase +{ + void init(final BleManager manager); + + void add_single(final String macAddress, final UUID uuid, final HistoricalData data, final long maxCountToDelete); + + void add_multiple_start(); + + void add_multiple_next(final String macAddress, final UUID uuid, final HistoricalData data); + + void add_multiple_end(); + + void delete_singleUuid_all(final String macAddress, final UUID uuid); + + void delete_singleUuid_inRange(final String macAddress, final UUID uuid, final EpochTimeRange range, final long maxCountToDelete); + + void delete_singleUuid_singleDate(final String macAddress, final UUID uuid, final long date); + + void delete_multipleUuids(final String[] macAddresses, final UUID[] uuids, final EpochTimeRange range, final long count); + + boolean doesDataExist(final String macAddress, final UUID uuid); + + void load(final String macAddress, final UUID uuid, final EpochTimeRange range, final ForEach_Void<HistoricalData> forEach); + + int getCount(final String macAddress, final UUID uuid, final EpochTimeRange range); + + HistoricalDataCursor getCursor(final String macAddress, final UUID uuid, final EpochTimeRange range); + + Cursor query(final String query); + + String getTableName(final String macAddress, final UUID uuid); +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.java new file mode 100644 index 0000000000000000000000000000000000000000..9d05b5296841ad9c3720e6cb5856b7fdbdf11750 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/Backend_HistoricalDatabase_Default.java @@ -0,0 +1,127 @@ +package com.idevicesinc.sweetblue.backend.historical; + + +import android.content.Context; +import android.database.Cursor; + +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.utils.EmptyCursor; +import com.idevicesinc.sweetblue.utils.EpochTimeRange; +import com.idevicesinc.sweetblue.utils.ForEach_Void; +import com.idevicesinc.sweetblue.utils.HistoricalData; +import com.idevicesinc.sweetblue.utils.HistoricalDataCursor; + +import java.util.UUID; + +/** + * Defines a specification for an interface over a disk-persisted database (probably SQL-based but not necessarily) + * storing arbitrary historical data for each MAC-address/UUID combination provided. + */ +public class Backend_HistoricalDatabase_Default implements Backend_HistoricalDatabase +{ + private static final HistoricalDataCursor EMPTY_CURSOR = new P_HistoricalDataCursor_Empty(); + + private boolean m_hasShownWarning = false; + + public Backend_HistoricalDatabase_Default(final Context context) + { + } + + public Backend_HistoricalDatabase_Default() + { + } + + private void printWarning() + { + if( m_hasShownWarning == true ) return; + + Backend_HistoricalDataList_Default.printWarning(); + + m_hasShownWarning = true; + } + + @Override public void init(final BleManager manager) + { + + } + + @Override public void add_single(final String macAddress, final UUID uuid, final HistoricalData data, final long maxCountToDelete) + { + printWarning(); + } + + @Override public void add_multiple_start() + { + printWarning(); + } + + @Override public void add_multiple_next(final String macAddress, final UUID uuid, final HistoricalData data) + { + printWarning(); + } + + @Override public void add_multiple_end() + { + printWarning(); + } + + @Override public void delete_singleUuid_all(final String macAddress, final UUID uuid) + { + printWarning(); + } + + @Override public void delete_singleUuid_inRange(final String macAddress, final UUID uuid, final EpochTimeRange range, final long maxCountToDelete) + { + printWarning(); + } + + @Override public void delete_singleUuid_singleDate(final String macAddress, final UUID uuid, final long date) + { + printWarning(); + } + + @Override public void delete_multipleUuids(final String[] macAddresses, final UUID[] uuids, final EpochTimeRange range, final long count) + { + printWarning(); + } + + @Override public boolean doesDataExist(final String macAddress, final UUID uuid) + { + printWarning(); + + return false; + } + + @Override public void load(final String macAddress, final UUID uuid, final EpochTimeRange range, final ForEach_Void<HistoricalData> forEach) + { + printWarning(); + } + + @Override public int getCount(String macAddress, UUID uuid, final EpochTimeRange range) + { + printWarning(); + + return 0; + } + + @Override public HistoricalDataCursor getCursor(String macAddress, UUID uuid, EpochTimeRange range) + { + printWarning(); + + return EMPTY_CURSOR; + } + + @Override public Cursor query(String query) + { + printWarning(); + + return EmptyCursor.SINGLETON; + } + + @Override public String getTableName(String macAddress, UUID uuid) + { + printWarning(); + + return ""; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/P_HistoricalDataCursor_Empty.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/P_HistoricalDataCursor_Empty.java new file mode 100644 index 0000000000000000000000000000000000000000..dfd1297400daed5dc8aa94ddb1e8f71257b8131c --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/P_HistoricalDataCursor_Empty.java @@ -0,0 +1,97 @@ +package com.idevicesinc.sweetblue.backend.historical; + +import android.database.Cursor; + +import com.idevicesinc.sweetblue.utils.EpochTime; +import com.idevicesinc.sweetblue.utils.HistoricalData; +import com.idevicesinc.sweetblue.utils.HistoricalDataCursor; + +class P_HistoricalDataCursor_Empty implements HistoricalDataCursor +{ + private static final byte[] EMPTY_BLOB = new byte[0]; + + @Override public int getCount() + { + return 0; + } + + @Override public int getPosition() + { + return -1; + } + + @Override public boolean move(int offset) + { + return false; + } + + @Override public boolean moveToPosition(int position) + { + return false; + } + + @Override public boolean moveToFirst() + { + return false; + } + + @Override public boolean moveToLast() + { + return false; + } + + @Override public boolean moveToNext() + { + return false; + } + + @Override public boolean moveToPrevious() + { + return false; + } + + @Override public boolean isFirst() + { + return false; + } + + @Override public boolean isLast() + { + return false; + } + + @Override public boolean isBeforeFirst() + { + return false; + } + + @Override public boolean isAfterLast() + { + return false; + } + + @Override public void close() + { + + } + + @Override public boolean isClosed() + { + return true; + } + + @Override public long getEpochTime() + { + return EpochTime.NULL.toMilliseconds(); + } + + @Override public byte[] getBlob() + { + return EMPTY_BLOB; + } + + @Override public HistoricalData getHistoricalData() + { + return HistoricalData.NULL; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/P_HistoricalDataCursor_List.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/P_HistoricalDataCursor_List.java new file mode 100644 index 0000000000000000000000000000000000000000..450d3fc20e16b958a61c76ee5b5e2eb4030f3a8d --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/P_HistoricalDataCursor_List.java @@ -0,0 +1,134 @@ +package com.idevicesinc.sweetblue.backend.historical; + +import android.database.Cursor; + +import com.idevicesinc.sweetblue.utils.EpochTimeRange; +import com.idevicesinc.sweetblue.utils.HistoricalData; +import com.idevicesinc.sweetblue.utils.HistoricalDataCursor; + +import java.util.List; + +class P_HistoricalDataCursor_List implements HistoricalDataCursor +{ + private final List<HistoricalData> m_historicalData; + private final P_HistoricalDataIndexCache m_indexCache; + + private int m_position = -1; + + private boolean m_isClosed = false; + + public P_HistoricalDataCursor_List(final List<HistoricalData> data, final P_HistoricalDataIndexCache indexCache) + { + m_historicalData = data; + m_indexCache = indexCache; + } + + @Override public int getCount() + { + return m_indexCache.getCount(); + } + + private boolean checkPosition(final int newPosition) + { + return newPosition >= m_indexCache.m_from_index && newPosition <= m_indexCache.m_to_index; + } + + @Override public int getPosition() + { + return m_position; + } + + @Override public boolean move(int offset) + { + return moveToPosition(getPosition() + offset); + } + + @Override public boolean moveToPosition(int position) + { + if( checkPosition(position) ) + { + m_position = position; + + return false; + } + else + { + return false; + } + } + + @Override public boolean moveToFirst() + { + return moveToPosition(m_indexCache.m_from_index); + } + + @Override public boolean moveToLast() + { + return moveToPosition(getCount()-1); + } + + @Override public boolean moveToNext() + { + return moveToPosition(getPosition()+1); + } + + @Override public boolean moveToPrevious() + { + return moveToPosition(getPosition()-1); + } + + @Override public boolean isFirst() + { + return getPosition() == 0; + } + + @Override public boolean isLast() + { + return getPosition() == getCount()-1; + } + + @Override public boolean isBeforeFirst() + { + return m_position == -1; + } + + @Override public boolean isAfterLast() + { + return m_position >= getCount(); + } + + @Override public void close() + { + if( m_isClosed ) return; + + m_isClosed = true; + } + + @Override public boolean isClosed() + { + return m_isClosed; + } + + @Override public long getEpochTime() + { + return getHistoricalData().getEpochTime_millis(); + } + + @Override public byte[] getBlob() + { + return getHistoricalData().getBlob(); + } + + @Override public HistoricalData getHistoricalData() + { + if( checkPosition(getPosition()) ) + { + return m_historicalData.get(getPosition()); + } + else + { + return HistoricalData.NULL; + } + } + +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/P_HistoricalDataIndexCache.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/P_HistoricalDataIndexCache.java new file mode 100644 index 0000000000000000000000000000000000000000..5a04966173ae5de5356e3d9cdb9a9f639d5c69f4 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/P_HistoricalDataIndexCache.java @@ -0,0 +1,57 @@ +package com.idevicesinc.sweetblue.backend.historical; + +import com.idevicesinc.sweetblue.utils.EpochTime; +import com.idevicesinc.sweetblue.utils.EpochTimeRange; + +class P_HistoricalDataIndexCache +{ + private final long m_from_date; + private final long m_to_date; + + final int m_from_index; + int m_to_index; + + P_HistoricalDataIndexCache(final EpochTime from_date, final EpochTime to_date, final int from_index, final int to_index) + { + this(from_date.toMilliseconds(), to_date.toMilliseconds(), from_index, to_index); + } + + P_HistoricalDataIndexCache(final long from_date, final long to_date, final int from_index, final int to_index) + { + m_from_date = from_date; + m_to_date = to_date; + + m_from_index = from_index; + m_to_index = to_index; + } + + boolean isValid() + { + return m_from_index >= 0 && m_to_index >= 0 && m_from_index <= m_to_index; + } + + boolean equals(final EpochTimeRange range) + { + return m_from_date == range.from().toMilliseconds() && m_to_date == range.to().toMilliseconds(); + } + + boolean fromIsSame(final EpochTime from_date) + { + return m_from_date == from_date.toMilliseconds(); + } + + boolean toIsSame(final EpochTime to_date) + { + return m_to_date == to_date.toMilliseconds(); + } + + boolean isInBounds(final int offset) + { + return isValid() && m_from_index + offset <= m_to_index; + } + + int getCount() + { + return isValid() ? (m_to_index - m_from_index) + 1 : 0; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/package-info.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..fabb824d57bd88d365d19d77b05fad0e392baa9a --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/historical/package-info.java @@ -0,0 +1,8 @@ +/** + * Contains specification and default implementation of a "backend" for instances of {@link com.idevicesinc.sweetblue.BleDevice} + * that stores and manages historical data. The default implementation released with the open source GPLv3 code can only + * track one piece of historical data per UUID at a time, and only to memory. + * <br><br> + * Please contact sweetblue@idevicesinc.com to discuss upgrade options. + */ +package com.idevicesinc.sweetblue.backend.historical; diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/package-info.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..8276c61ba399666eeff08b5b58c36a9d93946eb6 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/backend/package-info.java @@ -0,0 +1,23 @@ +/** + * Contains specification and default implementation of "backend" modules for SweetBlue. You never use anything in these subpackages + * directly - rather they are the implementations for various official public methods of classes like {@link com.idevicesinc.sweetblue.BleDevice} + * and {@link com.idevicesinc.sweetblue.BleManager}. Implementations released with the open source + * GPLv3 code are restricted to give you a sample of the functionality but are most-likely not useful for production purposes. + * Please contact sweetblue@idevicesinc.com to discuss upgrade options. + * <br><br> + * The current back-end modules are as follows: + * <p><ul> + * <li>Historical Data for tracking past results of reads and notifications.</li> + * </ul></p> + * <br><br> + * In varying stages of development are: + * <p><ul> + * <li>iBeacon/AltBeacon support.</li> + * <li>BLE Server support (phone acts as the server).</li> + * </ul></p> + * <br><br> + * NOTE: In general nothing in these subpackages is subject to backwards-compatible guarantees like the rest of the core of the library is. + * Method and interface signatures may change without warning, which should be fine because the average person using SweetBlue doesn't + * need to worry about how the back-end is implemented. + */ +package com.idevicesinc.sweetblue.backend; diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/compat/K_Util.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/compat/K_Util.java new file mode 100644 index 0000000000000000000000000000000000000000..b67531a5ca1ea923a44c4fea8f4962b7a724e037 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/compat/K_Util.java @@ -0,0 +1,24 @@ +package com.idevicesinc.sweetblue.compat; + + +import android.annotation.TargetApi; +import android.os.Build; +import com.idevicesinc.sweetblue.BleDevice; + + +@TargetApi(Build.VERSION_CODES.KITKAT) +public class K_Util +{ + + private K_Util() {} + + + public static void abortReliableWrite(BleDevice device) { + device.getNativeGatt().abortReliableWrite(); + } + + public static boolean createBond(BleDevice device) { + return device.getNative().createBond(); + } + +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/compat/L_Util.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/compat/L_Util.java new file mode 100644 index 0000000000000000000000000000000000000000..1194dbaa294f19332a8ec95ec1db431a11ad9ef8 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/compat/L_Util.java @@ -0,0 +1,141 @@ +package com.idevicesinc.sweetblue.compat; + + +import android.annotation.TargetApi; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.le.ScanSettings; +import android.os.Build; +import com.idevicesinc.sweetblue.BleDevice; +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.utils.Interval; + +import java.util.ArrayList; +import java.util.List; + + +@TargetApi(Build.VERSION_CODES.LOLLIPOP) +public class L_Util +{ + + private L_Util() {} + + + public interface ScanCallback + { + void onScanResult(int callbackType, ScanResult result); + void onBatchScanResults(List<ScanResult> results); + void onScanFailed(int errorCode); + } + + public static class ScanResult + { + private BluetoothDevice device; + private int rssi; + private byte[] record; + + public BluetoothDevice getDevice() { + return device; + } + + public int getRssi() { + return rssi; + } + + public byte[] getRecord() { + return record; + } + } + + private static ScanCallback m_UserCallback; + + private static ScanResult toLScanResult(android.bluetooth.le.ScanResult result) { + ScanResult res = new ScanResult(); + res.device = result.getDevice(); + res.rssi = result.getRssi(); + res.record = result.getScanRecord().getBytes(); + return res; + } + + private static List<ScanResult> toLScanResults(List<android.bluetooth.le.ScanResult> results) { + int size = results.size(); + List<ScanResult> res = new ArrayList<ScanResult>(size); + for (int i = 0; i < size; i++) { + res.add(toLScanResult(results.get(i))); + } + return res; + } + + private static android.bluetooth.le.ScanCallback m_callback = new android.bluetooth.le.ScanCallback() + { + @Override public void onScanResult(int callbackType, android.bluetooth.le.ScanResult result) + { + if (m_UserCallback != null) { + m_UserCallback.onScanResult(callbackType, toLScanResult(result)); + } + } + + @Override public void onBatchScanResults(List<android.bluetooth.le.ScanResult> results) + { + if (m_UserCallback != null) { + m_UserCallback.onBatchScanResults(toLScanResults(results)); + } + } + + @Override public void onScanFailed(int errorCode) + { + if (m_UserCallback != null) { + m_UserCallback.onScanFailed(errorCode); + } + } + }; + + static android.bluetooth.le.ScanCallback getNativeCallback() { + return m_callback; + } + + + public static boolean requestMtu(BleDevice device, int mtu) { + return device.getNativeGatt().requestMtu(mtu); + } + + public static boolean isAdvertisingSupportedByChipset(BleManager mgr) { + return mgr.getNativeAdapter().isMultipleAdvertisementSupported(); + } + + public static void stopNativeScan(BleManager mgr) { + mgr.getNativeAdapter().getBluetoothLeScanner().stopScan(m_callback); + } + + public static boolean requestConnectionPriority(BleDevice device, int mode) { + return device.getNativeGatt().requestConnectionPriority(mode); + } + + public static void startNativeScan(BleManager mgr, int scanMode, Interval scanReportDelay, ScanCallback listener) { + + final ScanSettings settings = buildSettings(mgr, scanMode, scanReportDelay).build(); + + startScan(mgr, settings, listener); + } + + static ScanSettings.Builder buildSettings(BleManager mgr, int scanMode, Interval scanReportDelay) { + final ScanSettings.Builder builder = new ScanSettings.Builder(); + builder.setScanMode(scanMode); + + if( mgr.getNativeAdapter().isOffloadedScanBatchingSupported() ) + { + final long scanReportDelay_millis = false == Interval.isDisabled(scanReportDelay) ? scanReportDelay.millis() : 0; + builder.setReportDelay(scanReportDelay_millis); + } + else + { + builder.setReportDelay(0); + } + return builder; + } + + static void startScan(BleManager mgr, ScanSettings scanSettings, ScanCallback listener) { + m_UserCallback = listener; + mgr.getNativeAdapter().getBluetoothLeScanner().startScan(null, scanSettings, m_callback); + } + +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/compat/M_Util.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/compat/M_Util.java new file mode 100644 index 0000000000000000000000000000000000000000..90a25b11bcb53ee2a10724da028455d6b3c0ad20 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/compat/M_Util.java @@ -0,0 +1,48 @@ +package com.idevicesinc.sweetblue.compat; + + +import android.Manifest; +import android.annotation.TargetApi; +import android.app.Activity; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCallback; +import android.bluetooth.le.ScanSettings; +import android.content.Context; +import android.os.Build; +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.utils.Interval; + + +@TargetApi(Build.VERSION_CODES.M) +public class M_Util +{ + + private M_Util() {} + + public static boolean shouldShowRequestPermissionRationale(Activity context) { + return context.shouldShowRequestPermissionRationale(Manifest.permission.ACCESS_COARSE_LOCATION); + } + + public static void requestPermissions(Activity context, int requestCode) { + context.requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, requestCode); + } + + public static void startNativeScan(BleManager mgr, int scanMode, Interval scanReportDelay, L_Util.ScanCallback listener) { + final ScanSettings.Builder builder = L_Util.buildSettings(mgr, scanMode, scanReportDelay); + + builder.setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES); + builder.setMatchMode(ScanSettings.MATCH_MODE_AGGRESSIVE); + builder.setNumOfMatches(ScanSettings.MATCH_NUM_MAX_ADVERTISEMENT); + + final ScanSettings scanSettings = builder.build(); + + L_Util.startScan(mgr, scanSettings, listener); + } + + public static BluetoothGatt connect(BluetoothDevice device, Context context, BluetoothGattCallback callback) + { + return device.connectGatt(context, false, callback, BluetoothDevice.TRANSPORT_LE); + } + +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/compat/package-info.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/compat/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..54c30d22a2232dc6d942b1e18defd8bbf1c63524 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/compat/package-info.java @@ -0,0 +1,5 @@ +/** + * Contains utility classes for hiding away newer API calls. This exists simply to avoid + * getting logcat error statements when running on older devices. + */ +package com.idevicesinc.sweetblue.compat; diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/package-info.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..d01c6d977330f99e138474bff54c16b60f699351 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/package-info.java @@ -0,0 +1,5 @@ +/** + * Contains the core public-facing classes {@link com.idevicesinc.sweetblue.BleDevice} and {@link com.idevicesinc.sweetblue.BleManager} + * and most of the internal guts for SweetBlue, the easiest way to do BLE on Android. + */ +package com.idevicesinc.sweetblue; diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/BasicUuidNameMap.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/BasicUuidNameMap.java new file mode 100644 index 0000000000000000000000000000000000000000..013922686f4ebc9fb0a3dcaec2ce7134627d19cc --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/BasicUuidNameMap.java @@ -0,0 +1,32 @@ +package com.idevicesinc.sweetblue.utils; + +import java.util.HashMap; +import java.util.UUID; + +import com.idevicesinc.sweetblue.BleManagerConfig; + +/** + * Manual convenience implementation of {@link UuidNameMap} that's basically just a {@link HashMap}. + * + * Provide an instance to {@link BleManagerConfig#uuidNameMaps} if desired. + * + * @see ReflectionUuidNameMap + * @see BleManagerConfig#uuidNameMaps + */ +public class BasicUuidNameMap implements UuidNameMap +{ + private final HashMap<String, String> m_dict = new HashMap<String, String>(); + + /** + * Add a {@link UUID}-to-debug name entry. + */ + public void add(String uuid, String name) + { + m_dict.put(uuid, name); + } + + @Override public String getUuidName(String uuid) + { + return m_dict.get(uuid); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/BitwiseEnum.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/BitwiseEnum.java new file mode 100644 index 0000000000000000000000000000000000000000..11d08a8524a6daff92092e800ebeb96cc7991427 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/BitwiseEnum.java @@ -0,0 +1,37 @@ +package com.idevicesinc.sweetblue.utils; + +/** + * Contract to force <code>enum</code> implementors to comply to common bitwise operations. + */ +public interface BitwiseEnum +{ + /** + * Does a bitwise OR for this state and the given state. + */ + int or(BitwiseEnum state); + + /** + * Does a bitwise OR for this state and the given bits. + */ + int or(int bits); + + /** + * Returns the bit (0x1, 0x2, 0x4, etc.) this enum represents based on the {@link #ordinal()}. + */ + int bit(); + + /** + * Convenience method for checking if <code>({@link #bit()} & mask) != 0x0</code>. + */ + boolean overlaps(int mask); + + /** + * Same as {@link Enum#ordinal()}. + */ + int ordinal(); + + /** + * Same as {@link Enum#name()}. + */ + String name(); +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/BleScanInfo.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/BleScanInfo.java new file mode 100644 index 0000000000000000000000000000000000000000..4ecc5f08d91a4636e91634689a0fa56f90eb531d --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/BleScanInfo.java @@ -0,0 +1,105 @@ +package com.idevicesinc.sweetblue.utils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +public class BleScanInfo +{ + private int m_manufactuerId; + private byte[] m_manufacturerData; + private final Pointer<Integer> m_advFlags; + private final Pointer<Integer> m_txPower; + private final List<UUID> m_serviceUuids; + private final Map<UUID, byte[]> m_serviceData; + private String m_localName; + + public BleScanInfo() + { + m_manufactuerId = -1; + m_manufacturerData = new byte[32]; + m_advFlags = new Pointer<>(0); + m_txPower = new Pointer<>(0); + m_serviceUuids = new ArrayList<>(); + m_serviceData = new HashMap<>(); + m_localName = ""; + } + + public BleScanInfo(Pointer<Integer> advFlags, Pointer<Integer> txPower, List<UUID> serviceUuids, int mfgId, byte[] mfgData, Map<UUID, byte[]> serviceData, String localName) + { + m_advFlags = advFlags; + m_txPower = txPower; + m_serviceUuids = serviceUuids; + m_manufactuerId = mfgId; + m_manufacturerData = mfgData; + m_serviceData = serviceData; + m_localName = localName; + } + + public void clearServiceData() + { + m_serviceData.clear(); + } + + public void populateServiceData(Map<UUID, byte[]> data) + { + m_serviceData.putAll(data); + } + + public void clearServiceUUIDs() + { + m_serviceUuids.clear(); + } + + public void populateServiceUUIDs(List<UUID> uuids) + { + m_serviceUuids.addAll(uuids); + } + + public void setManufacturerId(int id) + { + m_manufactuerId = id; + } + + public void setManufacturerData(byte[] data) + { + m_manufacturerData = data; + } + + public int getManufacturerId() + { + return m_manufactuerId; + } + + public byte[] getManufacturerData() + { + return m_manufacturerData; + } + + public Pointer<Integer> getAdvFlags() + { + return m_advFlags; + } + + public Pointer<Integer> getTxPower() + { + return m_txPower; + } + + public List<UUID> getServiceUUIDS() + { + return m_serviceUuids; + } + + public Map<UUID, byte[]> getServiceData() + { + return m_serviceData; + } + + public String getName() + { + return m_localName; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/BluetoothEnabler.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/BluetoothEnabler.java new file mode 100644 index 0000000000000000000000000000000000000000..33e81dc47000f638c3c4a733f5f8f3b029c94281 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/BluetoothEnabler.java @@ -0,0 +1,980 @@ +package com.idevicesinc.sweetblue.utils; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.Application; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.os.Bundle; +import android.util.Log; +import android.widget.Toast; +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.BleManagerState; +import com.idevicesinc.sweetblue.P_StringHandler; +import com.idevicesinc.sweetblue.annotations.Advanced; + +/** + * This class is used to handle the new hairy logic for getting bluetooth low-energy scan results that is introduced with {@link android.os.Build.VERSION_CODES#M}. + * With {@link android.os.Build.VERSION_CODES#M} you need to have {@link android.Manifest.permission#ACCESS_COARSE_LOCATION} or {@link android.Manifest.permission#ACCESS_FINE_LOCATION} + * in your AndroidManifest.xml, and also enable them at runtime, AND also make sure location services are on. + * <br><br> + * See more information at <a target="_blank" href="https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues#android-m-issues">https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues#android-m-issues</a> + * <br><br> + * This class is simply a convenience that wraps various helper methods of {@link BleManager} (see the "See Also" section, which has enough links that it might give you + * an idea of why {@link BluetoothEnabler} was written). As such you don't need to use it, but in combination with {@link BluetoothEnabler.DefaultBluetoothEnablerFilter} + * it comes in handy as a one-line addition to most simple apps. + * + * @see BleManager#isLocationEnabledForScanning() + * @see BleManager#isLocationEnabledForScanning_byManifestPermissions() + * @see BleManager#isLocationEnabledForScanning_byRuntimePermissions() + * @see BleManager#isLocationEnabledForScanning_byOsServices() + * @see BleManager#turnOnLocationWithIntent_forPermissions(Activity, int) + * @see BleManager#turnOnLocationWithIntent_forOsServices(Activity, int) + * @see BleManager#turnOnWithIntent(Activity, int) + * @see BleManager#willLocationPermissionSystemDialogBeShown(Activity) + * @see <a target="_blank" href="https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues#android-m-issues">https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues#android-m-issues</a> + */ +public class BluetoothEnabler +{ + /** + * Overload of {@link #start(Activity)} but given {@link Context} must be an {@link Activity}. + */ + public static BluetoothEnabler start(final Context context) + { + return start(context, new DefaultBluetoothEnablerFilter()); + } + + /** + * Overload of {@link #start(Activity, BluetoothEnablerFilter)} but given {@link Context} must be an {@link Activity}. + */ + public static BluetoothEnabler start(final Context context, final BluetoothEnablerFilter filter) + { + if( context instanceof Activity ) + { + return start((Activity)context, filter); + } + else + { + Log.e(BluetoothEnabler.class.getSimpleName(), "Given Context must be an Activity!"); + + return null; + } + } + + /** + * Static equivalent of {@link #resume(BluetoothEnablerFilter.Please)} that you can use to call down into the + * singleton created by {@link #start(Activity, BluetoothEnablerFilter)} (or overloads). + */ + public static void resume_static(final BluetoothEnablerFilter.Please please) + { + if( s_instance != null ) + { + s_instance.resume(please); + } + } + + /** + * Static equivalent of {@link #onActivityOrPermissionResult(int)} that you can use to call down into the + * singleton created by {@link #start(Activity, BluetoothEnablerFilter)} (or overloads). + */ + public static void onActivityOrPermissionResult_static(int requestCode) + { + if( s_instance != null ) + { + s_instance.onActivityOrPermissionResult(requestCode); + } + } + + /** + * Overload of {@link #start(Activity, BluetoothEnablerFilter)} that uses an instance of {@link com.idevicesinc.sweetblue.utils.BluetoothEnabler.DefaultBluetoothEnablerFilter}. + */ + public static BluetoothEnabler start(final Activity activity) + { + return start(activity, new DefaultBluetoothEnablerFilter()); + } + + /** + * Kicks off the complex flow needed to fully enable Bluetooth on Build versions greater than or equal to {@link android.os.Build.VERSION_CODES#M}. + */ + public static BluetoothEnabler start(final Activity activity, final BluetoothEnablerFilter filter) + { + if( s_instance != null && false == s_instance.isDone() ) + { + s_instance.setNewFilter(filter); + } + else + { + s_instance = new BluetoothEnabler(activity, filter); + s_instance.dispatchEvent(s_instance.getStage(), s_instance.getStage().next(), BluetoothEnablerFilter.Status.NULL); + + } + + return s_instance; + } + + //--- DRK > Lazy singleton probably not ideal but protects enough against common misuse cases that it's probably justified. + //--- Can just make constructors public in future if people need it. + private static BluetoothEnabler s_instance; + + /** + * Provide an implementation to {@link BluetoothEnabler#BluetoothEnabler(Activity, BluetoothEnablerFilter)} to receive callbacks or simply use the provided class + * {@link DefaultBluetoothEnablerFilter} by calling {@link #start(Activity)}. + */ + public static interface BluetoothEnablerFilter + { + /** + * Enumerates changes in the "enabling" stage before a + * Bluetooth LE scan is started. Used at {@link BluetoothEnablerFilter.BluetoothEnablerEvent} to denote + * what the current stage as well as in {@link BluetoothEnablerEvent#nextStage()} to give the following stage to the current one. + */ + public static enum Stage implements UsesCustomNull + { + /** + * Fulfills the soft contract of {@link UsesCustomNull}. + */ + NULL, + + /** + * The initial enabling stage. This stage begins the process and kicks off the following stage {@link BluetoothEnablerFilter.Stage#BLUETOOTH}. + */ + START, + + /** + * Used when checking if the device needs Bluetooth turned on and enabling Bluetooth if it is disabled. + */ + BLUETOOTH, + + /** + * Used when checking and requesting location permissions from the user. This stage will be skipped if the device isn't running {@link android.os.Build.VERSION_CODES#M}. + */ + LOCATION_PERMISSION, + + /** + * Used when checking if the device needs Location services turned on and enabling Location services if they are disabled. This step isn't necessarily needed for overall + * Bluetooth scanning. It is only needed for Bluetooth Low Energy scanning in {@link android.os.Build.VERSION_CODES#M}; otherwise, SweetBlue will default to classic scanning. + */ + LOCATION_SERVICES; + + + private Stage next() + { + return ordinal() + 1 < values().length ? values()[ordinal() + 1] : NULL; + } + + private Stage previous() + { + return ordinal() - 1 > 0 ? values()[ordinal() - 1] : NULL; + } + + public boolean isNull() + { + return this == NULL; + } + + public boolean isLast() + { + return this == LOCATION_SERVICES; + } + + public boolean isLocationRelated() + { + return this == LOCATION_SERVICES || this == LOCATION_PERMISSION; + } + } + + /** + * The Status of the current {@link BluetoothEnablerFilter.Stage} + */ + public static enum Status implements UsesCustomNull + { + /** + * Fulfills the soft contract of {@link UsesCustomNull}. + */ + NULL, + + /** + * If the current stage has already been enabled on the device + */ + ALREADY_ENABLED, + + /** + * If the user was prompted to enable a setting and they responded by enabling it + */ + ENABLED, + + /** + * If the app wasn't compiled against {@link android.os.Build.VERSION_CODES#M} then the {@link BluetoothEnablerFilter.Stage#LOCATION_PERMISSION} isn't needed + * because the underlying function call{@link Activity#requestPermissions(String[], int)} doesn't exist for this SDK version. + */ + NOT_NEEDED, + + /** + * If there was a dialog for the current state and the user declined (denied) the dialog. + */ + CANCELLED_BY_DIALOG, + + /** + * If the user accepted the dialog but didn't actually enable/grant the requested setting + */ + CANCELLED_BY_INTENT, + + /** + * If the programmer of the application chose to skip a stage + */ + SKIPPED, + + /** + * A permission is needed in your AndroidManifest.xml - for now this only applies to {@link Stage#LOCATION_PERMISSION}, + * which requires either {@link android.Manifest.permission#ACCESS_COARSE_LOCATION} or {@link android.Manifest.permission#ACCESS_FINE_LOCATION}. + */ + MANIFEST_PERMISSION_NEEDED, + + /** + * If the programmer of the application chose to call {@link Please#stop()}. + */ + STOPPED; + + /** + * Returns <code>true</code> if <code>this</code> == {@link #NULL}. + */ + @Override public boolean isNull() + { + return this == NULL; + } + + public boolean isCancelled() + { + return this == CANCELLED_BY_DIALOG || this == CANCELLED_BY_INTENT; + } + + public boolean wasPreviouslyNotEnabled() + { + return this != ALREADY_ENABLED; + } + } + + /** + * Events passed to {@link BluetoothEnablerFilter#onEvent(BluetoothEnablerEvent)} so that the programmer can assign logic to the user's decision to + * enable or disable certain required permissions and settings. Each event contains a {@link BluetoothEnablerFilter.Stage} which holds the current + * enabling stage and a {@link BluetoothEnablerFilter.Status} of that stage. Stages which haven't been performed yet start off as + * {@link BluetoothEnablerFilter.Status#NULL}, stages skipped are {@link BluetoothEnablerFilter.Status#SKIPPED} and + * stages that don't need anything done are {@link BluetoothEnablerFilter.Status#ALREADY_ENABLED}. Otherwise, the status of the stage is whatever the user selected. + */ + public static class BluetoothEnablerEvent extends Event + { + /** + * Returns the {@link BluetoothEnablerFilter.Stage} associated with this event. + */ + public Stage stage() { return m_stage; } + private final Stage m_stage; + + /** + * Returns the {@link BluetoothEnablerFilter.Stage} following the Stage for this event. + */ + public Stage nextStage() { return m_nextStage; } + private final Stage m_nextStage; + + /** + * Returns the {@link BluetoothEnablerFilter.Stage} following the Stage for this event. + */ + public Stage previousStage() { return m_stage.previous(); } + + /** + * Returns the {@link BluetoothEnablerFilter.Status} of the current Stage. + */ + public Status status() { return m_status; } + private final Status m_status; + + /** + * Returns the {@link Activity} associated with the Event + */ + public Activity activity() { return m_activity; } + private final Activity m_activity; + + /** + * Returns the {@link BluetoothEnabler} associated with the Event. + */ + public BluetoothEnabler enabler() { return m_enabler; } + private final BluetoothEnabler m_enabler; + + /** + * Returns the arbitrary app-specific data passed to BluetoothEnabler.BluetoothEnablerFilter.Please#withAppData(Object), or <code>null</code>. + * + * @see com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.Please#withAppData(Object) + */ + public Object appData() { return m_appData; } + private final Object m_appData; + + + public BleManager bleManager() { return BleManager.get(activity()); } + + public boolean isDone() + { + return nextStage() == Stage.NULL; + } + + private BluetoothEnablerEvent(Activity activity, Stage stage, Stage nextStage, Status status, BluetoothEnabler enabler, final Object appData) + { + m_stage = stage; + m_nextStage = nextStage; + m_status = status; + m_activity = activity; + m_enabler = enabler; + m_appData = appData; + } + + /** + * Returns whether the passed {@link BluetoothEnablerFilter.Stage} is enabled. + */ + public boolean isEnabled(Stage stage) + { + return BluetoothEnabler.isEnabled(BleManager.get(m_activity), stage); + } + + @Override public String toString() + { + return Utils_String.toString + ( + this.getClass(), + "stage", stage(), + "status", status(), + "nextStage", nextStage() + ); + } + } + + /** + * Return value for the interface method {@link BluetoothEnablerFilter#onEvent(BluetoothEnablerEvent)}. + * Use static constructor methods to create instances. + */ + public static class Please + { + private final static int PE_Option__DO_NEXT = 0; + private final static int PE_Option__SKIP_NEXT = 1; + private final static int PE_Option__END = 3; + private final static int PE_Option__PAUSE = 4; + + private final static int NULL_REQUEST_CODE = 51214; //Large random int because we need to make sure that there is low probability that the user is using the same + + private final int m_pleaseOption; + + private Activity m_activity = null; + private String m_dialogText = ""; + private String m_toastText = ""; + private int m_requestCode = NULL_REQUEST_CODE; + private boolean m_implicitActivityResultHandling = false; + private Object m_appData = null; + + private Please(int pleaseoption) + { + m_pleaseOption = pleaseoption; + } + + private boolean wasSkipped() + { + return m_pleaseOption == PE_Option__SKIP_NEXT; + } + + private boolean shouldPopDialog(final Stage stage) + { + return m_dialogText != null && m_dialogText.isEmpty() == false; + } + + private boolean shouldShowToast(final Stage stage) + { + return m_toastText != null && m_toastText.isEmpty() == false; + } + + private Activity activityOrDefault(final Activity defaultActivity) + { + return m_activity != null ? m_activity : defaultActivity; + } + + /** + * Perform the next {@link BluetoothEnablerFilter.Stage}. + */ + public static Please doNext() + { + return new Please(PE_Option__DO_NEXT); + } + + /** + * Skip the next {@link BluetoothEnablerFilter.Stage} and move the following one. + */ + public static Please skipNext() + { + return new Please(PE_Option__SKIP_NEXT); + } + + /** + * Bypass all remaining stages and move to the end of the last stage; enabler will finish at this point + */ + public static Please stop() + { + return new Please(PE_Option__END); + } + + /** + * Pause the enabler. Call {@link com.idevicesinc.sweetblue.utils.BluetoothEnabler#resume(BluetoothEnablerFilter.Please)} to continue the process. + */ + public static Please pause() + { + return new Please(PE_Option__PAUSE); + } + + /** + * If the next stage isn't skipped or {@link BluetoothEnablerFilter.Status#ALREADY_ENABLED} then pop a dialog before + */ + public Please withDialog(String message) + { + m_dialogText = message; + return this; + } + + /** + * Add arbitrary app-specific data which will be passed to the next {@link com.idevicesinc.sweetblue.utils.BluetoothEnabler.BluetoothEnablerFilter.BluetoothEnablerEvent} + * through + */ + public Please withAppData(final Object appData) + { + m_appData = appData; + + return this; + } + + @Advanced + public Please withActivity(Activity activity) + { + m_activity = activity; + return this; + } + + /** + * Perform the next stage with the given requestCode + */ + public Please withRequestCode(int requestCode) + { + m_requestCode = requestCode; + return this; + } + + /** + * Perform the next stage with a Toast + */ + public Please withToast(String message) + { + m_toastText = message; + return this; + } + + public Please withImplicitActivityResultHandling() + { + m_implicitActivityResultHandling = true; + return this; + } + } + + /** + * Called after moving to the next {@link BluetoothEnablerFilter.Stage} + */ + Please onEvent(final BluetoothEnablerEvent e); + } + + /** + * A default implementation of BluetoothEnablerListener used in {@link BluetoothEnabler#start(Activity)}. It provides a + * basic implementation for use/example and can be overridden. + */ + public static class DefaultBluetoothEnablerFilter implements BluetoothEnablerFilter + { + @Override public Please onEvent(BluetoothEnablerEvent e) + { + if( e.stage().isLocationRelated() && e.status().isCancelled() ) + { + final String fineButDotDotDot = P_StringHandler.getString(s_instance.m_defaultActivity, P_StringHandler.DENYING_LOCATION_ACCESS); + + return Please.stop().withDialog(fineButDotDotDot); + } + else if( e.stage() == Stage.LOCATION_PERMISSION && e.status() == Status.MANIFEST_PERMISSION_NEEDED ) + { + final String manifestPermissionWarning = P_StringHandler.getString(s_instance.m_defaultActivity, P_StringHandler.APP_NEEDS_PERMISSION); + + return Please.stop().withDialog(manifestPermissionWarning); + } + else + { + if( e.nextStage() == Stage.BLUETOOTH ) + { + return Please.doNext().withImplicitActivityResultHandling(); + } + else if( e.nextStage() == Stage.LOCATION_PERMISSION ) + { + final String locationPermissionToastString = P_StringHandler.getString(s_instance.m_defaultActivity, P_StringHandler.LOCATION_PERMISSION_TOAST); + + //--- DRK > If both location stages need enabling then we show one dialog to rule them all, + //--- otherwise we show just one dialog for permissions. + final String dialogString = + false == e.isEnabled(Stage.LOCATION_SERVICES) && false == e.isEnabled(Stage.LOCATION_PERMISSION) ? + P_StringHandler.getString(s_instance.m_defaultActivity, P_StringHandler.REQUIRES_LOCATION_PERMISSION_AND_SERVICES) : + P_StringHandler.getString(s_instance.m_defaultActivity, P_StringHandler.REQUIRES_LOCATION_PERMISSION); + + if( e.bleManager().willLocationPermissionSystemDialogBeShown(e.activity()) ) + { + return Please.doNext() .withImplicitActivityResultHandling() .withDialog(dialogString); + } + else + { + return Please.doNext() .withImplicitActivityResultHandling() .withDialog(dialogString) .withToast(locationPermissionToastString); + } + } + else if( e.nextStage() == Stage.LOCATION_SERVICES ) + { + final String locationServicesNeedEnablingString = P_StringHandler.getString(s_instance.m_defaultActivity, P_StringHandler.LOCATION_SERVICES_NEEDS_ENABLING); + final String locationServicesToastString = P_StringHandler.getString(s_instance.m_defaultActivity, P_StringHandler.LOCATION_SERVICES_TOAST); + + //--- DRK > Here it's a little confusing, but only showing dialog for enabling services if a one dialog to rule them all didn't previously come up. + if( e.status()/*(for permissions)*/.wasPreviouslyNotEnabled() ) + { + return Please.doNext() .withImplicitActivityResultHandling() .withToast(locationServicesToastString); + } + else + { + return Please.doNext() .withImplicitActivityResultHandling() .withDialog(locationServicesNeedEnablingString) .withToast(locationServicesToastString); + } + } + else if( e.nextStage() == Stage.NULL ) + { + //--- DRK > All done... + return null; + } + } + + e.bleManager().ASSERT(false, "Unhandled BluetoothEnabler event!"); + + return null; + } + } + + private static boolean isEnabled(BleManager bleManager, BluetoothEnablerFilter.Stage stage) + { + if(stage == BluetoothEnablerFilter.Stage.BLUETOOTH) + { + return bleManager.isBleSupported() && bleManager.is(BleManagerState.ON); + } + else if(stage == BluetoothEnablerFilter.Stage.LOCATION_PERMISSION) + { + return bleManager.isLocationEnabledForScanning_byRuntimePermissions(); + } + else if(stage == BluetoothEnablerFilter.Stage.LOCATION_SERVICES) + { + return bleManager.isLocationEnabledForScanning_byOsServices(); + } + + return true; + } + + private /*finalish*/ BluetoothEnablerFilter m_enablerFilter; + private final Activity m_defaultActivity; + private final Application.ActivityLifecycleCallbacks m_lifecycleCallback; + + private BluetoothEnablerFilter.Please m_lastPlease = null; + private BluetoothEnablerFilter.Stage m_currentStage = null; + + private boolean m_performingSystemCall; + private boolean m_isForegrounded; + + /** + * A constructor which taken an activity and a custom implementation of {@link BluetoothEnablerFilter}. + */ + private BluetoothEnabler(Activity activity, BluetoothEnablerFilter enablerFilter) + { + m_defaultActivity = activity; + m_enablerFilter = enablerFilter; + m_lifecycleCallback = newLifecycleCallbacks(); + + m_defaultActivity.getApplication().registerActivityLifecycleCallbacks(m_lifecycleCallback); + m_isForegrounded = true; // Assume we're foregrounded until told otherwise. + m_currentStage = BluetoothEnablerFilter.Stage.START; + } + + private void dispatchEvent(final BluetoothEnablerFilter.Stage currentStage, final BluetoothEnablerFilter.Stage nextStage, final BluetoothEnablerFilter.Status status_currentStage) + { + final Object appData = m_lastPlease != null ? m_lastPlease.m_appData : null; + + final BluetoothEnablerFilter.BluetoothEnablerEvent e = new BluetoothEnablerFilter.BluetoothEnablerEvent(m_defaultActivity, currentStage, nextStage, status_currentStage, this, appData); + + m_lastPlease = m_enablerFilter.onEvent(e); + m_lastPlease = m_lastPlease != null ? m_lastPlease : BluetoothEnablerFilter.Please.stop(); + m_currentStage = nextStage; + + if( m_currentStage == BluetoothEnablerFilter.Stage.NULL ) + { + //--- DRK > We're done - either at the end of the process or user chose to stop it. + } + else + { + handlePleaseResponse_STEP1_maybeEarlyOutCauseNotNeeded(m_lastPlease); + } + } + + private void handlePleaseResponse_STEP1_maybeEarlyOutCauseNotNeeded(final BluetoothEnablerFilter.Please please) + { + switch(getStage()) + { + case BLUETOOTH: + { + //--- DRK > All Android versions needed bluetooth enabled, duh. + handlePleaseResponse_STEP2_maybeEarlyOutCauseAlreadyEnabled(please); + + break; + } + + case LOCATION_PERMISSION: + case LOCATION_SERVICES: + { + if( Utils.isMarshmallow() ) + { + handlePleaseResponse_STEP2_maybeEarlyOutCauseAlreadyEnabled(please); + } + else + { + dispatchEvent(getStage(), getStage().next(), BluetoothEnablerFilter.Status.NOT_NEEDED); + } + + break; + } + + case NULL: + case START: + { + bleMngr().ASSERT(false, "Can't determine need for " + getStage()); + + return; + } + } + } + + private void handlePleaseResponse_STEP2_maybeEarlyOutCauseAlreadyEnabled(final BluetoothEnablerFilter.Please please) + { + if( isEnabled(getStage()) ) + { + dispatchEvent(getStage(), getStage().next(), BluetoothEnablerFilter.Status.ALREADY_ENABLED); + } + else + { + handlePleaseResponse_STEP3_maybeEarlyOutFromPleaseResponse(please); + } + } + + private void handlePleaseResponse_STEP3_maybeEarlyOutFromPleaseResponse(final BluetoothEnablerFilter.Please please) + { + if( please.m_pleaseOption == BluetoothEnablerFilter.Please.PE_Option__PAUSE ) + { + handlePleaseResponse_STEP8_maybeShowToast(please); + + //--- DRK > Do nothing, user has to call resume(). + } + else if( please.m_pleaseOption == BluetoothEnablerFilter.Please.PE_Option__SKIP_NEXT ) + { + handlePleaseResponse_STEP8_maybeShowToast(please); + + //--- DRK > Recurse back into dispatchEvent(). + dispatchEvent(getStage(), getStage().next(), BluetoothEnablerFilter.Status.SKIPPED); + } + else if( please.m_pleaseOption == BluetoothEnablerFilter.Please.PE_Option__END ) + { + handlePleaseResponse_STEP3a_maybeShowClosingDialog(please); + handlePleaseResponse_STEP8_maybeShowToast(please); + + //--- DRK > Recurse back into dispatchEvent(). + dispatchEvent(getStage(), BluetoothEnablerFilter.Stage.NULL, BluetoothEnablerFilter.Status.STOPPED); + } + else if( please.m_pleaseOption == BluetoothEnablerFilter.Please.PE_Option__DO_NEXT ) + { + handlePleaseResponse_STEP4_maybeEarlyOutCausePermissionsNeeded(please); + } + else + { + bleMngr().ASSERT(false, "Unhandled Please option case " + please.m_pleaseOption + " for " + BluetoothEnabler.class.getSimpleName()); + } + } + + private void handlePleaseResponse_STEP3a_maybeShowClosingDialog(final BluetoothEnablerFilter.Please please) + { + if( please.shouldPopDialog(getStage()) ) + { + final AlertDialog.Builder builder = new AlertDialog.Builder(please.activityOrDefault(m_defaultActivity)); + + builder.setMessage(m_lastPlease.m_dialogText); + + builder.setNeutralButton(P_StringHandler.getString(s_instance.m_defaultActivity, P_StringHandler.OK), new DialogInterface.OnClickListener() + { + @Override public void onClick(DialogInterface dialog, int which) + { + } + }); + + builder.show(); + } + } + + private void handlePleaseResponse_STEP4_maybeEarlyOutCausePermissionsNeeded(final BluetoothEnablerFilter.Please please) + { + if( getStage() == BluetoothEnablerFilter.Stage.LOCATION_PERMISSION ) + { + if( true == bleMngr().isLocationEnabledForScanning_byManifestPermissions() ) + { + handlePleaseResponse_STEP5_maybeShowAppDialog(please); + } + else + { + dispatchEvent(getStage(), getStage().next(), BluetoothEnablerFilter.Status.MANIFEST_PERMISSION_NEEDED); + } + } + else + { + handlePleaseResponse_STEP5_maybeShowAppDialog(please); + } + } + + private void handlePleaseResponse_STEP5_maybeShowAppDialog(final BluetoothEnablerFilter.Please please) + { + if( please.shouldPopDialog(getStage()) ) + { + final AlertDialog.Builder builder = new AlertDialog.Builder(please.activityOrDefault(m_defaultActivity)); + + builder.setMessage(m_lastPlease.m_dialogText); + + builder.setNegativeButton(P_StringHandler.getString(s_instance.m_defaultActivity, P_StringHandler.DENY), new DialogInterface.OnClickListener() + { + @Override public void onClick(DialogInterface dialog, int which) + { + handlePleaseResponse_STEP6_maybeEarlyOutFromDialogResponse(please, /*wasCancelledByDialog=*/true); + } + }); + + builder.setPositiveButton(P_StringHandler.getString(s_instance.m_defaultActivity, P_StringHandler.ACCEPT), new DialogInterface.OnClickListener() + { + @Override public void onClick(DialogInterface dialog, int which) + { + handlePleaseResponse_STEP6_maybeEarlyOutFromDialogResponse(please, /*wasCancelledByDialog=*/false); + } + }); + + builder.show(); + } + else + { + //--- DRK > Skip step 6, no dialog shown. + handlePleaseResponse_STEP7_launchIntent(please); + } + } + + private void handlePleaseResponse_STEP6_maybeEarlyOutFromDialogResponse(final BluetoothEnablerFilter.Please please, final boolean wasCancelledByDialog) + { + if( true == wasCancelledByDialog ) + { + dispatchEvent(getStage(), getStage().next(), BluetoothEnablerFilter.Status.CANCELLED_BY_DIALOG); + } + else + { + handlePleaseResponse_STEP7_launchIntent(please); + } + } + + private void handlePleaseResponse_STEP7_launchIntent(final BluetoothEnablerFilter.Please please) + { + final Activity callingActivity = please.activityOrDefault(m_defaultActivity); + + switch(getStage()) + { + case BLUETOOTH: + { + onSystemCallStart(); + + bleMngr().turnOnWithIntent(callingActivity, please.m_requestCode); + + break; + } + + case LOCATION_PERMISSION: + { + onSystemCallStart(); + + bleMngr().turnOnLocationWithIntent_forPermissions(callingActivity, please.m_requestCode); + + break; + } + + case LOCATION_SERVICES: + { + onSystemCallStart(); + + bleMngr().turnOnLocationWithIntent_forOsServices(callingActivity, please.m_requestCode); + + break; + } + + case NULL: + case START: + { + bleMngr().ASSERT(false, "Can't launch intent for " + getStage()); + + return; + } + } + + handlePleaseResponse_STEP8_maybeShowToast(please); + } + + private void handlePleaseResponse_STEP8_maybeShowToast(final BluetoothEnablerFilter.Please please) + { + if( please.shouldShowToast(getStage()) ) + { + Toast.makeText(please.activityOrDefault(m_defaultActivity), please.m_toastText, Toast.LENGTH_LONG).show(); + } + + //--- DRK > Now we wait for onActivityResult or through implicit foreground listening to continue the process. + } + + private void handlePleaseResponse_STEP9_receiveActivityResult(final BluetoothEnablerFilter.Please please, final int requestCode) + { + if( m_lastPlease != null && m_lastPlease.m_requestCode == requestCode ) + { + if( false == isEnabled(getStage()) ) + { + dispatchEvent(getStage(), getStage().next(), BluetoothEnablerFilter.Status.CANCELLED_BY_INTENT); + } + else + { + dispatchEvent(getStage(), getStage().next(), BluetoothEnablerFilter.Status.ENABLED); + } + } + else + { + //--- DRK > Request codes don't match so this is not a result we care about. + } + } + + /** + * A potentially-required method to be placed in your activity's {@link Activity#onRequestPermissionsResult(int, String[], int[])} and {@link Activity#onActivityResult(int, int, Intent)} methods. + * This method will re-connect the enabler after the app is re-entered. Otherwise, the enabler won't continue unless {@link BluetoothEnablerFilter.Please#withImplicitActivityResultHandling()} is called. + */ + public void onActivityOrPermissionResult(int requestCode) + { + if( m_lastPlease != null ) + { + if( true == m_lastPlease.m_implicitActivityResultHandling ) + { + //--- DRK > The filter opted for implicit handling so not passing this in. + } + else + { + handlePleaseResponse_STEP9_receiveActivityResult(m_lastPlease, requestCode); + } + } + } + + /** + * Returns whether the passed {@link BluetoothEnablerFilter.Stage} has been enabled. + */ + public boolean isEnabled(BluetoothEnablerFilter.Stage stage) + { + return isEnabled(bleMngr(), stage); + } + + /** + * Resume the enabler with the given Please. Enabler will continue where is left off. + */ + public void resume(BluetoothEnablerFilter.Please please) + { + if( isDone() ) + { + Log.e(BluetoothEnabler.class.getSimpleName(), "Can't resume " + BluetoothEnabler.class.getSimpleName() + " because it's already done."); + + return; + } + else + { + m_lastPlease = please; + + handlePleaseResponse_STEP2_maybeEarlyOutCauseAlreadyEnabled(please); + } + } + + /** + * Returns the current {@link BluetoothEnablerFilter.Stage} the enabler is on + */ + public BluetoothEnablerFilter.Stage getStage() + { + return m_currentStage; + } + + public boolean isPerformingSystemCall() + { + return m_performingSystemCall && getStage().isNull() == false; + } + + public boolean isDone() + { + return getStage() == BluetoothEnablerFilter.Stage.NULL; + } + + + + + + // REST OF THESE METHODS ARE PRIVATE FLUFF + + private BleManager bleMngr() + { + return BleManager.get(m_defaultActivity); + } + + private void onSystemCallStart() + { + m_performingSystemCall = true; + } + + private void onSystemCallEnd() + { + m_performingSystemCall = false; + } + + private Application.ActivityLifecycleCallbacks newLifecycleCallbacks() + { + return new Application.ActivityLifecycleCallbacks() + { + @Override public void onActivityCreated(Activity activity, Bundle savedInstanceState){} + @Override public void onActivityStarted(Activity activity){} + @Override public void onActivityStopped(Activity activity){} + @Override public void onActivitySaveInstanceState(Activity activity, Bundle outState){} + @Override public void onActivityDestroyed(Activity activity){} + + @Override public void onActivityPaused(Activity activity) + { + m_isForegrounded = false; + } + + @Override public void onActivityResumed(Activity activity) + { + if( false == m_isForegrounded && true == m_performingSystemCall ) + { + onSystemCallEnd(); + + if( m_lastPlease != null && true == m_lastPlease.m_implicitActivityResultHandling ) + { + handlePleaseResponse_STEP9_receiveActivityResult(m_lastPlease, m_lastPlease.m_requestCode); + } + } + + m_isForegrounded = true; + } + }; + } + + private void setNewFilter(final BluetoothEnablerFilter filter) + { + m_enablerFilter = filter; + } +} \ No newline at end of file diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/DebugLogger.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/DebugLogger.java new file mode 100644 index 0000000000000000000000000000000000000000..f10061f0d564291ab2ed79f59ee4ce4362081221 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/DebugLogger.java @@ -0,0 +1,120 @@ +package com.idevicesinc.sweetblue.utils; + +import android.util.Log; +import com.idevicesinc.sweetblue.SweetLogger; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; + + +/** + * Logger class which prints SweetBlue logs to Android's logcat. This also tracks log statements. The internal list holds a specific amount of + * statements. When that limit is reached, the oldest statement gets dropped from the list. + * See {@link #DebugLogger()} and {@link #DebugLogger(int)}. + */ +public final class DebugLogger implements SweetLogger +{ + + public final static int DEFAULT_MAX_SIZE = 50; + + private final int maxLogSize; + private final List<String> logList; + + + /** + * Default constructor which sets the max log size of {@link #DEFAULT_MAX_SIZE}. + */ + public DebugLogger() + { + this(DEFAULT_MAX_SIZE); + } + + /** + * Constructor which allows you to set a custom max log count size. + */ + public DebugLogger(int maxLogSize) + { + this.maxLogSize = maxLogSize; + logList = Collections.synchronizedList(new ArrayList<String>(maxLogSize)); + } + + + @Override public final void onLogEntry(int level, String tag, String msg) + { + Log.println(level, tag, msg); + if (logList.size() == maxLogSize) + { + logList.remove(0); + } + logList.add(Utils_String.makeString(new Date(), " ", level(level), "/", tag, ": ", msg)); + } + + /** + * Return a {@link List} with the last @param count of log statements. If there haven't been any yet, and empty list is returned. + */ + public final List<String> getLastLogs(int count) + { + if (count > logList.size()) + { + count = logList.size(); + } + if (logList.size() == 0) + { + return new ArrayList<>(0); + } + else + { + final ArrayList<String> list = new ArrayList<>(count); + count--; + for (int i = 0; i < count; i++) + { + list.add(logList.get(i)); + } + return list; + } + } + + /** + * Returns the last log statement + */ + public final String getLastLog() + { + if (logList.size() > 0) + { + return logList.get(logList.size() - 1); + } + return ""; + } + + /** + * Returns a {@link List} of log statements. The default max size is {@link #DEFAULT_MAX_SIZE}, but can also be set + * by using the {@link #DebugLogger(int)} constructor. + */ + public final List<String> getLogList() + { + return new ArrayList<>(logList); + } + + private static String level(int level) + { + switch (level) + { + case 2: + return "Verbose"; + case 3: + return "Debug"; + case 4: + return "Info"; + case 5: + return "Warn"; + case 6: + return "Error"; + case 7: + return "Assert"; + default: + return "Unknown"; + } + } + +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Distance.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Distance.java new file mode 100644 index 0000000000000000000000000000000000000000..0b8cc54b4f7277ecfe3e2886377e46b5e3fe0f57 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Distance.java @@ -0,0 +1,93 @@ +package com.idevicesinc.sweetblue.utils; + +import java.text.DecimalFormat; + +import com.idevicesinc.sweetblue.annotations.*; + +/** + * Wrapper for a positive-only physical distance supporting various units of measurement. + */ +@Immutable +public class Distance extends Unit<Distance> +{ + public static final double FEET_PER_METER = 3.28084; + + /** + * Convenience value for zero meters. + */ + public static final Distance ZERO = meters(0.0); + + /** + * Convenience value representing an invalid/impossible distance, arbitrarily chosen to be negative one meter. + */ + public static final Distance INVALID = meters(-1.0); + + private final double m_meters; + + private Distance(double meters) + { + m_meters = meters; + } + + /** + * Returns the value of this distance in meters. + */ + public double meters() + { + return m_meters; + } + + /** + * Returns the value of this distance in feet. + */ + public double feet() + { + return m_meters * FEET_PER_METER; + } + + /** + * Creates a new value in meters. + */ + public static Distance meters(double meters) + { + return new Distance(meters); + } + + /** + * Creates a new value in feet. + */ + public static Distance feet(double feet) + { + return meters(feet/FEET_PER_METER); + } + + /** + * Returns <code>true</code> if {@link #meters()} is >= 0. + */ + public boolean isValid() + { + return meters() >= 0.0; + } + + @Override public String toString() + { + if( !isValid() ) + { + return "INVALID"; + } + else + { + return Utils_String.toFixed(meters())+"meters/"+Utils_String.toFixed(feet())+"feet"; + } + } + + @Override protected double getRawValue() + { + return m_meters; + } + + @Override protected Unit<Distance> newInstance(double rawValue) + { + return meters(rawValue); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/EmptyCursor.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/EmptyCursor.java new file mode 100644 index 0000000000000000000000000000000000000000..952d751c7905014271e0cfc4d499fbd8832a76af --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/EmptyCursor.java @@ -0,0 +1,226 @@ +package com.idevicesinc.sweetblue.utils; + +import android.content.ContentResolver; +import android.database.CharArrayBuffer; +import android.database.ContentObserver; +import android.database.Cursor; +import android.database.DataSetObserver; +import android.net.Uri; +import android.os.Bundle; + +/** + * An implementation of {@link Cursor} used for error conditions and things like that where we don't want to return null. + */ +public class EmptyCursor implements Cursor +{ + /** + * Singleton value, safe to reuse. + */ + public static final EmptyCursor SINGLETON = new EmptyCursor(); + + @Override public int getCount() + { + return 0; + } + + @Override public int getPosition() + { + return 0; + } + + @Override public boolean move(int offset) + { + return false; + } + + @Override public boolean moveToPosition(int position) + { + return false; + } + + @Override public boolean moveToFirst() + { + return false; + } + + @Override public boolean moveToLast() + { + return false; + } + + @Override public boolean moveToNext() + { + return false; + } + + @Override public boolean moveToPrevious() + { + return false; + } + + @Override public boolean isFirst() + { + return false; + } + + @Override public boolean isLast() + { + return false; + } + + @Override public boolean isBeforeFirst() + { + return false; + } + + @Override public boolean isAfterLast() + { + return false; + } + + @Override public int getColumnIndex(String columnName) + { + return 0; + } + + @Override public int getColumnIndexOrThrow(String columnName) throws IllegalArgumentException + { + return 0; + } + + @Override public String getColumnName(int columnIndex) + { + return ""; + } + + @Override public String[] getColumnNames() + { + return new String[0]; + } + + @Override public int getColumnCount() + { + return 0; + } + + @Override public byte[] getBlob(int columnIndex) + { + return new byte[0]; + } + + @Override public String getString(int columnIndex) + { + return ""; + } + + @Override public void copyStringToBuffer(int columnIndex, CharArrayBuffer buffer) + { + + } + + @Override public short getShort(int columnIndex) + { + return 0; + } + + @Override public int getInt(int columnIndex) + { + return 0; + } + + @Override public long getLong(int columnIndex) + { + return 0; + } + + @Override public float getFloat(int columnIndex) + { + return 0; + } + + @Override public double getDouble(int columnIndex) + { + return 0; + } + + @Override public int getType(int columnIndex) + { + return 0; + } + + @Override public boolean isNull(int columnIndex) + { + return false; + } + + @Override public void deactivate() + { + + } + + @Override public boolean requery() + { + return false; + } + + @Override public void close() + { + + } + + @Override public boolean isClosed() + { + return false; + } + + @Override public void registerContentObserver(ContentObserver observer) + { + + } + + @Override public void unregisterContentObserver(ContentObserver observer) + { + + } + + @Override public void registerDataSetObserver(DataSetObserver observer) + { + + } + + @Override public void unregisterDataSetObserver(DataSetObserver observer) + { + + } + + @Override public void setNotificationUri(ContentResolver cr, Uri uri) + { + + } + + @Override public Uri getNotificationUri() + { + return Uri.EMPTY; + } + + @Override public boolean getWantsAllOnMoveCalls() + { + return false; + } + + @Override + public void setExtras(Bundle extras) + { + + } + + @Override public Bundle getExtras() + { + return null; + } + + @Override public Bundle respond(Bundle extras) + { + return null; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/EmptyIterator.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/EmptyIterator.java new file mode 100644 index 0000000000000000000000000000000000000000..bc89a11a1d12285b07825e1d35f58885179af9df --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/EmptyIterator.java @@ -0,0 +1,24 @@ +package com.idevicesinc.sweetblue.utils; + +import java.util.Iterator; + +/** + * Convenience class for implementing an {@link java.util.Iterator} with no elements. + */ +public class EmptyIterator<T> implements Iterator<T> +{ + @Override public boolean hasNext() + { + return false; + } + + @Override public T next() + { + return null; + } + + @Override public void remove() + { + throw new IllegalStateException("Nothing to remove on an empty iterator."); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/EpochTime.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/EpochTime.java new file mode 100644 index 0000000000000000000000000000000000000000..9682f3429efea60ddc3643e78568d67e35e94d4d --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/EpochTime.java @@ -0,0 +1,149 @@ +package com.idevicesinc.sweetblue.utils; + +import com.idevicesinc.sweetblue.annotations.Immutable; + +import java.util.Date; + +/** + * A class fulfilling a similar role to Java's built-in {@link java.util.Date}, i.e. + * milliseconds since 1970. We don't use {@link java.util.Date} because it is mutable, + * which makes certain APIs in SweetBlue harder to design. + */ +@Immutable +public class EpochTime implements Comparable<EpochTime>, UsesCustomNull +{ + /** + * Fulfills the soft contract of {@link com.idevicesinc.sweetblue.utils.UsesCustomNull} - used for {@link #isNull()}. + */ + public static final EpochTime NULL = new EpochTime(Long.MIN_VALUE); + + /** + * Convenience instance using {@link Long#MIN_VALUE}. + */ + public static final EpochTime MIN = new EpochTime(Long.MIN_VALUE); + + /** + * Convenience instance using {@link Long#MAX_VALUE}. + */ + public static final EpochTime MAX = new EpochTime(Long.MAX_VALUE); + + /** + * Convenience instance representing the start date of 1970. + */ + public static final EpochTime ZERO = new EpochTime(0); + + /** + * Simply a more readable version of the default constructor {@link EpochTime#EpochTime()}. + */ + public static EpochTime now() + { + return new EpochTime(); + } + + private final long m_millisecondsSince1970; + + /** + * Converts from Java's built-in date. + */ + public EpochTime(final Date date) + { + this(date.getTime()); + } + + /** + * Constructs a new instance using milliseconds since 1970. + */ + public EpochTime(final long millisecondsSince1970) + { + m_millisecondsSince1970 = millisecondsSince1970; + } + + /** + * Constructs a new instance using {@link System#currentTimeMillis()}. + */ + public EpochTime() + { + this(System.currentTimeMillis()); + } + + /** + * Converts to milliseconds since 1970, which is currently also how the value is stored internally. + */ + public long toMilliseconds() + { + return m_millisecondsSince1970; + } + + /** + * Converts to seconds since 1970. + */ + public double toSeconds() + { + return ((double)toMilliseconds())/1000.0; + } + + /** + * Converts to Java's built-in date class. + */ + public Date toDate() + { + return new Date(toMilliseconds()); + } + + /** + * Does an inclusive check for <code>this</code> being in the given range. + */ + public boolean isBetween_inclusive(final EpochTime from, final EpochTime to) + { + return this.toMilliseconds() >= from.toMilliseconds() && this.toMilliseconds() <= to.toMilliseconds(); + } + + /** + * Overload of {@link #isBetween_inclusive(EpochTime, EpochTime)}. + */ + public boolean isBetween_inclusive(final EpochTimeRange range) + { + return isBetween_inclusive(range.from(), range.to()); + } + + @Override public int compareTo(final EpochTime another) + { + if( another == null ) + { + return 1; + } + + if (toMilliseconds() < another.toMilliseconds()) + { + return -1; + } + + if (toMilliseconds() == another.toMilliseconds()) + { + return 0; + } + + return 1; + } + + /** + * Returns the delta resulting from <code>this-epochTime</code>. + */ + public EpochTimeRange minus(final EpochTime epochTime) + { + return EpochTimeRange.fromGiven_toGiven(epochTime, this); + } + + /** + * Returns <code>true</code> if <code>this</code> is referentially equal to {@link #NULL}. + */ + @Override public boolean isNull() + { + return this == NULL; + } + + @Override public String toString() + { + return toMilliseconds()+""; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/EpochTimeRange.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/EpochTimeRange.java new file mode 100644 index 0000000000000000000000000000000000000000..c1610d80ef6187e2c1891c64ee6b92f4b1e41cad --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/EpochTimeRange.java @@ -0,0 +1,209 @@ +package com.idevicesinc.sweetblue.utils; + +import com.idevicesinc.sweetblue.annotations.Immutable; +import com.idevicesinc.sweetblue.annotations.Nullable; + +/** + * Class representing a range of time between two instances of {@link com.idevicesinc.sweetblue.utils.EpochTime}. + * This is similar to {@link Interval} but stores the actual beginning and end times and is generally meant for longer + * periods of time. + */ +@Immutable +public class EpochTimeRange implements UsesCustomNull +{ + /** + * Fulfills the soft contract of {@link com.idevicesinc.sweetblue.utils.UsesCustomNull} - used for {@link #isNull()}. + */ + public static final EpochTimeRange NULL = new EpochTimeRange(EpochTime.NULL, EpochTime.NULL); + + public static final EpochTimeRange FROM_MIN_TO_1970 = new EpochTimeRange(EpochTime.MIN, EpochTime.ZERO); + + public static final EpochTimeRange FROM_MIN_TO_MAX = new EpochTimeRange(EpochTime.MIN, EpochTime.MAX); + + public static final EpochTimeRange FROM_1970_TO_MAX = new EpochTimeRange(EpochTime.ZERO, EpochTime.MAX); + + public static final EpochTimeRange ZERO = new EpochTimeRange(EpochTime.ZERO, EpochTime.ZERO); + + public static final EpochTimeRange FIVE_SECONDS = new EpochTimeRange(EpochTime.ZERO, new EpochTime(1000 * 5)); + + /** + * Returns a new instance representing the time range from the given value to {@link Long#MAX_VALUE}. + */ + public static EpochTimeRange fromGiven_toMax(final EpochTime from) + { + return new EpochTimeRange(from, EpochTime.MAX); + } + + /** + * Returns a new instance representing the time range from the given value to now. + */ + public static EpochTimeRange fromGiven_toNow(final EpochTime from) + { + return new EpochTimeRange(from, EpochTime.now()); + } + + /** + * Basically just a more readable overload for the normal constructor {@link #EpochTimeRange(EpochTime, EpochTime)}. + */ + public static EpochTimeRange fromGiven_toGiven(final EpochTime from, final EpochTime to) + { + return new EpochTimeRange(from, EpochTime.now()); + } + + /** + * Returns a new instance representing the time range from 1970 to the given value. + */ + public static EpochTimeRange from1970_toGiven(final EpochTime to) + { + return new EpochTimeRange(EpochTime.ZERO, to); + } + + /** + * Returns a new instance representing the time range from {@link Long#MIN_VALUE} to the given value. + */ + public static EpochTimeRange fromMin_toGiven(final EpochTime to) + { + return new EpochTimeRange(EpochTime.MIN, to); + } + + /** + * Returns a new instance representing the time range from 1970 to now. + */ + public static EpochTimeRange from1970_toNow() + { + return new EpochTimeRange(EpochTime.ZERO, EpochTime.now()); + } + + /** + * Returns a new instance representing an instant zero length time range. + */ + public static EpochTimeRange instant(final EpochTime time) + { + return new EpochTimeRange(time, time); + } + + public static @Nullable(Nullable.Prevalence.NEVER) EpochTimeRange denull(@Nullable(Nullable.Prevalence.NORMAL) final EpochTimeRange range_nullable) + { + return range_nullable != null ? range_nullable : NULL; + } + + private final EpochTime m_from; + private final EpochTime m_to; + + /** + * Returns a new instance representing the time range between the given epoch times. + */ + public EpochTimeRange(final EpochTime from, final EpochTime to) + { + m_from = from != null ? from : EpochTime.NULL; + m_to = to != null ? to : EpochTime.NULL; + } + + /** + * Returns a new instance representing the time range between the given epoch times as primitive longs. + */ + public EpochTimeRange(final long from, final long to) + { + this(new EpochTime(from), new EpochTime(to)); + } + + /** + * Returns the "from" date passed into the constructor, + * or {@link com.idevicesinc.sweetblue.utils.EpochTime#NULL} if <code>null</code> + * was originally passed in. + */ + public @Nullable(Nullable.Prevalence.NEVER) EpochTime from() + { + return m_from; + } + + /** + * Returns the "to" date passed into the constructor, + * or {@link com.idevicesinc.sweetblue.utils.EpochTime#NULL} if <code>null</code> + * was originally passed in. + */ + public @Nullable(Nullable.Prevalence.NEVER) EpochTime to() + { + return m_to; + } + + /** + * Returns <code>true</code> if {@link #from()} is less than or equal to {@link #to()}. + */ + public boolean isValid() + { + return m_from.toMilliseconds() < m_to.toMilliseconds(); + } + + /** + * Returns <code>true</code> if {@link #from()} is greater than {@link #to()}. + */ + public boolean isInvalid() + { + return !isValid(); + } + + /** + * Returns <code>true</code> if {@link #from()} and {@link #to()} are equal. + */ + public boolean isZero() + { + return m_from.toMilliseconds() == m_to.toMilliseconds(); + } + + /** + * Returns the raw milliseconds between {@link #from()} and {@link #to()}. + */ + public long getDelta() + { + return to().toMilliseconds() - from().toMilliseconds(); + } + + /** + * See {@link #isInvalid()} and {@link #isZero()}. + */ + public boolean isInvalidOrZero() + { + return isInvalidOrZero(); + } + + /** + * Returns <code>true</code> if <code>this</code> is referentially equal to {@link #NULL}. + */ + @Override public boolean isNull() + { + return this == NULL; + } + + /** + * "less than" comparison. + */ + public boolean lt(final EpochTimeRange otherRange) + { + return this.getDelta() < otherRange.getDelta(); + } + + /** + * "less than or equal" comparison. + */ + public boolean lte(final EpochTimeRange otherRange) + { + return this.getDelta() <= otherRange.getDelta(); + } + + /** + * "greater than" comparison. + */ + public boolean gt(final EpochTimeRange otherRange) + { + return this.getDelta() > otherRange.getDelta(); + } + + /** + * "greater than or equal" comparison. + */ + public boolean gte(final EpochTimeRange otherRange) + { + return this.getDelta() >= otherRange.getDelta(); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Event.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Event.java new file mode 100644 index 0000000000000000000000000000000000000000..a01ae204bfe084f0ed4bdbe62533bece84d3caa0 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Event.java @@ -0,0 +1,227 @@ +package com.idevicesinc.sweetblue.utils; + +import com.idevicesinc.sweetblue.utils.*; +import com.idevicesinc.sweetblue.*; +import com.idevicesinc.sweetblue.BleDevice.*; + +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +/** + * Abstract base class for all events in SweetBlue, e.g. {@link State.ChangeEvent}. + */ +public abstract class Event +{ + /** + * More reader-friendly of {@link #isForAll(Object...)} or {@link #isForAny(Object...)} in the event you only have one parameter to match. + */ + public boolean isFor(final Object value) + { + return isForAll(value); + } + + /** + * Convenience query method to check if this event "is for"/relevant-to any of the supplied values. + * For example for {@link com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent} you could write + * <code>e.isForAny("DE:CA::FF:CO::FF::EE", "DE:AD:BE:EF:BA:BE")</code> to quickly check if the event + * is associated with either of the two devices. This method would then just do a comparison + * with the input strings against {@link com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent#macAddress()}. + */ + public boolean isForAny(final Object ... values) + { + final ArrayList<Object> objects = getAllObjects(); + + for( int i = 0; i < objects.size(); i++ ) + { + final Object next = objects.get(i); + + if( next != null ) + { + for( int j = 0; j < values.length; j++ ) + { + final Object jth = values[j]; + + if( jth.equals(next) ) + { + return true; + } + } + } + } + + return false; + } + + /** + * Convenience query method to check if this event "is for"/relevant-to all of the supplied values. + * For example for {@link com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent} you could write + * <code>e.isForAll("DE:CA::FF:CO::FF::EE", MY_UUID)</code> to quickly check if the event + * is associated with both the given mac address and the given {@link java.util.UUID} (e.g. for a characteristic). + * This method would then just do a comparison with the input values against {@link com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent#macAddress()}, + * {@link com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent#charUuid()} {@link com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent#descUuid()}, and + * {@link com.idevicesinc.sweetblue.BleDevice.ReadWriteListener.ReadWriteEvent#serviceUuid()}. + */ + public boolean isForAll(final Object ... values) + { + final ArrayList<Object> objects = getAllObjects(); + + for( int j = 0; j < values.length; j++ ) + { + final Object jth = values[j]; + + boolean foundMatch = false; + + for( int i = 0; i < objects.size(); i++ ) + { + final Object next = objects.get(i); + + if( next != null ) + { + if( true == jth.equals(next) ) + { + foundMatch = true; + break; + } + } + } + + if( false == foundMatch ) + { + return false; + } + } + + return true; + } + + + private static final HashMap<Class<?>, ArrayList<Method>> s_methods = new HashMap<Class<?>, ArrayList<Method>>(); + + private static ArrayList<Method> extractMethods(final Class<?> type) + { + final Method[] methods = type.getMethods(); + + if( methods != null && methods.length > 0 ) + { + final ArrayList<Method> toReturn = new ArrayList<Method>(); + + for( int i = 0; i < methods.length; i++ ) + { + final Method ith = methods[i]; + final Class<?> returnType = ith.getReturnType(); + + if( isComparableType(ith, returnType) ) + { + toReturn.add(ith); + } + } + + return toReturn; + } + else + { + return new ArrayList<Method>(); + } + } + + private static boolean isComparableType(final Method method, final Class<?> returnType) + { + if( returnType == null || returnType.isPrimitive() || returnType.isArray() ) + { + // Skip these cause they're too generic to test equality for. + // E.g. ReadWriteEvent in BleDevice has mtu(), rssi(), etc. + + return false; + } + else if( returnType == String.class ) + { + if( method.getName().equals("toString") ) + { + return false; + } + else + { + return method.getParameterTypes().length == 0; + } + } + else if( Unit.class.isAssignableFrom(returnType) ) + { + // Skipping Units for same reason as skipping primitives. + + return false; + } + else if( method.getParameterTypes().length == 0 ) + { + return true; + } + else + { + return false; + } + } + + private ArrayList<Method> getMethods() + { + synchronized(s_methods) + { + final ArrayList<Method> methods_nullable = s_methods.get(this.getClass()); + + if( methods_nullable == null ) + { + final ArrayList<Method> methods = extractMethods(this.getClass()); + + s_methods.put(this.getClass(), methods); + + return methods; + } + else + { + return methods_nullable; + } + } + } + + private ArrayList<Object> getAllObjects() + { + final ArrayList<Method> methods = getMethods(); + final ArrayList<Object> toReturn = new ArrayList<Object>(); + + for( int i = 0; i < methods.size(); i++ ) + { + final Method ith = methods.get(i); + + try + { + final Object value = ith.invoke(this); + + if( value != null ) + { + if( value instanceof List ) + { + final List value_cast = (List) value; + + for( int j = 0; j < value_cast.size(); j++ ) + { + toReturn.add(value_cast.get(j)); + } + } + else + { + toReturn.add(value); + } + } + } + catch(IllegalAccessException e) + { + } + catch(InvocationTargetException e) + { + } + } + + return toReturn; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/EventQueue.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/EventQueue.java new file mode 100644 index 0000000000000000000000000000000000000000..5e693d6c1e748028d5c84ef4e1a4bb2c6a81042b --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/EventQueue.java @@ -0,0 +1,54 @@ +package com.idevicesinc.sweetblue.utils; + +import java.util.ArrayList; + +public class EventQueue +{ + private static class DispatchEntry + { + private final GenericListener_Void listener; + private final Event event; + + public DispatchEntry(final GenericListener_Void listener_in, final Event event_in) + { + listener = listener_in; + event = event_in; + } + } + + private final ArrayList<DispatchEntry> m_queue = new ArrayList<DispatchEntry>(); + + public EventQueue() + { + } + + public <T_Event extends Event> void add(final GenericListener_Void<T_Event> listener_nullable, final T_Event event_nullable) + { + if( listener_nullable != null && event_nullable != null ) + { + final DispatchEntry entry = new DispatchEntry(listener_nullable, event_nullable); + + m_queue.add(entry); + } + } + + public void dispatch() + { + //--- DRK > For now purposely not dispatching recursive additions in order to force async behavior. + final int size = m_queue.size(); + + for( int i = 0; i < size; i++ ) + { + final DispatchEntry entry = m_queue.get(i); + + entry.listener.onEvent(entry.event); + + m_queue.set(i, null); + } + + while( m_queue.size() > 0 && m_queue.get(0) == null ) + { + m_queue.remove(0); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/ForEach_Breakable.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/ForEach_Breakable.java new file mode 100644 index 0000000000000000000000000000000000000000..e9bbecc0823d076e0ad942ca3adfaac6a7c885f0 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/ForEach_Breakable.java @@ -0,0 +1,42 @@ +package com.idevicesinc.sweetblue.utils; + +/** + * + */ +public interface ForEach_Breakable<T> +{ + public static class Please + { + private static final Please CONTINUE = new Please(true); + private static final Please BREAK = new Please(false); + + private final boolean m_continue; + + private Please(final boolean doContinue) + { + m_continue = doContinue; + } + + public boolean shouldContinue() + { + return m_continue; + } + + public boolean shouldBreak() + { + return !shouldContinue(); + } + + public static Please doContinue() + { + return CONTINUE; + } + + public static Please doBreak() + { + return BREAK; + } + } + + Please next(T next); +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/ForEach_Returning.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/ForEach_Returning.java new file mode 100644 index 0000000000000000000000000000000000000000..004265f7a3b05556381ac02ff34600f517a9f7ff --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/ForEach_Returning.java @@ -0,0 +1,9 @@ +package com.idevicesinc.sweetblue.utils; + +/** + * + */ +public interface ForEach_Returning<T> +{ + T next(final int index); +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/ForEach_Void.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/ForEach_Void.java new file mode 100644 index 0000000000000000000000000000000000000000..79d3ac37819fb9acf1009a7f719057b7a5beeb4c --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/ForEach_Void.java @@ -0,0 +1,9 @@ +package com.idevicesinc.sweetblue.utils; + +/** + * + */ +public interface ForEach_Void<T> +{ + void next(T next); +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/FutureData.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/FutureData.java new file mode 100644 index 0000000000000000000000000000000000000000..8a185b6d9e6e125ed85e7178a4b72564f0fd977e --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/FutureData.java @@ -0,0 +1,31 @@ +package com.idevicesinc.sweetblue.utils; + +import java.util.UUID; + +/** + * A simple interface whose implementations should be passed to methods like {@link com.idevicesinc.sweetblue.BleDevice#write(UUID, FutureData)} + * so you can provide time-sensitive data at the last possible moment. For example you may want to send the current time to a peripheral. If you provided + * the time through {@link com.idevicesinc.sweetblue.BleDevice#write(UUID, byte[])} then the operation might spend a second or two in SweetBlue's internal job + * queue, so that by the time the write was actually sent off, the time would be a few seconds behind. Using this class, the data will be requested right before + * it actually gets sent off. + */ +public interface FutureData +{ + /** + * Convenience constant implementation that just returns an empty byte array. + */ + public static FutureData EMPTY = new FutureData() + { + private final byte[] EMPTY_BYTE_ARRAY = new byte[0]; + + @Override public byte[] getData() + { + return EMPTY_BYTE_ARRAY; + } + }; + + /** + * Return the data that should (for example) be sent to a peripheral through {@link com.idevicesinc.sweetblue.BleDevice#write(UUID, FutureData)}. + */ + byte[] getData(); +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/GenericListener_Void.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/GenericListener_Void.java new file mode 100644 index 0000000000000000000000000000000000000000..2662a11bad1415992405d4b6ee89bcfa1fd727bc --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/GenericListener_Void.java @@ -0,0 +1,9 @@ +package com.idevicesinc.sweetblue.utils; + +/** + * + */ +public interface GenericListener_Void<T_Event extends Event> +{ + void onEvent(T_Event e); +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/HistoricalData.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/HistoricalData.java new file mode 100644 index 0000000000000000000000000000000000000000..6b1a48a30119b4363f91bfc95465d74da3f31f04 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/HistoricalData.java @@ -0,0 +1,132 @@ +package com.idevicesinc.sweetblue.utils; + +import android.database.Cursor; + +import com.idevicesinc.sweetblue.annotations.Immutable; +import com.idevicesinc.sweetblue.annotations.Nullable; +import com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase; + +import java.text.DateFormat; +import java.util.Date; + +/** + * Simple struct wrapping arbitrary blob data as a byte array along with an epoch timestamp + * marking when the blob was originally created/collected. + */ +@Immutable +public class HistoricalData implements UsesCustomNull +{ + /** + * Special value that replaces Java's built-int <code>null</code> and + * is used everywhere Java's would otherwise be used. + */ + public static HistoricalData NULL = new HistoricalData(new byte[0], 0); + + + public static @Nullable(Nullable.Prevalence.NEVER) HistoricalData denull(@Nullable(Nullable.Prevalence.NORMAL) final HistoricalData historicalData_nullable) + { + return historicalData_nullable != null ? historicalData_nullable : HistoricalData.NULL; + } + + private final byte[] m_blob; + private final EpochTime m_epochTime; + + public HistoricalData(final long millisecondsSince1970, final byte[] blob) + { + this(new EpochTime(millisecondsSince1970), blob); + } + + public HistoricalData(final EpochTime epochTime, final byte[] blob) + { + this(blob, epochTime); + } + + public HistoricalData(final byte[] blob, final long millisecondsSince1970) + { + this(blob, new EpochTime(millisecondsSince1970)); + } + + public HistoricalData(final byte[] blob, final EpochTime epochTime) + { + m_blob = blob != null ? blob : new byte[0]; + m_epochTime = epochTime != null ? epochTime : new EpochTime(); + } + + public HistoricalData(final byte[] blob) + { + this(blob, null); + } + + public static @Nullable(Nullable.Prevalence.NEVER) HistoricalData fromCursor(final Cursor cursor) + { + if( cursor == null ) + { + return HistoricalData.NULL; + } + + final HistoricalData data = new HistoricalData(cursor.getLong(HistoricalDataColumn.EPOCH_TIME.getColumnIndex()), cursor.getBlob(HistoricalDataColumn.DATA.getColumnIndex())); + + return data; + } + + /** + * Returns the timestamp passed into the constructor. + */ + public EpochTime getEpochTime() + { + return m_epochTime; + } + + /** + * Convenience to return the timestamp as a {@link java.util.Date} instance. + */ + public Date getEpochTime_date() + { + return m_epochTime.toDate(); + } + + /** + * Convenience to return the epoch time as milliseconds since 1970. + */ + public long getEpochTime_millis() + { + return m_epochTime.toMilliseconds(); + } + + /** + * Convenience to return the timestamp as a formatted string, for example pass <code>new SimpleDateFormat("MM/dd/yyyy HH:mm:ss")</code>. + */ + public String getEpochTime_dateString(final DateFormat dateFormat) + { + return dateFormat.format(getEpochTime_date()); + } + + /** + * Attempts to parse {@link #getBlob()} as a UTF-8 string. + */ + public String getBlob_string() + { + return Utils_String.getStringValue(getBlob(), "UTF-8"); + } + + /** + * Returns the data instance (WARNING: not cloned) passed into the constructor. + */ + public byte[] getBlob() + { + return m_blob; + } + + /** + * Checks if this is referentially equal to {@link #NULL}. + */ + @Override public boolean isNull() + { + return this == NULL; + } + + @Override public String toString() + { + return isNull() ? "NULL" : m_blob.toString(); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/HistoricalDataColumn.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/HistoricalDataColumn.java new file mode 100644 index 0000000000000000000000000000000000000000..75284455d0e58d67f1678561c96b2fbbeceaa41d --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/HistoricalDataColumn.java @@ -0,0 +1,36 @@ +package com.idevicesinc.sweetblue.utils; + +import java.util.UUID; + +/** + * Enumeration/abstraction of database columns used to persist {@link HistoricalData}. + */ +public enum HistoricalDataColumn +{ + EPOCH_TIME("date"), + DATA("data"); + + private final String m_name; + + private HistoricalDataColumn(final String name) + { + m_name = name; + } + + /** + * Gets the name of this database column - you can use this for example to do raw queries through {@link com.idevicesinc.sweetblue.BleDevice#queryHistoricalData(String)}. + */ + public String getColumnName() + { + return m_name; + } + + /** + * Gets the name of this database column - you can use this for example to help navigate the {@link android.database.Cursor} + * returned by {@link com.idevicesinc.sweetblue.BleDevice#queryHistoricalData(String)}. + */ + public int getColumnIndex() + { + return ordinal(); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/HistoricalDataCursor.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/HistoricalDataCursor.java new file mode 100644 index 0000000000000000000000000000000000000000..42f22ab0cf1dc5e7fd8b54837c6ce060c68ca349 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/HistoricalDataCursor.java @@ -0,0 +1,159 @@ +package com.idevicesinc.sweetblue.utils; + +import android.database.Cursor; + +/** + * This interface defines a wrapper around a database cursor (similar to {@link android.database.Cursor}) + * specific to a database representing a series of {@link HistoricalData} serializations. + * For performance reasons, implementations are not required to return actual {@link HistoricalData} instances, + * just the underlying <code>byte[]</code> BLOB and <code>long</code> timestamp for each. + * <br><br> + * NOTE: This may be wrapping an in-memory list, not just a database. + */ +public interface HistoricalDataCursor +{ + /** + * Returns the numbers of rows in the cursor. + * + * @return the number of rows in the cursor. + */ + int getCount(); + + /** + * Returns the current position of the cursor in the row set. + * The value is zero-based. When the row set is first returned the cursor + * will be at positon -1, which is before the first row. After the + * last row is returned another call to next() will leave the cursor past + * the last entry, at a position of count(). + * + * @return the current cursor position. + */ + int getPosition(); + + /** + * Move the cursor by a relative amount, forward or backward, from the + * current position. Positive offsets move forwards, negative offsets move + * backwards. If the final position is outside of the bounds of the result + * set then the resultant position will be pinned to -1 or count() depending + * on whether the value is off the front or end of the set, respectively. + * + * <p>This method will return true if the requested destination was + * reachable, otherwise, it returns false. For example, if the cursor is at + * currently on the second entry in the result set and move(-5) is called, + * the position will be pinned at -1, and false will be returned. + * + * @param offset the offset to be applied from the current position. + * @return whether the requested move fully succeeded. + */ + boolean move(int offset); + + /** + * Move the cursor to an absolute position. The valid + * range of values is -1 <= position <= count. + * + * <p>This method will return true if the request destination was reachable, + * otherwise, it returns false. + * + * @param position the zero-based position to move to. + * @return whether the requested move fully succeeded. + */ + boolean moveToPosition(int position); + + /** + * Move the cursor to the first row. + * + * <p>This method will return false if the cursor is empty. + * + * @return whether the move succeeded. + */ + boolean moveToFirst(); + + /** + * Move the cursor to the last row. + * + * <p>This method will return false if the cursor is empty. + * + * @return whether the move succeeded. + */ + boolean moveToLast(); + + /** + * Move the cursor to the next row. + * + * <p>This method will return false if the cursor is already past the + * last entry in the result set. + * + * @return whether the move succeeded. + */ + boolean moveToNext(); + + /** + * Move the cursor to the previous row. + * + * <p>This method will return false if the cursor is already before the + * first entry in the result set. + * + * @return whether the move succeeded. + */ + boolean moveToPrevious(); + + /** + * Returns whether the cursor is pointing to the first row. + * + * @return whether the cursor is pointing at the first entry. + */ + boolean isFirst(); + + /** + * Returns whether the cursor is pointing to the last row. + * + * @return whether the cursor is pointing at the last entry. + */ + boolean isLast(); + + /** + * Returns whether the cursor is pointing to the position before the first + * row. + * + * @return whether the cursor is before the first result. + */ + boolean isBeforeFirst(); + + /** + * Returns whether the cursor is pointing to the position after the last + * row. + * + * @return whether the cursor is after the last result. + */ + boolean isAfterLast(); + + /** + * Closes the Cursor, releasing all of its resources and making it completely invalid. + */ + void close(); + + /** + * return true if the cursor is closed + * @return true if the cursor is closed. + */ + boolean isClosed(); + + /** + * Returns the epoch time of the historical data as a <code>long</code>, equivalent to + * {@link HistoricalData#getEpochTime()} but raw <code>long</code> is used for performance reasons. + */ + long getEpochTime(); + + /** + * Returns the BLOB of the historical data as a <code>byte[]</code>, equivalent to {@link HistoricalData#getBlob()} + * but a raw <code>byte[]</code> is used for performance reasons. + */ + byte[] getBlob(); + + /** + * Returns the historical data at the current position. Note that this may or may not allocate an instance on demand, + * which may be a minor but unneccessary performance hit for your use case. See also {@link #getEpochTime()} and {@link #getBlob()} to directly + * access the underlying data without boxing. + */ + HistoricalData getHistoricalData(); +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.java new file mode 100644 index 0000000000000000000000000000000000000000..6f26463485ab322d9468469cbc0a03fad64c5ce5 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/HistoricalDataQuery.java @@ -0,0 +1,310 @@ +package com.idevicesinc.sweetblue.utils; + +import com.idevicesinc.sweetblue.BleDevice; +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.BleNode; +import com.idevicesinc.sweetblue.BleServer; +import com.idevicesinc.sweetblue.annotations.Nullable; +import com.idevicesinc.sweetblue.backend.historical.Backend_HistoricalDatabase; + +import java.util.UUID; + +/** + * Class used to construct queries for {@link BleDevice#select()}. + */ +@com.idevicesinc.sweetblue.annotations.Alpha +public class HistoricalDataQuery +{ + public static class Part_Select extends Part_AllowsFrom + { + private Part_Select(final HistoricalDataQuery query) + { + super(query); + } + } + + public static class Part_From extends Part + { + private Part_From(final HistoricalDataQuery query) + { + super(query); + } + } + + public static class Part_Where extends Part + { + private Part_Where(final HistoricalDataQuery query) + { + super(query); + } + +// public Part_ClauseColumn data() +// { +// return column(HistoricalDataColumn.DATA); +// } + + public Part_ClauseColumn epochTime() + { + return column(HistoricalDataColumn.EPOCH_TIME); + } + + private Part_ClauseColumn column(final HistoricalDataColumn column) + { + return new Part_ClauseColumn(column, m_query); + } + } + + public static class Part_ClauseColumn extends Part + { + private final HistoricalDataColumn m_column; + + private Part_ClauseColumn(final HistoricalDataColumn column, final HistoricalDataQuery query) + { + super(query); + + m_column = column; + } + + public HistoricalDataQuery between(final EpochTimeRange range) + { + m_query.m_where += " " + m_column.getColumnName() + " BETWEEN "+range.from().toMilliseconds() + " AND " + range.to().toMilliseconds(); + + return m_query; + } + } + + public static class Part_SelectColumn extends Part_AllowsFrom + { + private Part_SelectColumn(final HistoricalDataQuery query) + { + super(query); + } + } + + public static class Part + { + protected final HistoricalDataQuery m_query; + + private Part(final HistoricalDataQuery query) + { + m_query = query; + } + } + + public static class Part_AllowsFrom extends Part_AllowsSelectColumn + { + private Part_AllowsFrom(HistoricalDataQuery query) + { + super(query); + } + +// public HistoricalDataQuery from(final String macAddress, final UUID uuid) +// { +// m_query.m_macAddress = macAddress; +// m_query.m_uuid = uuid; +// +// return m_query; +// } +// +// public HistoricalDataQuery from(final BleDevice device, final UUID uuid) +// { +// return from(device.getMacAddress(), uuid); +// } + + public HistoricalDataQuery from(final UUID uuid) + { + return from("", uuid); + } + + public HistoricalDataQuery from(final String macAddress, final UUID uuid) + { + m_query.m_uuid = uuid; + m_query.m_macAddress = macAddress; + + return m_query; + } + } + + public static class Part_AllowsSelectColumn extends Part + { + private Part_AllowsSelectColumn(HistoricalDataQuery query) + { + super(query); + } + + public Part_SelectColumn data() + { + return column(HistoricalDataColumn.DATA); + } + + public Part_SelectColumn epochTime() + { + return column(HistoricalDataColumn.EPOCH_TIME); + } + + private Part_SelectColumn column(final HistoricalDataColumn column) + { + if( !m_query.m_select.isEmpty() ) + { + m_query.m_select += ","; + } + +// m_query.m_select += " " + column.getColumnName(); + m_query.m_select += " *"; + + return new Part_SelectColumn(m_query); + } + + public Part_Function min(final HistoricalDataColumn column) + { + return function("min", column); + } + + public Part_Function max(final HistoricalDataColumn column) + { + return function("max", column); + } + + public Part_Function avg(final HistoricalDataColumn column) + { + return function("avg", column); + } + + private Part_Function function(final String function, final HistoricalDataColumn column) + { + if( !m_query.m_select.isEmpty() ) + { + m_query.m_select += ","; + } + + m_query.m_select += " "+function+"(CAST(\"+column.getColumnName()+\" AS INTEGER))"; +// m_query.m_selectParenCount++; + + return new Part_Function(m_query); + } + } + + public static class Part_Function extends Part_AllowsFrom + { + private Part_Function(final HistoricalDataQuery query) + { + super(query); + } + } + + private final BleNode m_node; + + private UUID m_uuid = null; + private String m_select = ""; + private String m_where = ""; + + private String m_macAddress = ""; + + final Backend_HistoricalDatabase m_database; + + private HistoricalDataQuery(final BleNode node, final Backend_HistoricalDatabase database) + { + m_node = node; + m_database = database; + } + +// private void addSelectParens() +// { +// for( int i = 0; i < m_selectParenCount; i++ ) +// { +// m_select += ")"; +// } +// +// m_selectParenCount = 0; +// } + + public static Part_Select select(final BleNode device, final Backend_HistoricalDatabase database) + { + final HistoricalDataQuery query = new HistoricalDataQuery(device, database); + + return new Part_Select(query); + } + + public Part_Where where() + { + return new Part_Where(this); + } + + private UUID getUuidOrInvalid() + { + final UUID uuid = m_uuid != null ? m_uuid : Uuids.INVALID; + + return uuid; + } + + private String getTableName() + { + final UUID uuid = getUuidOrInvalid(); + final String tableName = m_database.getTableName(m_macAddress, uuid); + + return tableName; + } + + private String makeQuery() + { + final String tableName = getTableName(); + String query = "SELECT" + m_select + " FROM " + tableName; + + if( !m_where.isEmpty() ) + { + query += " WHERE" + m_where; + } + + return query; + } + + private BleDevice.HistoricalDataQueryListener.HistoricalDataQueryEvent go_earlyOut() + { + final UUID uuid = getUuidOrInvalid(); + + if( false == m_database.doesDataExist(m_macAddress, uuid) ) + { + return new BleDevice.HistoricalDataQueryListener.HistoricalDataQueryEvent(m_node, uuid, EmptyCursor.SINGLETON, BleDevice.HistoricalDataQueryListener.Status.NO_TABLE, ""); + } + + return null; + } + + public BleDevice.HistoricalDataQueryListener.HistoricalDataQueryEvent go() + { + final BleDevice.HistoricalDataQueryListener.HistoricalDataQueryEvent e_earlyOut = go_earlyOut(); + + if( e_earlyOut != null ) + { + return e_earlyOut; + } + + return m_node.queryHistoricalData(makeQuery()); + } + + public void go(final BleDevice.HistoricalDataQueryListener listener) + { + final BleDevice.HistoricalDataQueryListener.HistoricalDataQueryEvent e_earlyOut = go_earlyOut(); + + if( e_earlyOut != null ) + { + listener.onEvent(e_earlyOut); + + return; + } + + m_node.queryHistoricalData(makeQuery(), listener); + } + + private String getMacAddress() + { + if( m_node instanceof BleDevice ) + { + return m_macAddress == null || m_macAddress.isEmpty() ? ((BleDevice)m_node).getMacAddress() : m_macAddress; + } + else + { + return m_macAddress; + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Interval.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Interval.java new file mode 100644 index 0000000000000000000000000000000000000000..220867f03501318a21162dc90dcfb833a07ad7cd --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Interval.java @@ -0,0 +1,181 @@ +package com.idevicesinc.sweetblue.utils; + +import com.idevicesinc.sweetblue.*; +import com.idevicesinc.sweetblue.annotations.*; +import com.idevicesinc.sweetblue.annotations.Nullable.Prevalence; + +/** + * Used to set time-based options in {@link BleManagerConfig} and {@link BleDeviceConfig} and + * for various methods and callbacks of {@link BleManager} and {@link BleDevice}. An {@link Interval} is a + * self-documenting and "type-comfortable" way of representing time instead of using naked numeric primitives. + */ +@Immutable +public class Interval extends Unit<Interval> +{ + private static final double DISABLED_VALUE = -1.0; + + /** + * Use this special value to disable options in {@link BleDeviceConfig} and {@link BleManagerConfig}. + */ + public static final Interval DISABLED = Interval.secs(DISABLED_VALUE); + + /** + * Use this special value to signify positive infinite. + */ + public static final Interval INFINITE = Interval.secs(Double.POSITIVE_INFINITY); + + /** + * Convenience value for zero time. + */ + public static final Interval ZERO = Interval.secs(0.0); + + /** + * Convenience value representing one second. + */ + public static final Interval ONE_SEC = Interval.secs(1.0); + + /** + * Convenience value representing five seconds. + */ + public static final Interval FIVE_SECS = Interval.secs(5.0); + + /** + * Convenience value representing ten seconds. + */ + public static final Interval TEN_SECS = Interval.secs(10.0); + + + + private final double m_secs; + private final long m_millis; + + private Interval(double secs_in, long millis_in) + { + this.m_secs = secs_in; + this.m_millis = millis_in; + } + + /** + * Returns the value of this interval in seconds. + */ + public double secs() + { + return m_secs; + } + + /** + * Returns the value of this interval in milliseconds. + */ + public long millis() + { + return m_millis; + } + + /** + * Returns a new {@link Interval} representing the given number of seconds. + */ + public static Interval secs(double value) + { + return new Interval(value, (long) (value*1000)); + } + + /** + * Returns a new {@link Interval} representing the given number of minutes. + */ + public static Interval mins(final int value) + { + return secs(value*60); + } + + /** + * Returns a new {@link Interval} representing the given number of milliseconds. + */ + public static Interval millis(long milliseconds) + { + return new Interval(((double)milliseconds)/1000.0, milliseconds); + } + + /** + * Returns a new {@link Interval} representing the time since the given past epoch time, + * using {@link System#currentTimeMillis()}. + */ + public static Interval since(long epochTime_milliseconds) + { + return Interval.delta(epochTime_milliseconds, System.currentTimeMillis()); + } + + /** + * Returns a new {@link Interval} representing the delta between the two epoch times. + */ + public static Interval delta(long earlierTime_millis, long laterTime_millis) + { + return Interval.millis(laterTime_millis - earlierTime_millis); + } + + /** + * Returns the double values as seconds from a given nullable {@link Interval}. + */ + public static double secs(@Nullable(Prevalence.NORMAL) Interval interval_nullable) + { + if( interval_nullable == null ) + { + return Interval.DISABLED.m_secs; + } + + return interval_nullable.m_secs; + } + + /** + * Returns true if the given {@link Interval} is not <code>null</code> + * and its value is greater than zero. + */ + public static boolean isEnabled(@Nullable(Prevalence.NORMAL) Interval interval_nullable) + { + return !isDisabled(interval_nullable); + } + + /** + * Same as {@link #isEnabled(Interval)}. + */ + public static boolean isEnabled(double interval) + { + return !isDisabled(interval); + } + + /** + * Returns true if the given {@link Interval} is either <code>null</code> + * or its value is less than or equal to zero. + */ + public static boolean isDisabled(@Nullable(Prevalence.NORMAL) Interval interval_nullable) + { + if( interval_nullable == null ) + { + return true; + } + + return isDisabled(interval_nullable.m_secs); + } + + /** + * Same as {@link #isDisabled(Interval)}. + */ + public static boolean isDisabled(Double interval_nullable) + { + return interval_nullable == null || interval_nullable <= 0.0; + } + + @Override public String toString() + { + return Utils_String.toFixed(secs())+"secs/"+millis()+"millis"; + } + + @Override protected double getRawValue() + { + return m_secs; + } + + @Override protected Unit<Interval> newInstance(double rawValue) + { + return secs(rawValue); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Percent.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Percent.java new file mode 100644 index 0000000000000000000000000000000000000000..bce8d5c54d3278635b8a984e48b98c1a601c2124 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Percent.java @@ -0,0 +1,128 @@ +package com.idevicesinc.sweetblue.utils; + +import com.idevicesinc.sweetblue.annotations.*; + +/** + * Wrapper for a percentage value, generally from 0-100%; + */ +@Immutable +public class Percent extends Unit<Percent> +{ + /** + * Convenience value representing 0%. + */ + public static final Percent ZERO = Percent.fromInt(0); + + /** + * Convenience value representing 100%. + */ + public static final Percent HUNDRED = Percent.fromInt(100); + + + private final double m_doubleValue; + + private Percent(final double doubleValue) + { + m_doubleValue = doubleValue; + } + + /** + * Returns a new instance clamped between 0% and 100%. + */ + public Percent clamp() + { + return Percent.fromDouble_clamped(this.toDouble()); + } + + /** + * Returns .5 for 50%, for example. + */ + public double toFraction() + { + return toDouble() / 100.0; + } + + /** + * Returns the <code>double</code> value of this instance. + */ + public double toDouble() + { + return m_doubleValue; + } + + /** + * <code>int</code> from {@link Math#round(double)}. + */ + public int toInt_round() + { + return (int) Math.round(m_doubleValue); + } + + /** + * <code>int</code> from {@link Math#ceil(double)}. + */ + public int toInt_ceil() + { + return (int) Math.ceil(m_doubleValue); + } + + /** + * <code>int</code> from {@link Math#floor(double)}. + */ + public int toInt_floor() + { + return (int) Math.floor(m_doubleValue); + } + + /** + * Returns a new instance using the given <code>double</code> value. + */ + public static Percent fromDouble(final double value) + { + return new Percent(value); + } + + /** + * Returns a new instance clamped between 0% and 100%, regardless of input value. + */ + public static Percent fromDouble_clamped(final double value) + { + return new Percent(clamp(value)); + } + + private static double clamp(final double rawValue) + { + return rawValue < 0.0 ? 0.0 : (rawValue > 100.0 ? 100.0 : rawValue); + } + + /** + * Returns a new instance using the given <code>int</code> value. + */ + public static Percent fromInt(final int value) + { + return new Percent(value); + } + + /** + * Returns a new instance clamped between 0% and 100%, regardless of input value. + */ + public static Percent fromInt_clamped(final int value) + { + return new Percent(clamp(value)); + } + + @Override public String toString() + { + return toInt_round()+"%"; + } + + @Override protected double getRawValue() + { + return m_doubleValue; + } + + @Override protected Unit<Percent> newInstance(double rawValue) + { + return fromDouble(rawValue); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Pointer.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Pointer.java new file mode 100644 index 0000000000000000000000000000000000000000..3594abf37eb98c121846fdd4d724c942ea66cab0 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Pointer.java @@ -0,0 +1,19 @@ +package com.idevicesinc.sweetblue.utils; + +/** + * Provides a way to be able to change a value declared in the outer scope of an anonymous inline class. + */ +public class Pointer<T> +{ + public T value = null; + + public Pointer(final T value_in) + { + this.value = value_in; + } + + public Pointer() + { + this.value = null; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/PresentData.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/PresentData.java new file mode 100644 index 0000000000000000000000000000000000000000..cb6b486b925b71ee16abb9e6cbf2e31d44c16814 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/PresentData.java @@ -0,0 +1,25 @@ +package com.idevicesinc.sweetblue.utils; + +/** + * Simple dummy implementation of {@link FutureData} that just returns whatever is passed into the constructor. + */ +public class PresentData implements FutureData +{ + private final byte[] m_data; + + /** + * The data sent to this constructor will simply be returned by {@link #getData()}. + */ + public PresentData(final byte[] data) + { + m_data = data; + } + + /** + * Returns the data sent into the constructor {@link #PresentData(byte[])} + */ + @Override public byte[] getData() + { + return m_data; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.java new file mode 100644 index 0000000000000000000000000000000000000000..579ee5527022079fad452d0e78dbbf10b26a5a6e --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/ReflectionUuidNameMap.java @@ -0,0 +1,39 @@ +package com.idevicesinc.sweetblue.utils; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.UUID; + +import com.idevicesinc.sweetblue.BleManagerConfig; + +/** + * Convenience implementation of {@link UuidNameMap} that takes a {@link Class} object + * and through reflection attempts to parse out all the static UUID members, for example + * on {@link Uuids}. + * + * Provide an instance to {@link BleManagerConfig#uuidNameMaps} if desired. + * + * @see BleManagerConfig#uuidNameMaps + * @see BasicUuidNameMap + */ +public class ReflectionUuidNameMap implements UuidNameMap +{ + private final HashMap<String, String> m_dict = new HashMap<String, String>(); + + public ReflectionUuidNameMap(Class<?> classWithStaticUuids) + { + for( Field field : classWithStaticUuids.getFields() ) + { + String uuid = Utils_Reflection.fieldStringValue(field); + + m_dict.put(uuid, field.getName()); + } + } + + @Override + public String getUuidName(String uuid) + { + uuid = uuid.toLowerCase(); + return m_dict.get(uuid); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/SingleElementIterator.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/SingleElementIterator.java new file mode 100644 index 0000000000000000000000000000000000000000..bdf4568ee0b0bda8dc7eb7ecabb8a4a9ab7a4b5c --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/SingleElementIterator.java @@ -0,0 +1,55 @@ +package com.idevicesinc.sweetblue.utils; + +import java.util.Iterator; + +/** + * Convenience class for implementing an {@link java.util.Iterator} with a single element. + */ +public class SingleElementIterator<T> implements Iterator<T> +{ + private T m_element; + + private boolean m_removable; + + public SingleElementIterator(T element) + { + m_element = element; + m_removable = m_element != null; + } + + @Override public boolean hasNext() + { + return m_element != null; + } + + @Override public T next() + { + final T toReturn = m_element; + + m_element = null; + + return toReturn; + } + + /** + * Optionally override this method to implement remove logic. + */ + protected void onRemove() + { + + } + + @Override public void remove() + { + if( !m_removable ) + { + throw new IllegalStateException("The single element has already been removed"); + } + else + { + m_removable = false; + + onRemove(); + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/State.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/State.java new file mode 100644 index 0000000000000000000000000000000000000000..4cf336435572e11f50eb80cf1409b8e5655d5af8 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/State.java @@ -0,0 +1,277 @@ +package com.idevicesinc.sweetblue.utils; + +import com.idevicesinc.sweetblue.BleDevice; +import com.idevicesinc.sweetblue.BleDeviceConfig; +import com.idevicesinc.sweetblue.BleDeviceState; +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent; +import com.idevicesinc.sweetblue.BleManager.StateListener.*; +import com.idevicesinc.sweetblue.BleManagerConfig; +import com.idevicesinc.sweetblue.BleManagerState; + +/** + * Bitwise enum contract for representing the state of devices and managers. + * Implementations are {@link BleDeviceState} and {@link BleManagerState}. + * Not intended for subclassing outside this library but go wild if you want. + */ +public interface State extends UsesCustomNull, BitwiseEnum +{ + /** + * Abstract base class for {@link com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent} and {@link com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent}. + */ + public static abstract class ChangeEvent<T_State extends State> extends Event + { + /** + * The bitwise representation of the {@link BleDevice} or {@link BleManager} + * before the event took place. + */ + public int oldStateBits(){ return m_oldStateBits; } + private final int m_oldStateBits; + + /** + * The new and now current bitwise representation of a {@link BleDevice} + * or {@link BleManager}. Will be the same as {@link BleDevice#getStateMask()} + * or {@link BleManager#getStateMask()}. + */ + public int newStateBits(){ return m_newStateBits; } + private final int m_newStateBits; + + /** + * For each old->new bit difference, this mask will tell you if the transition was intentional. "Intentional" generally means a call was made to + * a public method of the library from app-code to trigger the state change, and so usually the stacktrace started from a user input event upstream. + * Otherwise the given bit will be 0x0 and so the state change was "unintentional". An example of intentional is if you call + * {@link BleDevice#disconnect()} in response to a button click, whereas unintentional would be if the device disconnected because it + * went out of range. As much as possible these flags are meant to represent the actual app <i>user's</i> intent through the app, not + * the intent of you the programmer, nor the intent of the user outside the bounds of the app, like disconnecting by turning the peripheral off. + * For example after a disconnect you might be using {@link BleManagerConfig#reconnectFilter} to try periodically + * reconnecting. From you the programmer's perspective a connect, if/when it happens, is arguably an intentional action. From the user's + * perspective however the connect was unintentional. Therefore this mask is currently meant to serve an analytics or debugging role, + * not to necessarily gate application logic. + */ + public int intentMask(){ return m_intentMask; } + private final int m_intentMask; + + protected ChangeEvent(int oldStateBits, int newStateBits, int intentMask) + { + this.m_oldStateBits = oldStateBits; + this.m_newStateBits = newStateBits; + this.m_intentMask = intentMask; + } + + /** + * Returns all the states that were entered as a bit mask. + */ + public int enterMask() + { + return newStateBits() & ~oldStateBits(); + } + + /** + * Returns all the states that were exited as a bit mask. + */ + public int exitMask() + { + return oldStateBits() & ~newStateBits(); + } + + /** + * Convenience forwarding of {@link State#didEnter(int, int)}. + */ + public boolean didEnter(T_State state) + { + return state.didEnter(oldStateBits(), newStateBits()); + } + + /** + * Convenience forwarding of {@link State#didExit(int, int)}. + */ + public boolean didExit(T_State state) + { + return state.didExit(oldStateBits(), newStateBits()); + } + + /** + * Returns <code>true</code> if {@link #didEnter(State)} or {@link #didExit(State)} return true. + */ + public boolean isFor(T_State state) + { + return didEnter(state) || didExit(state); + } + + /** + * Returns <code>true</code> if {@link #didEnterAny(State...)} or {@link #didExitAny(State...)} return true. + */ + public boolean isForAny(T_State ... states) + { + return didEnterAny(states) || didExitAny(states); + } + + /** + * Returns <code>true</code> if {@link #didEnterAll(State...)} or {@link #didExitAll(State...)} return true. + */ + public boolean isForAll(T_State ... states) + { + return didEnterAll(states) || didExitAll(states); + } + + /** + * Convenience to return <code>true</code> if {@link #didEnter(State)} returns <code>true</code> on any of the {@link State} instances given. + */ + public boolean didEnterAny(T_State ... states) + { + for( int i = 0; i < states.length; i++ ) + { + if( didEnter(states[i]) ) return true; + } + + return false; + } + + /** + * Convenience to return <code>true</code> if {@link #didExit(State)} returns <code>true</code> on any of the {@link State} instances given. + */ + public boolean didExitAny(T_State ... states) + { + for( int i = 0; i < states.length; i++ ) + { + if( didExit(states[i]) ) return true; + } + + return false; + } + + /** + * Convenience to return <code>true</code> if {@link #didEnter(State)} returns <code>true</code> for all the {@link State} instances given. + */ + public boolean didEnterAll(T_State ... states) + { + for( int i = 0; i < states.length; i++ ) + { + if( !didEnter(states[i]) ) return false; + } + + return true; + } + + /** + * Convenience to return <code>true</code> if {@link #didExit(State)} returns <code>true</code> for all the {@link State} instances given. + */ + public boolean didExitAll(T_State ... states) + { + for( int i = 0; i < states.length; i++ ) + { + if( !didExit(states[i]) ) return false; + } + + return true; + } + + /** + * Returns the intention behind the state change, or {@link ChangeIntent#NULL} if no state + * change for the given state occurred. + */ + public ChangeIntent getIntent(T_State state) + { + if( (state.bit() & oldStateBits()) == (state.bit() & newStateBits()) ) + { + return ChangeIntent.NULL; + } + else + { + return state.overlaps(intentMask()) ? ChangeIntent.INTENTIONAL : ChangeIntent.UNINTENTIONAL; + } + } + } + + /** + * Enumerates the intention behind a state change - as comprehensively as possible, whether the + * application user intended for the state change to happen or not. See {@link ChangeEvent#intentMask()} for more + * discussion on user intent. + */ + public static enum ChangeIntent + { + /** + * Used instead of Java's built-in <code>null</code> wherever appropriate. + */ + NULL, + + /** + * The state change was not intentional. + */ + UNINTENTIONAL, + + /** + * The state change was intentional. + */ + INTENTIONAL; + + private static final int DISK_VALUE__NULL = -1; + private static final int DISK_VALUE__UNINTENTIONAL = 0; + private static final int DISK_VALUE__INTENTIONAL = 1; + + /** + * The integer value to write to disk. Not using ordinal to avoid + * unintentional consequences of changing enum order by accident or something. + */ + public int toDiskValue() + { + switch(this) + { + case INTENTIONAL: return DISK_VALUE__INTENTIONAL; + case UNINTENTIONAL: return DISK_VALUE__UNINTENTIONAL; + case NULL: + default: return DISK_VALUE__NULL; + } + } + + public static int toDiskValue(final ChangeIntent intent_nullable) + { + if( intent_nullable == null ) return NULL.toDiskValue(); + else return intent_nullable.toDiskValue(); + } + + /** + * Transforms {@link #toDiskValue()} back to the enum. + * Returns {@link #NULL} if diskValue can't be resolved. + */ + public static ChangeIntent fromDiskValue(int diskValue) + { + ChangeIntent[] values = values(); + for( int i = 0; i < values.length; i++ ) + { + if( values[i].toDiskValue() == diskValue ) + { + return values[i]; + } + } + + return NULL; + } + + public int bits() + { + return this == INTENTIONAL ? 0xFFFFFFFF : 0x00000000; + } + } + + /** + * Given an old and new state mask, for example from {@link com.idevicesinc.sweetblue.BleDevice.StateListener#onEvent(com.idevicesinc.sweetblue.BleDevice.StateListener.StateEvent)} + * or {@link com.idevicesinc.sweetblue.BleManager.StateListener#onEvent(com.idevicesinc.sweetblue.BleManager.StateListener.StateEvent)}, this method tells you whether the + * the 'this' state was appended. + * + * @see #didExit(int, int) + */ + boolean didEnter(int oldStateBits, int newStateBits); + + /** + * Reverse of {@link #didEnter(int, int)}. + * + * @see #didEnter(int, int) + */ + boolean didExit(int oldStateBits, int newStateBits); + + /** + * Returns <code>true</code> if this state is meant to stand in for Java's built-in <code>null</code>. + */ + boolean isNull(); +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/TimeEstimator.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/TimeEstimator.java new file mode 100644 index 0000000000000000000000000000000000000000..6b574a0ab65d725094b8b43a85770c0f91e3ccfb --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/TimeEstimator.java @@ -0,0 +1,148 @@ +package com.idevicesinc.sweetblue.utils; + + +/** + * A zero-dependency utility class to track running average time of operations + * and estimate the completion time of long running operations like firmware updates. + * Basically takes times as doubles representing seconds, and spits back the same. + */ +public class TimeEstimator +{ + private final int m_totalSteps; + private final double m_estimatedTimePerStep; + + private int m_progress = 0; + private double m_timeElapsed = 0.0; + private double m_timeRemaining = 0.0; + private double m_runningAverage = 0.0; + + private final double[] m_times; + + /** + * Lets this class act as a "time remaining" estimator for long-running operations. + */ + public TimeEstimator(int totalSteps, double estimatedTimePerStep, int runningAverageN) + { + m_totalSteps = totalSteps; + m_estimatedTimePerStep = estimatedTimePerStep; + + m_times = new double[runningAverageN]; + + pushTimeStep(0.0); + } + + /** + * Lets this class act as a utility for calculating the running average completion time of arbitrary operations. + */ + public TimeEstimator(int runningAverageN) + { + this(0, 0.0, runningAverageN); + } + + private void pushTimeStep(double timeStep) + { + if( m_progress <= m_times.length ) + { + int index = m_progress-1; + + if( index >= 0 ) + { + m_times[m_progress-1] = timeStep; + + double total = 0.0; + for( int i = 0; i < m_progress; i++ ) + { + total += m_times[i]; + } + + m_runningAverage = m_progress == 0 ? 0.0 : total / ((double)m_progress); + updateTimeRemaining(); + } + else + { + m_timeRemaining = ((double)m_totalSteps) * m_estimatedTimePerStep; + } + } + else + { + double currentTime = timeStep; + double total = 0.0; + + for( int i = m_times.length-1; i >= 0; i-- ) + { + total += currentTime; + + double temp = m_times[i]; + m_times[i] = currentTime; + currentTime = temp; + } + + m_runningAverage = m_times.length == 0 ? 0.0 : total / m_times.length; + updateTimeRemaining(); + } + } + + private void updateTimeRemaining() + { + double timeRemaining = m_runningAverage * ((double)getStepsRemaining()); + + if( timeRemaining <= m_timeRemaining || m_timeRemaining == 0.0 ) + { + m_timeRemaining = timeRemaining; + } + else if( timeRemaining > m_timeRemaining ) + { + if( (timeRemaining - m_timeRemaining) > 60 * 5 ) + { + m_timeRemaining = timeRemaining; + } + } + } + + /** + * Adds the time it took for a just-completed operation to finish + * and updates the running average time. + */ + public void addTime(double timeStep) + { + m_timeElapsed+=timeStep; + m_progress++; + + pushTimeStep(timeStep); + } + + public double getTimeElapsed() + { + return m_timeElapsed; + } + + public double getTimeRemaining() + { + return m_timeRemaining; + } + + public int getStepsCompleted() + { + return m_progress; + } + + public int getStepsRemaining() + { + return m_totalSteps - m_progress; + } + + public double getRunningAverage() + { + return m_runningAverage; + } + + public int getRunningAverageN() + { + return m_times.length; + } + + public double getTotalAverage() + { + return m_progress == 0 ? 0.0 : m_timeElapsed / m_progress; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Unit.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Unit.java new file mode 100644 index 0000000000000000000000000000000000000000..83a692e6649a0a87817430e34467ce3e7f351696 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Unit.java @@ -0,0 +1,156 @@ +package com.idevicesinc.sweetblue.utils; + +import com.idevicesinc.sweetblue.annotations.Immutable; + +/** + * Common abstract base class for all units of measurement, providing default convenience methods + * for things like comparison. + * + * @param <T> Used to enforce just-in-case subclass type checking for methods like {@link #lt(Unit)} so you can't compare one subclass with another subclass. + */ +@Immutable +public abstract class Unit<T extends Unit> +{ + /** + * "less than" comparison. + */ + public boolean lt(final Unit<T> otherUnit) + { + return this.getRawValue() < otherUnit.getRawValue(); + } + + /** + * "less than or equal" comparison. + */ + public boolean lte(final Unit<T> otherUnit) + { + return this.getRawValue() <= otherUnit.getRawValue(); + } + + /** + * "greater than" comparison. + */ + public boolean gt(final Unit<T> otherUnit) + { + return this.getRawValue() > otherUnit.getRawValue(); + } + + /** + * "greater than or equal" comparison. + */ + public boolean gte(final Unit<T> otherUnit) + { + return this.getRawValue() >= otherUnit.getRawValue(); + } + + /** + * "less than" comparison. + */ + public boolean lt(final double otherUnit) + { + return this.getRawValue() < otherUnit; + } + + /** + * "less than or equal" comparison. + */ + public boolean lte(final double otherUnit) + { + return this.getRawValue() <= otherUnit; + } + + /** + * "greater than" comparison. + */ + public boolean gt(final double otherUnit) + { + return this.getRawValue() > otherUnit; + } + + /** + * "greater than or equal" comparison. + */ + public boolean gte(final double otherUnit) + { + return this.getRawValue() >= otherUnit; + } + + /** + * Returns a new instance that is the result of doing <code>this - other</code>. + */ + public Unit<T> minus(Unit<T> other) + { + if( other == null ) return this; + + final double result_raw = this.getRawValue() - other.getRawValue(); + + return newInstance(result_raw); + } + + /** + * Returns a new instance that is the result of doing <code>this + other</code>. + */ + public Unit<T> plus(Unit<T> other) + { + if( other == null ) return this; + + final double result_raw = this.getRawValue() + other.getRawValue(); + + return newInstance(result_raw); + } + + /** + * Returns a new instance that is the result of doing <code>this * other</code>. + */ + public Unit<T> times(Unit<T> other) + { + if( other == null ) return newInstance(0.0); + + final double result_raw = this.getRawValue() * other.getRawValue(); + + return newInstance(result_raw); + } + + /** + * Returns a new instance that is the result of doing <code>this / other</code>. + */ + public Unit<T> dividedBy(Unit<T> other) + { + if( other == null ) return newInstance(Double.POSITIVE_INFINITY); + + final double result_raw = this.getRawValue() / other.getRawValue(); + + return newInstance(result_raw); + } + + /** + * Hashes {@link #getRawValue()} to an <code>int</code> using {@link Double#hashCode()}. + */ + @Override public int hashCode() + { + return Double.valueOf(getRawValue()).hashCode(); + } + + /** + * Returns <code>==</code> using {@link #getRawValue()}. + */ + @Override public boolean equals(Object object) + { + if( object != null && object instanceof Unit ) + { + return ((Unit)object).getRawValue() == this.getRawValue(); + } + + return super.equals(object); + } + + /** + * Subclasses must implement this to return their raw <code>double</code> value. + */ + protected abstract double getRawValue(); + + /** + * Subclasses must override this so that arithmetic "operators" can create new instances. + */ + protected abstract Unit<T> newInstance(final double rawValue); +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/UpdateLoop.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/UpdateLoop.java new file mode 100644 index 0000000000000000000000000000000000000000..6e5983764ae0a2d65131c93dad79fa3a8e23094e --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/UpdateLoop.java @@ -0,0 +1,178 @@ +package com.idevicesinc.sweetblue.utils; + +import android.os.Handler; +import android.os.Looper; + +import com.idevicesinc.sweetblue.PI_UpdateLoop; + +/** + * Zero-dependency (besides Android) utility class for creating an update loop. + */ +public class UpdateLoop implements PI_UpdateLoop +{ + + private final Runnable m_autoUpdateRunnable = new Runnable() + { + @Override public void run() + { + long currentTime = System.currentTimeMillis(); + double timeStep = ((double) currentTime - m_lastAutoUpdateTime)/1000.0; + + timeStep = timeStep <= 0.0 ? .00001 : timeStep; + timeStep = timeStep > 1.0 ? 1.0 : timeStep; + + m_callback.onUpdate(timeStep); + + m_lastAutoUpdateTime = currentTime; + + postUpdate(); + } + }; + + private boolean m_isRunning = false; + private long m_lastAutoUpdateTime = 0; + private long m_autoUpdateRate = 0; + private Handler m_handler; + private final Callback m_callback; + + + public static UpdateLoop newMainThreadLoop(Callback callback) + { + return new UpdateLoop(callback, true); + } + + public static UpdateLoop newAnonThreadLoop(Callback callback) + { + return new UpdateLoop(callback, false); + } + + public static UpdateLoop newAnonThreadLoop() + { + return new UpdateLoop(new Callback() + { + @Override public void onUpdate(double timestep_seconds) + { + + } + }, false); + } + + private UpdateLoop(Callback callback, boolean runOnMainThread) + { + m_callback = callback; + + initHandler(runOnMainThread); + } + + @Override + public boolean isRunning() + { + return m_isRunning; + } + + private void initHandler(boolean runOnMainThread) + { + if( runOnMainThread ) + { + m_handler = new Handler(Looper.getMainLooper()); + } + else + { + final Thread thread = new Thread() + { + @Override public void run() + { + Looper.prepare(); + m_handler = new Handler(Looper.myLooper()); + + if( m_isRunning ) + { + postUpdate(); + } + + Looper.loop(); + } + }; + + thread.start(); + } + } + + private void postUpdate() + { + if( m_handler != null ) + { + m_handler.postDelayed(m_autoUpdateRunnable, m_autoUpdateRate); + } + } + + @Override + public void start(double updateRate) + { + if( updateRate == 0.0 ) return; + + if( /*already*/m_isRunning ) + { + stop(); + } + + m_isRunning = true; + + m_autoUpdateRate = (long) (updateRate * 1000); + m_lastAutoUpdateTime = System.currentTimeMillis(); + + postUpdate(); + + } + + @Override + public void stop() + { + if( !m_isRunning ) return; + + if( m_handler != null ) + { + m_handler.removeCallbacks(m_autoUpdateRunnable); + } + + m_isRunning = false; + } + + private void waitForHandler() + { + //--- DRK > This can technically take a little time to initialize after + //--- this class is constructed so wait for it if needed. + while(m_handler == null) {} + } + + @Override + public void forcePost(Runnable runnable) + { + waitForHandler(); + + m_handler.postDelayed(runnable, 1); + + } + + @Override + public Handler getHandler() + { + waitForHandler(); + + return m_handler; + } + + @Override + public boolean postNeeded() + { + return m_handler.getLooper().getThread() != Thread.currentThread(); + } + + @Override + public void postIfNeeded(Runnable runnable) + { + waitForHandler(); + + m_handler.post(runnable); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/UsesCustomNull.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/UsesCustomNull.java new file mode 100644 index 0000000000000000000000000000000000000000..5040e93d066dc50956db499df68544848a75c791 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/UsesCustomNull.java @@ -0,0 +1,22 @@ +package com.idevicesinc.sweetblue.utils; + +import com.idevicesinc.sweetblue.annotations.*; + +/** + * Interface implemented by some enums and mostly other {@link Immutable} structs + * that have custom "null" behavior in place of Java's built-in <code>null</code>. + * <br><br> + * NOTE: There is also an informal "statically polymorphic" contract imposed by this + * interface that says an implementor must have a <code>public static final NULL</code> member or method. + * For enums this simply means having a NULL entry. + * <br><br> + * NOTE ALSO: Another soft contract imposed by this interface is that the library (in this case SweetBlue) + * hosting the implementor must never return an actually <code>null</code> reference of the implementor. + */ +public interface UsesCustomNull +{ + /** + * Returns <code>true</code> if the object's state represents what would otherwise be Java's built-in <code>null</code>. + */ + boolean isNull(); +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils.java new file mode 100644 index 0000000000000000000000000000000000000000..c4f3be6208c0e9e40dfa30f53a1fd2ad0172ba0d --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils.java @@ -0,0 +1,292 @@ +package com.idevicesinc.sweetblue.utils; + +import java.lang.reflect.Method; +import java.util.Collection; +import java.util.List; +import java.util.UUID; + +import android.Manifest; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothGattCharacteristic; +import android.content.Context; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.os.*; +import android.provider.Settings; +import android.text.TextUtils; + +import com.idevicesinc.sweetblue.BleStatuses; + +/** + * Some static utility methods that are probably not very useful outside the library. + * See subclasses for more specific groups of utility methods. + */ +public class Utils +{ + protected Utils(){} + + static boolean requiresBonding(BluetoothGattCharacteristic characteristic) + { + return false; + } + + public static boolean isLollipop() + { + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP; + } + + public static boolean isMarshmallow() + { + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M; + } + + public static boolean isNougat() + { + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.N; + } + + public static boolean isKitKat() { + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT; + } + + public static boolean isLocationEnabledForScanning_byManifestPermissions(final Context context) + { + if( Utils.isMarshmallow() ) + { + return + Utils.hasManifestPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) || + Utils.hasManifestPermission(context, Manifest.permission.ACCESS_FINE_LOCATION); + } + else + { + return true; + } + } + + public static boolean isLocationEnabledForScanning_byRuntimePermissions(final Context context) + { + if( Utils.isMarshmallow() ) + { + return + context.checkPermission(Manifest.permission.ACCESS_COARSE_LOCATION, android.os.Process.myPid(), android.os.Process.myUid()) == PackageManager.PERMISSION_GRANTED || + context.checkPermission(Manifest.permission.ACCESS_FINE_LOCATION, android.os.Process.myPid(), android.os.Process.myUid()) == PackageManager.PERMISSION_GRANTED ; + } + else + { + return true; + } + } + + public static boolean hasManifestPermission(final Context context, final String permission) + { + try + { + PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_PERMISSIONS); + + if( info.requestedPermissions != null ) + { + for( String p : info.requestedPermissions ) + { + if( p.equals(permission) ) + { + return true; + } + } + } + } + catch(Exception e) + { + e.printStackTrace(); + } + return false; + } + + /** + * Adapted from http://stackoverflow.com/a/22980843/4248895. + */ + public static boolean isLocationEnabledForScanning_byOsServices(Context context) + { + if( Utils.isMarshmallow() ) + { + if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT ) + { + final int locationMode; + + try + { + locationMode = Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE); + } + catch(Settings.SettingNotFoundException e) + { + return false; + } + + return locationMode != Settings.Secure.LOCATION_MODE_OFF; + } + else + { + final String locationProviders = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED); + + return false == TextUtils.isEmpty(locationProviders); + } + } + else + { + return true; + } + } + + public static boolean isLocationEnabledForScanning(final Context context) + { + if( false == Utils.isMarshmallow() ) + { + return true; + } + else + { + if( false == isLocationEnabledForScanning_byManifestPermissions(context) ) + { + return false; + } + else + { + if( false == isLocationEnabledForScanning_byRuntimePermissions(context) ) + { + return false; + } + else + { + if( isLocationEnabledForScanning_byOsServices(context) ) + { + return true; + } + else + { + return false; + } + } + } + } + } + + /** + * Returns true for certain Sony and Motorola products, which may have problems managing bonding state + * and so this method is used in {@link com.idevicesinc.sweetblue.BleDeviceConfig.DefaultBondFilter}. + */ + public static boolean phoneHasBondingIssues() + { + return +// Utils.isManufacturer("lge") || + Utils.isManufacturer("sony") || + Utils.isManufacturer("motorola") && (Utils.isProduct("ghost") || Utils.isProduct("victara")) || + Utils.isManufacturer("samsung") && (Utils.isProduct("degaswifiue")) ; + } + + public static boolean isManufacturer(String manufacturer) + { + return Build.MANUFACTURER != null && Build.MANUFACTURER.equalsIgnoreCase(manufacturer); + } + + public static boolean isProduct(String product) + { + return Build.PRODUCT != null && Build.PRODUCT.contains(product); + } + + public static boolean isOnMainThread() + { + return Looper.getMainLooper().getThread() == Thread.currentThread(); + } + + public static void enforceMainThread(final String message) + { + if( !isOnMainThread() ) + { + throw new WrongThreadError(message); + } + } + + public static boolean isSuccess(int gattStatus) + { + return gattStatus == 0;// || gattStatus == 1; + } + + public static boolean contains(final Object[] uuids, final Object uuid) + { + for( int i = 0; i < uuids.length; i++ ) + { + final Object ith = uuids[i]; + + if( ith.equals(uuid) ) + { + return true; + } + } + + return false; + } + + public static boolean haveMatchingIds(List<UUID> advertisedIds, Collection<UUID> lookedForIds) + { + if(lookedForIds != null && !lookedForIds.isEmpty()) + { + boolean match = false; + + for(int i = 0; i < advertisedIds.size(); i++) + { + if(lookedForIds.contains(advertisedIds.get(i))) + { + match = true; + break; + } + } + + if(!match) + return false; + } + + return true; + } + + public static boolean hasPermission(Context context, String permission) + { + int res = context.checkCallingOrSelfPermission(permission); + + return (res == PackageManager.PERMISSION_GRANTED); + } + + public static <T extends Object> boolean doForEach_break(final Object forEach, final List<T> list) + { + final int size = list.size(); + + for( int i = 0; i < size; i++ ) + { + final T ith = list.get(i); + + if( doForEach_break(forEach, ith) ) + { + return true; + } + } + + return false; + } + + public static boolean doForEach_break(final Object forEach, final Object next) + { + if( forEach instanceof ForEach_Void ) + { + ((ForEach_Void)forEach).next(next); + } + else if( forEach instanceof ForEach_Breakable ) + { + final ForEach_Breakable.Please please = ((ForEach_Breakable)forEach).next(next); + + if( false == please.shouldContinue() ) + { + return true; + } + } + + return false; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_Byte.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_Byte.java new file mode 100644 index 0000000000000000000000000000000000000000..0ae20b1c9aaf2fc53e46df7b1fcd1398e4c2fb50 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_Byte.java @@ -0,0 +1,278 @@ +package com.idevicesinc.sweetblue.utils; + +import android.content.Context; + +import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.ByteBuffer; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * Utility methods for byte and bit twiddling. + */ +public class Utils_Byte extends Utils +{ + private Utils_Byte(){super();} + + public static int toBits(final BitwiseEnum ... enums) + { + int bits = 0x0; + + for( int i = 0; i < enums.length; i++ ) + { + bits |= enums[i].bit(); + } + + return bits; + } + + public static byte[] hexStringToBytes(String string) + { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + + for(int idx = 0; idx + 2 <= string.length(); idx += 2) + { + String hexStr = string.substring(idx, idx + 2); + int intValue = Integer.parseInt(hexStr, 16); + baos.write(intValue); + } + + return baos.toByteArray(); + } + + public static List<byte[]> fileToBinaryDataList(Context context, String file, int offset) + { + List<byte[]> binaryData = new ArrayList<byte[]>(); + BufferedReader reader = null; + + try + { + InputStream stream = context.getAssets().open(file); + + String currentLine; + reader = new BufferedReader(new InputStreamReader(stream)); + + while((currentLine = reader.readLine()) != null) + { + String rawLine = currentLine.substring(1); + // Log.d("", "."); + // Log.d("", "rawLine: " + rawLine); + byte[] data = hexStringToBytes(rawLine); + // Log.d("", "data_before: " + bytesToHex(data)); + + long data_1 = 0x0 | data[1]; + data_1 <<= 8; + data_1 &= 0xff00; + + long data_2 = 0x0 | data[2]; + data_2 &= 0x00ff; + + long addr = data_1 + data_2; + + // Log.d("", "addr: "+addr); + // Log.d("", "offset: "+offset); + long type = data[3]; + type &= 0x00ff; + // Log.d("", "type: "+type); + if((type == 0) && (addr < offset)) + { + continue; + } + + // patch up address + addr -= offset; + data[1] = (byte) ((addr & 0xff00) >>> 8); + data[2] = (byte) (addr & 0xff); + + // Log.d("", "data_after: "+bytesToHex(data)); + // Log.d("", "."); + + // Cut off checksum + byte[] subBytes = subBytes(data, 0, data.length - 1); + binaryData.add(subBytes); + } + } + catch(IOException e) + { + return null; + } + finally + { + if(reader != null) + { + try + { + reader.close(); + } + catch(IOException e) + { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + + if(binaryData != null) + { + Collections.reverse(binaryData); + } + + return binaryData; + } + + public static byte[] subBytes(byte[] source, int sourceBegin_index_inclusive, int sourceEnd_index_exclusive) + { + byte[] destination = new byte[sourceEnd_index_exclusive - sourceBegin_index_inclusive]; + System.arraycopy(source, sourceBegin_index_inclusive, destination, 0, sourceEnd_index_exclusive - sourceBegin_index_inclusive); + return destination; + } + + public static byte[] subBytes(final byte[] source, final int sourceBegin) + { + return subBytes(source, sourceBegin, source.length-1); + } + + public static void memcpy(byte[] dest, byte[] source, int size, int destOffset, int sourceOffset) + { + for(int i = 0; i < size; i++) + { + dest[i+destOffset] = source[i+sourceOffset]; + } + } + + public static void memcpy(byte[] dest, byte[] source, int size) + { + memcpy(dest, source, size, /*destOffset=*/0, /*destOffset=*/0); + } + + public static void memset(byte[] data, byte value, int size) + { + for(int i = 0; i < size; i++) + { + data[i] = value; + } + } + + public static boolean memcmp(byte[] buffer1, byte[] buffer2, int size) + { + for(int i = 0; i < size; i++) + { + if(buffer1[i] != buffer2[i]) + { + return false; + } + } + + return true; + } + + public static int getIntValue(byte[] data) + { + //--- DRK > Have to pad it out from 3 to 4 bytes then flip byte endianness...not required in iOS version. + byte[] data_padded = new byte[4]; + memcpy(data_padded, data, data.length); + int value = ByteBuffer.wrap(data_padded).getInt(); + value = Integer.reverseBytes(value); + + return value; + } + + public static void reverseBytes(byte[] data) + { + for( int i = 0; i < data.length/2; i++ ) + { + byte first = data[i]; + byte last = data[data.length-1-i]; + + data[i] = last; + data[data.length-1-i] = first; + } + } + + public static short unsignedByte(byte value) + { + return (short) (value & 0xff); + } + + public static byte[] shortToBytes(short l) + { + byte[] result = new byte[2]; + for( short i = 1; i >= 0; i-- ) + { + result[i] = (byte) (l & 0xFF); + l >>= 8; + } + return result; + } + + public static short bytesToShort(byte[] b) + { + short result = 0; + for( short i = 0; i < 2; i++ ) + { + result <<= 8; + result |= (b[i] & 0xFF); + } + + return result; + } + + public static byte boolToByte(final boolean value) + { + return (byte) (value ? 0x1 : 0x0); + } + + public static byte[] intToBytes(int l) + { + byte[] result = new byte[4]; + for( int i = 3; i >= 0; i-- ) + { + result[i] = (byte) (l & 0xFF); + l >>= 8; + } + return result; + } + + public static int bytesToInt(byte[] b) + { + int result = 0; + for( int i = 0; i < 4; i++ ) + { + result <<= 8; + + if( i < b.length ) + { + result |= (b[i] & 0xFF); + } + } + + return result; + } + + public static byte[] longToBytes(long l) + { + byte[] result = new byte[8]; + for( int i = 7; i >= 0; i-- ) + { + result[i] = (byte) (l & 0xFF); + l >>= 8; + } + return result; + } + + public static long bytesToLong(byte[] b) + { + long result = 0; + for( int i = 0; i < 8; i++ ) + { + result <<= 8; + result |= (b[i] & 0xFF); + } + return result; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_Reflection.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_Reflection.java new file mode 100644 index 0000000000000000000000000000000000000000..18e6fa9375d1616fbf0c7f22b4a6af42f2d81025 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_Reflection.java @@ -0,0 +1,114 @@ +package com.idevicesinc.sweetblue.utils; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import android.util.Log; + +/** + * Some utilities for dealing with raw byte array scan records. + */ +public class Utils_Reflection extends Utils +{ + private Utils_Reflection(){super();} + + private static final String TAG = Utils_Reflection.class.getName(); + + public static String fieldStringValue(Field field) + { + Object uuid = staticFieldValue(field); + + String uuidString = ""; + + if( uuid instanceof String ) + { + uuidString = (String) uuid; + } + else if( uuid instanceof UUID ) + { + uuidString = uuid.toString(); + } + + uuidString = uuidString.toLowerCase(); + + return uuidString; + } + + public static <T extends Object> T staticFieldValue(Field field) + { + Object value = null; + + try { + value = field.get(null); + } catch (IllegalAccessException e) { + // TODO Auto-generated catch block +// e.printStackTrace(); + } catch (IllegalArgumentException e) { + // TODO Auto-generated catch block +// e.printStackTrace(); + } + + return (T) value; + } + + public static <T> void nullOut(T target, Class<? extends T> type) + { + Class<?> clazz = type; + Field[] fields = clazz.getDeclaredFields(); + for (Field field : fields) + { + if( Modifier.isStatic(field.getModifiers()) ) continue; + +// Log.e("", field.getName()+""); + + try + { + field.set(target, null); + } + catch (IllegalAccessException e) + { +// e.printStackTrace(); + } + catch (IllegalArgumentException e) + { +// e.printStackTrace(); + } + } + } + + public static boolean callBooleanReturnMethod(final Object instance, final String methodName, boolean showError) + { + return callBooleanReturnMethod(instance, methodName, null, showError); + } + + public static boolean callBooleanReturnMethod(final Object instance, final String methodName, final Class[] paramTypes, boolean showError, final Object ... params) + { + try + { + final Method method = instance.getClass().getMethod(methodName, paramTypes); + final Boolean result = (Boolean) method.invoke(instance, params); + + if( result == null || !result ) + { + return false; + } + } + catch (Exception e) + { + if (showError) + { + Log.e("SweetBlue", "Problem calling method: " + methodName + " - " + e); + } + + return false; + } + + return true; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_Rssi.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_Rssi.java new file mode 100644 index 0000000000000000000000000000000000000000..708ebded4cbb81dd20cf351df7d2b646caa1db60 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_Rssi.java @@ -0,0 +1,63 @@ +package com.idevicesinc.sweetblue.utils; + +/* + * NOTE: + * Some of the static methods here (as of now, {@link #calcDistance(int, int)} and + * {@link #calcDistance(int, int, double, double, double)}) are adapted from a + * StackOverflow post (http://stackoverflow.com/questions/20416218/understanding-ibeacon-distancing/20434019#20434019). + * Further investigation lead to https://github.com/AltBeacon/android-beacon-library which hosts code by the StackOverflow + * post author. It is licensed under the following: + * + * Copyright 2014 Radius Networks + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * Some static utility methods for RSSI-related calculations. + */ +public class Utils_Rssi extends Utils +{ + private Utils_Rssi(){super();} + + public static double percent(final int rssi, final int rssi_min, final int rssi_max) + { + return (((double)(rssi-rssi_min)) / ((double)(rssi_max-rssi_min))) * 100.0; + } + + public static double distance(final int txPower, final int rssi) + { + return distance(txPower, rssi, 0.89976, 7.7095, 0.111); + } + + public static double distance(final int txPower, final int rssi, double a, double b, double c) + { + if (rssi == 0) + { + return -1.0; + } + + final double ratio = ((double)rssi) * (1.0 / ((double)txPower)); + + if (ratio < 1.0) + { + return Math.pow(ratio, 10); + } + else + { + final double accuracy = (a) * Math.pow(ratio, b) + c; + + return accuracy; + } + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_ScanRecord.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_ScanRecord.java new file mode 100644 index 0000000000000000000000000000000000000000..84db19c7d81fca94ab8e3453433afcdecf4b43c6 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_ScanRecord.java @@ -0,0 +1,437 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.idevicesinc.sweetblue.utils; + +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import android.bluetooth.le.*; +import android.nfc.Tag; +import android.os.ParcelUuid; +import android.text.TextUtils; +import android.util.ArrayMap; +import android.util.Log; +import android.util.SparseArray; + +import com.idevicesinc.sweetblue.BleManager; +import com.idevicesinc.sweetblue.BleManagerConfig; +import com.idevicesinc.sweetblue.BleNodeConfig; +import com.idevicesinc.sweetblue.SweetLogger; +import com.idevicesinc.sweetblue.annotations.Nullable; + +/** + * Some utilities for dealing with raw byte array scan records. + * Most of the code herein is slightly modified from Android's 21-and-up scan record parsing API, + * with code copy/pasted from various static methods of {@link ScanRecord} and android.bluetooth.BluetoothUuid. + * + * Why not use these classes directly? So that the same code can be used if you're targeting < 21. + */ +public class Utils_ScanRecord extends Utils +{ + private Utils_ScanRecord(){super();} + + private static final String TAG = Utils_ScanRecord.class.getName(); + + private static final int DATA_TYPE_FLAGS = 0x01; + private static final int DATA_TYPE_SERVICE_UUIDS_16_BIT_PARTIAL = 0x02; + private static final int DATA_TYPE_SERVICE_UUIDS_16_BIT_COMPLETE = 0x03; + private static final int DATA_TYPE_SERVICE_UUIDS_32_BIT_PARTIAL = 0x04; + private static final int DATA_TYPE_SERVICE_UUIDS_32_BIT_COMPLETE = 0x05; + private static final int DATA_TYPE_SERVICE_UUIDS_128_BIT_PARTIAL = 0x06; + private static final int DATA_TYPE_SERVICE_UUIDS_128_BIT_COMPLETE = 0x07; + private static final int DATA_TYPE_LOCAL_NAME_SHORT = 0x08; + private static final int DATA_TYPE_LOCAL_NAME_COMPLETE = 0x09; + private static final int DATA_TYPE_TX_POWER_LEVEL = 0x0A; + private static final int DATA_TYPE_SERVICE_DATA = 0x16; + private static final int DATA_TYPE_MANUFACTURER_SPECIFIC_DATA = 0xFF; + + /** Length of bytes for 16 bit UUID */ + private static final int UUID_BYTES_16_BIT = 2; + /** Length of bytes for 32 bit UUID */ + private static final int UUID_BYTES_32_BIT = 4; + /** Length of bytes for 128 bit UUID */ + private static final int UUID_BYTES_128_BIT = 16; + + private static final ParcelUuid BASE_UUID = ParcelUuid.fromString("00000000-0000-1000-8000-00805F9B34FB"); + + /** + * + */ + @Deprecated public static @Nullable(Nullable.Prevalence.NEVER) List<UUID> parseServiceUuids(final byte[] scanRecord) + { + final ArrayList<UUID> serviceUuids = new ArrayList<UUID>(); + + parseScanRecord(scanRecord, null, null, serviceUuids, null, null); + + return serviceUuids; + } + + public static BleScanInfo parseScanRecord(final byte[] scanRecord) + { + Pointer<Integer> txPower = new Pointer<>(); + txPower.value = BleNodeConfig.INVALID_TX_POWER; + + Pointer<Integer> advFlags = new Pointer<>(); + advFlags.value = -1; + + Map<UUID, byte[]> serviceData = new HashMap<UUID, byte[]>(); + serviceData.clear(); + + List<UUID> serviceUUIDs = new ArrayList<UUID>(); + serviceUUIDs.clear(); + + int mfgId = -1; + byte[] mfgData = new byte[34]; + + if(scanRecord == null) + { + return null; + } + + int currentPos = 0; + String localName = null; + while( currentPos < scanRecord.length ) { + // length is unsigned int. + int length = scanRecord[currentPos++] & 0xFF; + if (length == 0) { + break; + } + // Note the length includes the length of the field type itself. + int dataLength = length - 1; + // fieldType is unsigned int. + int fieldType = scanRecord[currentPos++] & 0xFF; + switch (fieldType) { + case DATA_TYPE_FLAGS: + advFlags.value = scanRecord[currentPos] & 0xFF; + break; + case DATA_TYPE_SERVICE_UUIDS_16_BIT_PARTIAL: + case DATA_TYPE_SERVICE_UUIDS_16_BIT_COMPLETE: + parseServiceUuid(scanRecord, currentPos, dataLength, UUID_BYTES_16_BIT, serviceUUIDs); + break; + case DATA_TYPE_SERVICE_UUIDS_32_BIT_PARTIAL: + case DATA_TYPE_SERVICE_UUIDS_32_BIT_COMPLETE: + parseServiceUuid(scanRecord, currentPos, dataLength, UUID_BYTES_32_BIT, serviceUUIDs); + break; + case DATA_TYPE_SERVICE_UUIDS_128_BIT_PARTIAL: + case DATA_TYPE_SERVICE_UUIDS_128_BIT_COMPLETE: + parseServiceUuid(scanRecord, currentPos, dataLength, UUID_BYTES_128_BIT, serviceUUIDs); + break; + case DATA_TYPE_LOCAL_NAME_SHORT: + case DATA_TYPE_LOCAL_NAME_COMPLETE: + try + { + localName = new String(extractBytes(scanRecord, currentPos, dataLength)); + } + catch(Exception e) + { + Log.e(TAG, "unable to parse name"); + } + break; + case DATA_TYPE_TX_POWER_LEVEL: + txPower.value = (int) scanRecord[currentPos]; + break; + case DATA_TYPE_SERVICE_DATA: + // The first two bytes of the service data are service data UUID in little + // endian. The rest bytes are service data. + try + { + int serviceUuidLength = UUID_BYTES_16_BIT; + byte[] serviceDataUuidBytes = extractBytes(scanRecord, currentPos, serviceUuidLength); + UUID serviceDataUuid = parseUuidFrom(serviceDataUuidBytes); + byte[] serviceDataArray = extractBytes(scanRecord, currentPos + serviceUuidLength, dataLength - serviceUuidLength); + serviceData.put(serviceDataUuid, serviceDataArray); + } + catch(Exception e) + { + Log.e(TAG, "unable to parse service data"); + } + + break; + case DATA_TYPE_MANUFACTURER_SPECIFIC_DATA: + // The first two bytes of the manufacturer specific data are + // manufacturer ids in little endian. + try + { + mfgId = ((scanRecord[currentPos + 1] & 0xFF) << 8) + (scanRecord[currentPos] & 0xFF); + mfgData = extractBytes(scanRecord, currentPos + 2, dataLength - 2); + } + catch(Exception e) + { + Log.e(TAG, "unable to parse manufacturer data"); + } + + break; + default: + // Just ignore, we don't handle such data type. + break; + } + currentPos += dataLength; + } + return new BleScanInfo(advFlags, txPower, serviceUUIDs, mfgId, mfgData, serviceData, localName); + } + + @Deprecated public static void parseScanRecord(final byte[] scanRecord, final Pointer<Integer> advFlags_out_nullable, final Pointer<Integer> txPower_nullable, final List<UUID> serviceUuids_out_nullable, final SparseArray<byte[]> manufacturerData_out_nullable, final Map<UUID, byte[]> serviceData_out_nullable) + { + if( txPower_nullable != null ) + { + txPower_nullable.value = BleNodeConfig.INVALID_TX_POWER; + } + + if( advFlags_out_nullable != null ) + { + advFlags_out_nullable.value = -1; + } + + if( serviceData_out_nullable != null ) + { + serviceData_out_nullable.clear(); + } + + if( serviceUuids_out_nullable != null ) + { + serviceUuids_out_nullable.clear(); + } + + if( manufacturerData_out_nullable != null ) + { + manufacturerData_out_nullable.clear(); + } + + if (scanRecord == null) + { + return; + } + + int currentPos = 0; + String localName = null; + + try + { + while( currentPos < scanRecord.length ) + { + // length is unsigned int. + int length = scanRecord[currentPos++] & 0xFF; + if( length == 0 ) + { + break; + } + // Note the length includes the length of the field type itself. + int dataLength = length - 1; + // fieldType is unsigned int. + int fieldType = scanRecord[currentPos++] & 0xFF; + switch( fieldType ) + { + case DATA_TYPE_FLAGS: + if( advFlags_out_nullable != null ) + { + advFlags_out_nullable.value = scanRecord[currentPos] & 0xFF; + } + break; + case DATA_TYPE_SERVICE_UUIDS_16_BIT_PARTIAL: + case DATA_TYPE_SERVICE_UUIDS_16_BIT_COMPLETE: + parseServiceUuid(scanRecord, currentPos, dataLength, UUID_BYTES_16_BIT, serviceUuids_out_nullable); + break; + case DATA_TYPE_SERVICE_UUIDS_32_BIT_PARTIAL: + case DATA_TYPE_SERVICE_UUIDS_32_BIT_COMPLETE: + parseServiceUuid(scanRecord, currentPos, dataLength, UUID_BYTES_32_BIT, serviceUuids_out_nullable); + break; + case DATA_TYPE_SERVICE_UUIDS_128_BIT_PARTIAL: + case DATA_TYPE_SERVICE_UUIDS_128_BIT_COMPLETE: + parseServiceUuid(scanRecord, currentPos, dataLength, UUID_BYTES_128_BIT, serviceUuids_out_nullable); + break; + case DATA_TYPE_LOCAL_NAME_SHORT: + case DATA_TYPE_LOCAL_NAME_COMPLETE: + localName = new String(extractBytes(scanRecord, currentPos, dataLength)); + break; + case DATA_TYPE_TX_POWER_LEVEL: + if( txPower_nullable != null ) + { + txPower_nullable.value = (int) scanRecord[currentPos]; + } + break; + case DATA_TYPE_SERVICE_DATA: + // The first two bytes of the service data are service data UUID in little + // endian. The rest bytes are service data. + int serviceUuidLength = UUID_BYTES_16_BIT; + byte[] serviceDataUuidBytes = extractBytes(scanRecord, currentPos, serviceUuidLength); + UUID serviceDataUuid = parseUuidFrom(serviceDataUuidBytes); + byte[] serviceDataArray = extractBytes(scanRecord, currentPos + serviceUuidLength, dataLength - serviceUuidLength); + + if( serviceData_out_nullable != null ) + { + serviceData_out_nullable.put(serviceDataUuid, serviceDataArray); + } + break; + case DATA_TYPE_MANUFACTURER_SPECIFIC_DATA: + // The first two bytes of the manufacturer specific data are + // manufacturer ids in little endian. + int manufacturerId = ((scanRecord[currentPos + 1] & 0xFF) << 8) + (scanRecord[currentPos] & 0xFF); + byte[] manufacturerDataBytes = extractBytes(scanRecord, currentPos + 2, dataLength - 2); + + if( manufacturerData_out_nullable != null ) + { + manufacturerData_out_nullable.put(manufacturerId, manufacturerDataBytes); + } + break; + default: + // Just ignore, we don't handle such data type. + break; + } + currentPos += dataLength; + } + } + catch(Exception e) + { + Log.e(TAG, "unable to parse scan record: " + Arrays.toString(scanRecord)); + } + } + + public static String parseName(byte[] scanRecord) { + String name = "<NO_NAME>"; + if (scanRecord == null) + { + return name; + } + int currentPos = 0; + try + { + while( currentPos < scanRecord.length ) + { + // length is unsigned int. + int length = scanRecord[currentPos++] & 0xFF; + if( length == 0 ) + { + break; + } + // Note the length includes the length of the field type itself. + int dataLength = length - 1; + // fieldType is unsigned int. + int fieldType = scanRecord[currentPos++] & 0xFF; + switch( fieldType ) + { + case DATA_TYPE_LOCAL_NAME_COMPLETE: + String n = new String(extractBytes(scanRecord, currentPos, dataLength)); + if (!TextUtils.isEmpty(n)) { + name = n; + } + break; + default: + // Just ignore, we don't handle such data type. + break; + } + currentPos += dataLength; + } + } + catch(Exception e) + { + Log.e(TAG, "unable to parse scan record: " + Arrays.toString(scanRecord)); + } + return name; + } + + // Parse service UUIDs. + private static int parseServiceUuid(byte[] scanRecord, int currentPos, int dataLength, int uuidLength, final List<UUID> serviceUuids_nullable) + { + try + { + while( dataLength > 0 ) + { + byte[] uuidBytes = extractBytes(scanRecord, currentPos, uuidLength); + + if( serviceUuids_nullable != null ) + { + serviceUuids_nullable.add(parseUuidFrom(uuidBytes)); + } + + dataLength -= uuidLength; + currentPos += uuidLength; + } + } + catch(Exception e) + { + Log.e(TAG, "unable to parse service uuid of length " + dataLength); + } + + return currentPos; + } + + // Helper method to extract bytes from byte array. + private static byte[] extractBytes(byte[] scanRecord, int start, int length) + { + byte[] bytes = new byte[length]; + System.arraycopy(scanRecord, start, bytes, 0, length); + return bytes; + } + + /** + * Parse UUID from bytes. The {@code uuidBytes} can represent a 16-bit, 32-bit or 128-bit UUID, + * but the returned UUID is always in 128-bit format. + * Note UUID is little endian in Bluetooth. + * + * @param uuidBytes Byte representation of uuid. + * @return {@link ParcelUuid} parsed from bytes. + * @throws IllegalArgumentException If the {@code uuidBytes} cannot be parsed. + */ + private static UUID parseUuidFrom(byte[] uuidBytes) + { + if( uuidBytes == null ) + { + throw new IllegalArgumentException("uuidBytes cannot be null"); + } + int length = uuidBytes.length; + if( length != UUID_BYTES_16_BIT && length != UUID_BYTES_32_BIT && + length != UUID_BYTES_128_BIT ) + { + throw new IllegalArgumentException("uuidBytes length invalid - " + length); + } + + // Construct a 128 bit UUID. + if( length == UUID_BYTES_128_BIT ) + { + ByteBuffer buf = ByteBuffer.wrap(uuidBytes).order(ByteOrder.LITTLE_ENDIAN); + long msb = buf.getLong(8); + long lsb = buf.getLong(0); + return new UUID(msb, lsb); + } + + // For 16 bit and 32 bit UUID we need to convert them to 128 bit value. + // 128_bit_value = uuid * 2^96 + BASE_UUID + long shortUuid; + if( length == UUID_BYTES_16_BIT ) + { + shortUuid = uuidBytes[0] & 0xFF; + shortUuid += (uuidBytes[1] & 0xFF) << 8; + } + else + { + shortUuid = uuidBytes[0] & 0xFF; + shortUuid += (uuidBytes[1] & 0xFF) << 8; + shortUuid += (uuidBytes[2] & 0xFF) << 16; + shortUuid += (uuidBytes[3] & 0xFF) << 24; + } + long msb = BASE_UUID.getUuid().getMostSignificantBits() + (shortUuid << 32); + long lsb = BASE_UUID.getUuid().getLeastSignificantBits(); + return new UUID(msb, lsb); + + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_State.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_State.java new file mode 100644 index 0000000000000000000000000000000000000000..9fc1167b458bcb8a0adc1209ece25a6dfa92f99d --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_State.java @@ -0,0 +1,73 @@ +package com.idevicesinc.sweetblue.utils; + +import com.idevicesinc.sweetblue.BleDeviceState; + +/** + * Some helper utilities for dealing with {@link State} implementors. + */ +public class Utils_State extends Utils +{ + private Utils_State(){super();} + + public static boolean query(final int stateMask, Object... query) + { + if (query == null || query.length == 0) return false; + + final boolean internal = false; + + for (int i = 0; i < query.length; i += 2) + { + final Object first = query[i]; + final Object second = i + 1 < query.length ? query[i + 1] : null; + + if (first == null && second == null) + { + return false; + } + else if( first != null && second != null ) + { + if( (first instanceof State) && (second instanceof Boolean) ) + { + final State state = (State) first; + final Boolean value = (Boolean) second; + final boolean overlap = state.overlaps(stateMask); + + if (value && !overlap) return false; + else if (!value && overlap) return false; + } + else if( (first instanceof State) && (second instanceof State) ) + { + final State state_first = (State) first; + final State state_second = (State) second; + final boolean overlap_first = state_first.overlaps(stateMask); + final boolean overlap_second = state_second.overlaps(stateMask); + + if( overlap_first == false && overlap_second == false ) + { + return false; + } + } + else + { + return false; + } + } + else if( first != null && second == null ) + { + final State state = (State) first; + final boolean overlap = state.overlaps(stateMask); + + if( false == overlap ) + { + return false; + } + } + else + { + return false; + } + } + + return true; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_String.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_String.java new file mode 100644 index 0000000000000000000000000000000000000000..cbcafd4093fc7dfdedc8af80f121f8b8169d5192 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_String.java @@ -0,0 +1,240 @@ +package com.idevicesinc.sweetblue.utils; + +import android.text.SpannableString; +import android.text.TextPaint; +import android.text.style.CharacterStyle; + +import java.io.UnsupportedEncodingException; +import java.text.DecimalFormat; + +/** + * Utility methods for string manipulation and creation needed by SweetBlue, mostly for debug purposes. + */ +public class Utils_String extends Utils +{ + private Utils_String(){super();} + + private static final int FRACTION_DIGITS = 2; + + private static final DecimalFormat s_toFixedFormat = new DecimalFormat(); + { + s_toFixedFormat.setMaximumFractionDigits(FRACTION_DIGITS); + s_toFixedFormat.setMinimumFractionDigits(FRACTION_DIGITS); + } + + public static String toFixed(final double value) + { + return s_toFixedFormat.format(value); + } + + public static String bytesToMacAddress(final byte[] raw) + { + return String.format("%02X:%02X:%02X:%02X:%02X:%02X", raw[0],raw[1],raw[2],raw[3],raw[4],raw[5]); + } + + public static String normalizeMacAddress(final String macAddress) + { + return normalizeMacAddress_replaceDelimiters(macAddress.toUpperCase()); + } + + public static String normalizeMacAddress_replaceDelimiters(final String macAddress) + { + final char[] commonDelimiters = {'-', '.', ' ', '_'}; + + if( macAddress == null ) + { + return ""; + } + else if( macAddress.length() == 0 ) + { + return ""; + } + else + { + for( int i = 0; i < commonDelimiters.length; i++ ) + { + final String commonDelimiter_ith = String.valueOf(commonDelimiters[i]); + + if( macAddress.contains(commonDelimiter_ith) ) + { + return macAddress.replace(commonDelimiter_ith, ":"); + } + } + } + + return macAddress; + } + + public static String normalizeDeviceName(String deviceName) + { + if( deviceName == null || deviceName.length() == 0 ) return ""; + + String[] nameParts = deviceName.split("-"); + String consistentName = nameParts[0]; + consistentName = consistentName.toLowerCase(); + consistentName = consistentName.trim(); + consistentName = consistentName.replace(" ", "_"); + + return consistentName; + } + + public static String getStringValue(final byte[] data, final String charset) + { + String string = ""; + byte[] value = data; + + if(value != null && value.length > 0) + { + try + { + string = new String(value, charset); + } + catch(UnsupportedEncodingException e) + { + return ""; + } + + string = string.trim(); + } + + return string; + } + + public static String getStringValue(final byte[] data) + { + return getStringValue(data, "UTF-8"); + } + + private static class FlagOnStyle extends CharacterStyle + { + @Override public void updateDrawState(TextPaint tp) + { + tp.setColor(0xFF006400); + } + }; + + private static class FlagOffStyle extends CharacterStyle + { + @Override public void updateDrawState(TextPaint tp) + { + tp.setColor(0xFFFF0000); + tp.setStrikeThruText(true); + } + }; + + public static SpannableString makeStateString(State[] states, int stateMask) + { + String rawString = ""; + String spacer = " "; + + for(int i = 0; i < states.length; i++) + { + if( states[i].isNull() ) continue; + + String name = ((Enum) states[i]).name(); + rawString += name + spacer; + } + + SpannableString spannableString = new SpannableString(rawString); + + int position = 0; + for(int i = 0; i < states.length; i++) + { + if( states[i].isNull() ) continue; + + String name = ((Enum) states[i]).name(); + + if(states[i].overlaps(stateMask)) + { + spannableString.setSpan(new FlagOnStyle(), position, position + name.length(), 0x0); + } + else + { + spannableString.setSpan(new FlagOffStyle(), position, position + name.length(), 0x0); + } + + position += name.length() + spacer.length(); + } + + return spannableString; + } + + public static String makeString(Object... objects) + { + StringBuilder builder = new StringBuilder(); + if (objects != null) + { + for (Object o : objects) + { + builder.append(o); + } + } + return builder.toString(); + } + + public static String toString(int mask, State[] values) + { + StringBuilder builder = new StringBuilder(); + builder.append("["); + + boolean foundFirst = false; + + for( int i = 0; i < values.length; i++ ) + { + if( values[i].overlaps(mask) ) + { + if( foundFirst ) + { + builder.append(", "); + } + else + { + foundFirst = true; + } + + builder.append(values[i]); + } + } + + builder.append("]"); + + return builder.toString(); + } + + public static String toString(Class<?> type, Object ... values) + { + StringBuilder builder = new StringBuilder(); + + builder.append(type.getSimpleName()); + + int length_highest = 0; + for( int i = 0; i < values.length; i+=2 ) + { + int length_ith = values[i].toString().length(); + + if( length_ith > length_highest ) + { + length_highest = length_ith; + } + } + + for( int i = 0; i < values.length; i+=2 ) + { + builder.append("\n "); + + final int length_ith = values[i].toString().length(); + final int spaceCount = length_highest - length_ith; + + builder.append(values[i]); + + for( int j = 0; j < spaceCount; j++ ) + { + builder.append(" "); + } + builder.append(" = "); + builder.append(values[i+1]); + } + + return builder.toString(); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_Time.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_Time.java new file mode 100644 index 0000000000000000000000000000000000000000..ac19dad324067d7ec2f118eb4abe7d8f8c93be0d --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Utils_Time.java @@ -0,0 +1,98 @@ +package com.idevicesinc.sweetblue.utils; + +import com.idevicesinc.sweetblue.BleServices; + +import java.util.Calendar; +import java.util.GregorianCalendar; +import java.util.TimeZone; + +/** + * Utilities for dealing with time with an emphasis on BLE. + */ +public class Utils_Time extends Utils +{ + private Utils_Time(){super();} + + /** + * {@link FutureData} wrapper of {@link #getCurrentTime()}. + */ + public static FutureData getFutureTime() + { + return new FutureData() + { + @Override public byte[] getData() + { + return getCurrentTime(); + } + }; + } + + /** + * Returns the current time as a byte array, useful for implementing {@link BleServices#currentTime()} for example. + */ + public static byte[] getCurrentTime() + { + final byte[] time = new byte[10]; + final byte adjustReason = 0; + GregorianCalendar timestamp = new GregorianCalendar(); + + short year = (short) timestamp.get( Calendar.YEAR ); + final byte[] year_bytes = Utils_Byte.shortToBytes(year); + Utils_Byte.reverseBytes(year_bytes); + + System.arraycopy(year_bytes, 0, time, 0, 2); + + time[2] = (byte)(timestamp.get( Calendar.MONTH ) + 1); + time[3] = (byte)timestamp.get( Calendar.DAY_OF_MONTH ); + time[4] = (byte)timestamp.get( Calendar.HOUR_OF_DAY ); + time[5] = (byte)timestamp.get( Calendar.MINUTE ); + time[6] = (byte)timestamp.get( Calendar.SECOND ); + time[7] = (byte)timestamp.get( Calendar.DAY_OF_WEEK ); + time[8] = 0; // 1/256 of a second + time[9] = adjustReason; + + return time; + } + + /** + * {@link FutureData} wrapper of {@link #getLocalTimeInfo()}. + */ + public static FutureData getFutureLocalTimeInfo() + { + return new FutureData() + { + @Override public byte[] getData() + { + return getLocalTimeInfo(); + } + }; + } + + /** + * Returns the local time info as a byte array, useful for implementing {@link BleServices#currentTime()} for example. + */ + public static byte[] getLocalTimeInfo() + { + final byte[] info = new byte[2]; + final TimeZone timeZone = TimeZone.getDefault(); + int offset = timeZone.getOffset( System.currentTimeMillis() ); + offset /= 1800000; // see CTS spec for why this is like this: https://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.time_zone.xml + offset *= 2; + info[0] = (byte)offset; + final byte dst; + + if ( timeZone.useDaylightTime() && timeZone.inDaylightTime( new GregorianCalendar().getTime() ) ) + { + final int savings = timeZone.getDSTSavings(); + dst = (byte)(savings / 900000); + } + else + { + dst = 0; + } + + info[1] = dst; + + return info; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/UuidNameMap.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/UuidNameMap.java new file mode 100644 index 0000000000000000000000000000000000000000..ebb4489654bb2cc705a80c667e7c71a174d6f832 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/UuidNameMap.java @@ -0,0 +1,18 @@ +package com.idevicesinc.sweetblue.utils; + +import java.util.UUID; + +import com.idevicesinc.sweetblue.BleManagerConfig; + +/** + * Provide an implementation to {@link BleManagerConfig#uuidNameMaps}. + * + * @see BleManagerConfig#uuidNameMaps + */ +public interface UuidNameMap +{ + /** + * Returns the name of the {@link UUID} to be used for logging/debugging purposes, for example "BATTERY_LEVEL". + */ + String getUuidName(String uuid); +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.java new file mode 100644 index 0000000000000000000000000000000000000000..60bcefcb5f195e8007ca6f9289dcc158efc3ae1e --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/UuidNameMap_ListWrapper.java @@ -0,0 +1,40 @@ +package com.idevicesinc.sweetblue.utils; + +import java.util.List; + +/** + * Convenience implementation that wraps a {@link java.util.List} of other {@link UuidNameMap} instances. + */ +public class UuidNameMap_ListWrapper implements UuidNameMap +{ + private final List<UuidNameMap> m_maps; + + public UuidNameMap_ListWrapper(final List<UuidNameMap> maps) + { + m_maps = maps; + } + + public UuidNameMap_ListWrapper() + { + m_maps = null; + } + + @Override public String getUuidName(String uuid) + { + String debugName = null; + + if( m_maps != null ) + { + for(int i = 0; i < m_maps.size(); i++ ) + { + String actualDebugName = m_maps.get(i).getUuidName(uuid); + debugName = actualDebugName != null ? actualDebugName : debugName; + } + } + + debugName = debugName == null ? uuid : debugName; + debugName = debugName == null ? "" : debugName; + + return debugName; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Uuids.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Uuids.java new file mode 100644 index 0000000000000000000000000000000000000000..11049acad915b61f2b9ce783a6a74b92c060039c --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/Uuids.java @@ -0,0 +1,269 @@ +package com.idevicesinc.sweetblue.utils; + +import java.util.UUID; + +/** + * A collection of standard {@link UUID}s for services, characteristics, and descriptors. + * Some convenience methods for creating {@link UUID}s also. + */ +public class Uuids +{ + /** + * A {@link UUID} instance composed of all zeros and used instead of <code>null</code> in various places. + */ + public static final UUID INVALID = new UUID(0x0, 0x0); + + /** + * The template for standard services, characteristics, and descriptors - see <a href="https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx">https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx</a> + * This is used to generate some of the other static {@link UUID} instances in this class using {@link #fromShort(String, String)}. + */ + public static final String STANDARD_UUID_TEMPLATE = "00000000-0000-1000-8000-00805f9b34fb"; + + public static final UUID GENERIC_ATTRIBUTES_SERVICE_UUID = fromShort("1801"); + public static final UUID GENERIC_ACCESS_SERVICE_UUID = fromShort("1800"); + public static final UUID DEVICE_INFORMATION_SERVICE_UUID = fromShort("180a"); + public static final UUID BATTERY_SERVICE_UUID = fromShort("180f"); + + public static final UUID DEVICE_NAME = fromShort("2a00"); + + public static final UUID BATTERY_LEVEL = fromShort("2a19"); + + + + public static final UUID MANUFACTURER_NAME = fromShort("2a29"); + public static final UUID MODEL_NUMBER = fromShort("2a24"); + public static final UUID SERIAL_NUMBER = fromShort("2a25"); + public static final UUID HARDWARE_REVISION = fromShort("2a27"); + public static final UUID FIRMWARE_REVISION = fromShort("2a26"); + public static final UUID SOFTWARE_REVISION = fromShort("2a28"); + public static final UUID SYSTEM_ID = fromShort("2a23"); + + public static final UUID[] DEVICE_INFORMATION_UUIDS = + { + MANUFACTURER_NAME, + MODEL_NUMBER, + SERIAL_NUMBER, + HARDWARE_REVISION, + FIRMWARE_REVISION, + SOFTWARE_REVISION, + SYSTEM_ID + }; + + public static final UUID CURRENT_TIME_SERVICE = Uuids.fromShort(0x1805); + public static final UUID CURRENT_TIME_SERVICE__CURRENT_TIME = Uuids.fromShort(0x2a2b); + public static final UUID CURRENT_TIME_SERVICE__LOCAL_TIME_INFO = Uuids.fromShort(0x2a0f); + + public static final UUID CHARACTERISTIC_USER_DESCRIPTION_DESCRIPTOR_UUID = fromShort("2901"); + public static final UUID CLIENT_CHARACTERISTIC_CONFIGURATION_DESCRIPTOR_UUID = fromShort("2902"); + public static final UUID CHARACTERISTIC_PRESENTATION_FORMAT_DESCRIPTOR_UUID = fromShort("2904"); + + + protected final static String BLUETOOTH_CONNECTED_HASH = "35452669a0050efc6823a77c0fc8f455fbe570eb"; + + + /** + * Convenience overload of {@link #fromShort(String, String)} that uses {@link #STANDARD_UUID_TEMPLATE}. + * For example to create the battery level characteristic you would call + * <code>{@link Uuids}.fromShort("180f")</code>. + */ + public static UUID fromShort(String assignedNumber) + { + return fromShort(assignedNumber, STANDARD_UUID_TEMPLATE); + } + + /** + * Convenience overload of {@link #fromShort(short, String)} that uses {@link #STANDARD_UUID_TEMPLATE}. + * For example to create the battery level characteristic you would call + * <code>{@link Uuids}.fromShort((short)0x180f)</code>. + */ + public static UUID fromShort(short assignedNumber) + { + return fromShort(assignedNumber, STANDARD_UUID_TEMPLATE); + } + + /** + * Overload of {@link #fromShort(short)} so you don't have to downcast hardcoded integers yourself. + */ + public static UUID fromShort(int assignedNumber) + { + return fromShort((short)assignedNumber); + } + + /** + * Convenience overload of {@link #fromShort(String, String)} that converts the given + * short to a {@link String} hex representation. + * For example to create the battery level characteristic you would call + * <code>{@link Uuids}.fromShort((short)0x180f, {@link #STANDARD_UUID_TEMPLATE})</code>. + */ + public static UUID fromShort(short assignedNumber, String uuidTemplate) + { + String hex = Integer.toHexString(assignedNumber & 0xffff); + + return fromShort(hex, uuidTemplate); + } + + /** + * Convenience overload of {@link #fromShort(short, String)} so you don't + * have to downcast hardcoded integers yourself. + */ + public static UUID fromShort(int assignedNumber, String uuidTemplate) + { + return fromShort((short) assignedNumber, uuidTemplate); + } + + /** + * Replaces the characters at indices 4, 5, 6, and 7 of <code>uuidTemplate</code> with the + * <code>assignedNumber</code> parameter and returns the resulting {@link UUID} using {@link UUID#fromString(String)}. + * + * @param assignedNumber A {@link String} of length <= 4 as the hex representation of a 2-byte (short) value, for example "2a19". + * @param uuidTemplate See {@link #STANDARD_UUID_TEMPLATE} for an example. + * @return {@link #INVALID} if there's any issue, otherwise a valid {@link UUID}. + */ + public static UUID fromShort(String assignedNumber, String uuidTemplate) + { + assignedNumber = chopOffHexPrefix(assignedNumber); + + if( assignedNumber_earlyOut(assignedNumber, 4) ) return INVALID; + + String uuid = uuidTemplate.substring(0, 4) + padAssignedNumber(assignedNumber, 4) + uuidTemplate.substring(8, uuidTemplate.length()); + + return fromString(uuid); + } + + public static UUID fromInt(final int assignedNumber) + { + return fromInt(assignedNumber, STANDARD_UUID_TEMPLATE); + } + + /** + * Convenience overload of {@link #fromInt(String, String)}. + */ + public static UUID fromInt(int assignedNumber, String uuidTemplate) + { + final String hex = Integer.toHexString(assignedNumber); + + return fromInt(hex, uuidTemplate); + } + + /** + * Convenience overload of {@link #fromInt(String, String)} that uses {@link #STANDARD_UUID_TEMPLATE}. + */ + public static UUID fromInt(String assignedNumber) + { + return fromInt(assignedNumber, STANDARD_UUID_TEMPLATE); + } + + /** + * Replaces the characters at indices 0-7 (inclusive) of <code>uuidTemplate</code> with the + * <code>assignedNumber</code> parameter and returns the resulting {@link UUID} using {@link UUID#fromString(String)}. + * + * @param assignedNumber A {@link String} of length <= 8 as the hex representation of a 4-byte (int) value, for example "12630102". + * @param uuidTemplate See {@link #STANDARD_UUID_TEMPLATE} for an example. + * @return {@link #INVALID} if there's any issue, otherwise a valid {@link UUID}. + */ + public static UUID fromInt(String assignedNumber, String uuidTemplate) + { + assignedNumber = chopOffHexPrefix(assignedNumber); + + if( assignedNumber_earlyOut(assignedNumber, 8) ) return INVALID; + + String uuid = padAssignedNumber(assignedNumber, 8) + uuidTemplate.substring(8, uuidTemplate.length()); + + return fromString(uuid); + } + + /** + * Convenience forwarding of {@link UUID#fromString(String)}, {@link #fromShort(String)}, or {@link #fromInt(String)} depending on the length of string given. + */ + public static UUID fromString(final String value) + { + if( value.length() == 4 || (value.length() == 6 && hasHexPrefix(value)) ) + { + return fromShort(value); + } + else if( value.length() == 8 || (value.length() == 10 && hasHexPrefix(value)) ) + { + return fromInt(value); + } + else + { + return UUID.fromString(value); + } + } + + /** + * Parses the first 8 characters of the string representations of the given {@link UUID} as an integer hex string. + */ + public static int getInt(final UUID uuid) + { + final String firstChunk = uuid.toString().substring(0, 8); + final int toReturn = Integer.parseInt(firstChunk, 16); + + return toReturn; + } + + public static UUID random() + { + return UUID.randomUUID(); + } + + private static boolean hasHexPrefix(final String string) + { + if( string == null ) + { + return false; + } + else + { + if( string.length() > 2 ) + { + if( string.charAt(0) == '0' && string.charAt(1) == 'x' ) + { + return true; + } + else + { + return false; + } + } + else + { + return false; + } + } + } + + private static String chopOffHexPrefix(final String string) + { + if( hasHexPrefix(string) ) + { + return string.substring(2); + } + else + { + return string; + } + } + + private static boolean assignedNumber_earlyOut(final String assignedNumber, final int length) + { + if( assignedNumber == null || assignedNumber.isEmpty() || assignedNumber.length() > length ) + { + return true; + } + else + { + return false; + } + } + + private static String padAssignedNumber(String assignedNumber, final int length) + { + while(assignedNumber.length() < length ) + { + assignedNumber = "0" + assignedNumber; + } + + return assignedNumber; + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/WrongThreadError.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/WrongThreadError.java new file mode 100644 index 0000000000000000000000000000000000000000..0276132215029b1121a4b67c8fb7174258d737e7 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/WrongThreadError.java @@ -0,0 +1,18 @@ +package com.idevicesinc.sweetblue.utils; + +import com.idevicesinc.sweetblue.*; + +/** + * Most of the methods of core SweetBlue classes like {@link BleDevice}, {@link BleManager}, and {@link BleServer} + * must be called from the main thread, similar to how Android will complain if you try to edit a {@link android.view.View} + * from another thread. + * + * @see BleManagerConfig#allowCallsFromAllThreads + */ +public class WrongThreadError extends Error +{ + public WrongThreadError(final String message) + { + super(message); + } +} diff --git a/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/package-info.java b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/package-info.java new file mode 100644 index 0000000000000000000000000000000000000000..b71df0b87340c4d947923cf904889baaa2f7b031 --- /dev/null +++ b/dev/android/sweetblue/src/com/idevicesinc/sweetblue/utils/package-info.java @@ -0,0 +1,4 @@ +/** + * Contains a few optional utilities that you may find useful, but nothing in here is a core part of the library as far as the library user is concerned. + */ +package com.idevicesinc.sweetblue.utils;